2012-08-02 78 views
0

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

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

回答

0

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

0

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

例如:

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

或使用EL

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

注:在JSP页面中使用小脚本是不是好的做法。

+0

如何在Servlet的定义会话? – HFDev 2012-08-02 19:15:43

0

其实您可以使用<%= request.getSession() %>为例。

0

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

+0

我应该在方法参数中编写HttpServletRequest而不是ServletRequest和HttpServletResponse,而不是ServletResponse – HFDev 2012-08-07 09:46:18

0

你应该使用这条线

Session httpsession = request.getSession(); 

这条线将创建一个新的会话对象为你,如果一个不存在,或者它会返回现有与同一客户端关联的会话。

0

获得现有会话使用

HttpSession session=request.getSession(false);