通过Servlet加载动态内容

时间:2015-07-10 17:20:53

标签: java jsp servlets

因为它应该是在我的主页上从数据库加载数据而不是用户提交帖子或获取请求

假设这是我的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 {

    }
}

假设此方法连接到数据库并返回列表文章

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

在servlet中我会把那个语句放到哪里 以及如何在没有post或get请求的情况下调用我的servlet并将对象返回给我的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我不知道恢复数据我尝试这样的事情

<%@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>

1 个答案:

答案 0 :(得分:0)

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