从mysql数据库获取值以在JSP中显示(JAVA)

时间:2014-06-09 12:23:34

标签: java mysql jsp servlets

我可以使用一些帮助如何从mysql数据库中获取值,并将其解析为servlet,这将打开一个jsp文件“Showlist.jsp”并将所有值作为参数。

我的数据库中的表格包含:

ID, Name, Initials, cpr, password, role.

我在系统中创建了3个用户,我希望在jsp文件中显示所有用户。

现在我有3层,其中包含以下类:

查看图层 - html / jsp文件

功能层 - 班级职能

数据层 - 类DAOoperator(包含mysql语句。 - 类DTOoperator(这是我的getter和setter方法的对象) - 类DataAccess(包含与mysql数据库的连接)

所有这些都由名为Controller的servlet控制。

有一种简单的方法吗?

2 个答案:

答案 0 :(得分:1)

从不在21世纪使用 Scriplet 而不是JavaServer Pages Standard Tag Library

有关Oracle Tutorial - Using JSTL

的更多信息

逻辑:只需从Servlet中的数据库中获取数据,然后在POJO类中填充数据,并将所有用户的最终列表设置为请求属性,最后将请求转发到JSP页面

示例代码:

User.java

public class User{
   private String ID, Name, Initials, cpr, password, role;
   // getter and setter       
}

的Servlet

List<User> list = new ArrayList<User>();
//fetch the record form database
// populate the record in User POJO class
// add the users in the list

// finally set the list as request attribute
request.setAttribute("users",list);

// forward the request to the JSP
request.getRequestDispatcher("/xyz.jsp").forward(request,response);

xyz.jsp:

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

<table border="1">
    <c:forEach items="${ requestScope.users}" var="user">
        <tr>
            <td><c:out value="${user.ID }" /></td>
            <td><c:out value="${user.Initials }" /></td>
            <td><c:out value="${user.cpr }" /></td>
            <td><c:out value="${user.role }" /></td>
        </tr>
    </c:forEach>
</table>

答案 1 :(得分:0)

在servlet中,您访问DAO并调用getUser()方法,该方法返回用户列表。然后将结果设置为请求。

request.setAttribute("users", userList);

在jsp中你可以通过:

获得它
    <% List<User> userList = (List<User>)request.getAttribute("users"); %>

更好的方法是在jsp中使用jstl而不是普通的java代码。