0

我想在 CheckForLogin Servlet 中创建会话并在所有 JSP 页面中使用它(用于检查)。应该在我的 JSP 页面中写什么,而不是在 Sevlet 中写……。如何在 Servlet 中定义会话?

public void service(ServletRequest request,
                    ServletResponse response) throws ServletException, IOException {

    String email = request.getParameter("email");
    String password = request.getParameter("password");
    if (email.equals("") || password.equals("") || email == null || password == null) {
        request.getRequestDispatcher("Error.jsp?err=enterdata").forward(request,response);
    } else {
        UserBl userBl = new UserBl();
        if (userBl.checkUser(email, password)) {
            ..........................
             request.getRequestDispatcher("Home.jsp").forward(request, response);
        } else {
            request.getRequestDispatcher("Error.jsp?err=nulluser").forward(request, response);
        }
    }
}
4

7 回答 7

1

我应该在方法参数中编写 HttpServletRequest 而不是 ServletRequest 和 HttpServletResponse 而不是 ServletResponse 然后创建会话并访问会话

于 2012-08-07T09:48:31.840 回答
0

session是 jsp 隐式变量,您可以使用它在 JSP 页面中获取会话。

例子:

 <%
      String temp=session.getAttribute( "tvName");
    %>

或使用 EL

<c:out value="${session.getAttribute("name")}"/>

注意:在 JSP 页面中使用 scriptlet 不是好的做法。

于 2012-08-02T19:08:21.760 回答
0

实际上你可以使用<%= request.getSession() %>例如。

于 2012-08-02T19:10:28.173 回答
0

你应该使用这条线

Session httpsession = request.getSession();

如果该对象不存在,此行将为您创建一个新的会话对象,否则它将返回与同一客户端关联的现有会话。

于 2012-08-03T06:42:37.660 回答
0

${sessionScope.sessionAttributeName}在 JSP 代码中的表达式语言中使用。

于 2012-08-02T19:29:06.853 回答
0

我建议你使用include而不是forward

于 2012-08-02T19:32:58.253 回答
0

获取现有会话使用

HttpSession session=request.getSession(false);

于 2016-02-12T05:52:47.110 回答