在Servlet中创建会话并在JSP页面中使用?

时间:2012-08-02 19:04:07

标签: java session servlets

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

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);
        }
    }
}

7 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

示例:

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

或使用EL

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

注意:在JSP页面中使用scriptlet不是一种好习惯。

答案 2 :(得分:0)

实际上,您可以使用<%= request.getSession() %>作为示例。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

我建议您使用include代替forward

答案 5 :(得分:0)

你应该使用这一行

Session httpsession = request.getSession();

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

答案 6 :(得分:0)

获取现有会话

HttpSession session=request.getSession(false);