无法使用Servlet中的setAttribute和getString()在jsp页面上显示数据库中的数据



这是Servlet

public class displayServlet extends HttpServlet {
   protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    response.setContentType("text/html;charset=UTF-8");
    try (PrintWriter out = response.getWriter()) {
          Connection con = dbConnection.getConnection();
          String query = "SELECT theaterNames, FROM thtrname where id in(11,12)";
          try{
              PreparedStatement ps = con.prepareStatement(query);
              ResultSet rs = ps.executeQuery();
              String str = null;
              while(rs.next()){
                  str = rs.getString(1);
              }
              out.print(str);
              HttpSession session = request.getSession();
              session.setAttribute("thtr", str);
              RequestDispatcher rd = request.getRequestDispatcher("success.jsp");
              rd.forward(request, response);
              rs.close();
              ps.close();
              con.close();
          }catch(Exception ex){
          }
    }
}

这是成功的.jsp

<%@page contentType="text/html" pageEncoding="UTF-8" session="true"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        <font color="green">
            <%= request.getAttribute("thtr") %>
            <h1><c:out value="${sessionScope.thtr}" /></h1>
        </font>
    </body>
</html>

我只是不明白我做错了什么。我同时使用JSTL和Scriptlet,但在success.jsp页面上得到的都是null。

您需要将值设置为请求而不是会话从…起session.setAttribute("thtr",str(;

request.setAttribute("thtr", str);

a然后显示在jsp 中只使用${thtr}

最新更新