我想将结果集从Servlet传递到JSP页面,并在我的JSP页面中有它的值。
这是Servlet的代码:
protected void doPost (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
String username = request.getParameter("username");
String password = request.getParameter("password");
PrintWriter out = response.getWriter();
Data select = new Data(username,password);
try {
Boolean result = select.Select(username, password);
if (result) {
ResultSet rset=select.SelectAll(username,password);
request.setAttribute("user",rset);
getServletConfig().getServletContext()
.getRequestDispatcher("/dashboard.jsp")
.forward(request,response);
} else
out.print("Please check your username and password");
} catch (Exception e) {
out.print("There seems to be a exception" + e);
}
}
此处调用的两个函数分别返回boolean
值和ResultSet
值
Select函数返回boolean
值,其中SelectAll返回ResultSet
。
我的JSP代码如下所示:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
Username: <c:out value="$(user.username)"/> <br/>
Email: <c:out value="$(user.email)"/> <br/>
Contact: <c:out value="$(user.contact)"/> <br/>
答案 0 :(得分:2)
继续使用结果集初始化对象User
,该对象应具有getter和setter
ResultSet rset=select.SelectAll(username,password);
if (rset.next()){
User user = new User();
user.setUsername(rset.get("username"));
user.setEmail(rset.get("email"));
user.setContact(rset.get("contact"));
request.setAttribute("user",user);
getServletContext().getRequestDispatcher("/dashboard.jsp")
.forward(request,response);
}
答案 1 :(得分:2)
不要通过ResultSet
!相反,请遵循DAO模式并使用将反映数据库中列的字段创建Java POJO类。通过ResultSet
循环(while
)从while(rs.next()) {...}
提取数据,为先前创建的POJO类实例分配值,并将该实例添加到List
(如果您想要传递多个用户)。返回列表(如果是多个用户)或只是一个实例(如果是单个用户)。
将对象列表设置为属性,并通过JSTL
中的forEach
JSP
循环对其进行迭代(如果有多个用户)。