在jsp页面中查看数据表格数据库表格到表格标签

时间:2010-09-13 23:15:08

标签: jsp servlets

我想在JSP页面的工作中应用MVC2 J2EE方法。 我想在JSP中分离Servlet中的代码和设计。 我面临的问题是我想从DB表中显示所有用户及其数据 到JSP页面中的HTML表 现在我应该如何从JSP页面调用servlet,因为显示页面中没有表单 我不知道是否可以使用调度程序,因为管理员将单击<a href>display users,JSP页面应显示所有用户。我该怎么做?

1 个答案:

答案 0 :(得分:5)

只需使用Servlet的doGet()方法,然后调用servlet的URL。

E.g。

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    List<User> users = userDAO.list();
    request.setAttribute("users", users);
    request.getRequestDispatcher("/WEB-INF/users.jsp").forward(request, response);
}

将此servlet映射到web.xml,如下所示:

<servlet>
    <servlet-name>users</servlet-name>
    <servlet-class>com.example.UsersServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>users</servlet-name>
    <url-pattern>/users</url-pattern>
</servlet-mapping>

现在可以通过http://example.com/context/users访问servlet。

/WEB-INF/users.jsp文件中,使用JSTL c:forEach在表格中显示用户。

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
...
<table>
    <c:forEach items="${users}" var="user">
        <tr>
            <td>${user.name}</td>
            <td>${user.email}</td>
            <td>${user.age}</td>
        </tr>
    </c:forEach>
</table>

将JSP文件放在/WEB-INF文件夹中,以避免在不先调用servlet的情况下访问它。

另见:


更新:要安装JSTL,请执行以下步骤:

  1. 下载jstl-1.2.jar
  2. 将其放入/WEB-INF/lib文件夹中。不要提取它!不要改变web.xml!一些糟糕的在线教程会建议这样做。他们都错了。
  3. 根据JSTL TLD documentation在JSP页面顶部声明感兴趣的taglib。例如,JSTL core

     <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>