2015-07-10 111 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頁面,而重定向請求則是持有你附加的對象。 –

相關問題