2012-08-02 51 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);