[英]Passing ResultSet from Servlet to JSP
我想將結果集從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/>
要繼續結果集,請初始化對象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);
}
不要通過ResultSet
! 相反,請遵循DAO模式並使用將反映數據庫中列的字段創建Java POJO類。 通過while
循環( while(rs.next()) {...}
)從ResultSet
提取數據,為先前創建的POJO類實例分配值,並將該實例添加到List
(以防您要傳遞多個用戶)。 返回列表(如果有多個用戶)或僅是一個實例(如果是單個用戶)。
將對象列表設置為屬性,並通過JSP
JSTL
forEach
循環對其進行迭代(如果有多個用戶)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.