2015-07-10 61 views
0

动态的,应该是我的主网页上加载数据库中的数据,而无需用户提交后或get请求加载内容通过Servlet的

想这是我的JSP主页,我想他从最受欢迎的文章数据库

<body> 
     <div class="content"> 
      <div class="article"></div> 
      <div class="article"></div> 
      <div class="article"></div> 
      <div class="article"></div> 
     </div> 
</body> 

和我的servlet将在我的数据库选择Connet,并返回一个对象填充我的jsp

public class ServLetLoad extends HttpServlet { 

    protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 

    } 

    protected void doGet(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
    } 

    protected void doPost(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 

    } 
} 

假设这种方法连接到数据库,并返回一个礼ST文章

List<Article> articles = new ArticleContent ('article').findAll(); 

其中在servlet我会把这句话, 我怎么会做我的servlet来无后调用或get请求和对象回到我的jsp?

编辑

我这样做

protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
     response.setContentType("text/html;charset=UTF-8"); 
     PrintWriter out = response.getWriter(); 


     try { 
      this.factory = Persistence.createEntityManagerFactory("article"); 
      EntityManager em = factory.createEntityManager(); 
      TypedQuery<Article> article= em.createNamedQuery("Article.findAll", Article.class); 
      List<Article> result = article.getResultList(); 
      request.setAttribute("Article",result); 
      RequestDispatcher view = request.getRequestDispatcher("index.jsp"); 
      view.forward(request, response); 
     } finally { 
      out.close(); 
     } 
    } 

在JSP中我不知道恢复DATAS我尝试这样的事情

<%@page import="java.util.ArrayList"%> 
<%@page import="java.util.List"%> 
<%@page import="dao.Article"%> 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title>Home Page</title> 
    </head> 
    <body> 

     <% List<Article> list; 
      list = request.getAttribute("Article"); 
     %> 
    </body> 
</html> 
+0

大胆不需要;) – jotadepicas

+0

只为亮点的地方问题:) –

+0

我已经编辑你的编辑代码与铸造** request.getAttribute **和循环 –

回答

0
  • 首先你的servlet你处理数据库并获得文章列表
  • 您可以将用户在servlet的request.setAttribute("Articles",articales);
  • 在JSP页面中使用<% List<Article> articales = (List< Article>) request.getAttribute("Articles") %>
  • 不要忘了导入JSP所有必需类<%@page import="" %>
+0

但是,由于jsp会理解request.getAttribute(“Articles “)这来自我创建的servlet来加载数据。没有使用从jsp获取或发布 –

+0

是的,当你在servlet中时,你只是重定向到jsp页面,而重定向请求则是持有你附加的对象。 –