标签:
如果我们想要实现将数据库中查询的内容从xxx.jsp的页面上展示出效果,那该怎么做呢?
1.使用分层(DAO)来实现功能
首先我们要先创建Web工程(News),新建包Entity,包中有NewsEntity实体类(没一张数据库表对应一张实体类)然后新建包DAO,在包中有BaseDao辅助类,接口NewsDao;然后创建包DAO.Impl,包中有NewsDaoImpl的类;最后创建Servlet包,包中有个NewsSerlet类
我们在JavaOOP课程的时候学过分层,我们都知道要先在NewsDao接口下创建一个返回List<NewsEntity>的方法进行查询数据
public interface NewsDAO { public List<NewsEntity> Select () throws Exception; }
然后在DAO.Impl下的NewsDaoImpl类下继承BaseDao类,实现NewsDao接口,从而继承NewsDao下的方法,继而实现查询的功能
public List<NewsEntity> Select(){ List<NewsEntity> lsit=new ArrayList<NewsEntity>(); String sql="select * from newsDetails"; ResultSet rs=executeQuery(sql); if(rs!=null) { while(rs.next()) { NewsEntity entity=new NewsEntity(); entity.setNewsId(rs.getInt("newsId")); entity.setNewsTitle(rs.getString("newsTitle"); entity.setNewsContent(rs.getString("newsContent")); entity.setNewsCreateDate(rs.getDate("newsCreateDate")); entity.setNewsAuthor(rs.getString("newsAuthor")); entity.setNewsCateforyId(rs.getInt("newsCategoryId")); list.add(entity); } } return list; }
然后在Servlet包下的NewsServlert中继承HttpServlet,从而继承doGet()和doPost()方法,doGet()方法实现doPost(request,respones)
public void doGet(HttpServletRequest request,HttpServletRspones respones) throws ServletException IOException { doPost(request,respones); } public void doPost(HttpServletRequest request,HttpServletRspones respones) throws ServletException IOException { NewsDaoImpl impl=new NewsDaoImpl(); try{ List<NewsEntity> lsit=impl.Select(); request.setAttribute("list",list); }catch(Exeption e){ e.printStackTrace(); } request.getRequestDispaatcher("/index.jsp").forward(request,respones); }
然后我么要在index.jsp文件中的标题和事件的位置获取数据
<% List<NewsEntity> list=(List<NewsEntity>)request.getAttribute("list"); for(NewsEntity item:List) { %> <li><a href=‘newspages/news_read.jsp‘> <%=item.getNewsTitle() %> </a><span> <%=item.getNewsCreateDate() %> </span></li> <% } %>
这样我们就可以获取数据库中的数据了,也不要忘了要把web.xml中的第一次访问的地址修改成Servlet/NewsServlet哦!
标签:
原文地址:http://www.cnblogs.com/S2223/p/5633691.html