簡體   English   中英

將ResultSet從Servlet傳遞到JSP

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM