我假設你已經創建了登錄和註銷的servlet,然後從相應的servlet,你可以重定向頁面: 這可能是您的登錄servlet代碼:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String email = request.getParameter("email");
String password = request.getParameter("password");
HttpSession session = request.getSession();
session.setAttribute("userName", email);
session.setAttribute("password", password);
getServletContext().getRequestDispatcher("/profile.jsp").forward(request,
response);
}
這可能是你的profile.jsp網頁代碼來檢查會話:
<%
if(!(request.getSession(true).getAttribute("userName").toString()).isEmpty()){
String firstName = (String)request.getAttribute("firstName");
String lastName = (String)request.getAttribute("lastName");
}else{%>
<jsp:forward page = "Login.jsp" />
<% }%>
從登出頁面你可以發送請求lo goutservlet。而且,這可能是您的logoutservlet代碼:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
HttpSession session = request.getSession();
session.invalidate();
out.println("Logout Successful");
out.println("Username : "+session.getAttribute("userName"));
out.println("Password : "+session.getAttribute("password"));
}
然後當我正在從會話我得到空值對於這些領域的憑據後。
一個JSP會自動創建一個會話,除非您告訴它不要創建一個會話。通常我們在會話中放置一個屬性並檢查是否設置了該屬性。 – rickz
是的,我也嘗試過:'if(session.getAttribute(「user」)== null){ \t response.sendRedirect(「login.jsp」);} System.out.println(session.getAttribute 「user」));'這裏用戶是會話變量屬性,控制檯輸出是'mypack.user @ 1ad20a7',其中mypack是包的名稱我有一個'user'命名的類。我使用的對象是會話變量 – Sourajit
這不是重定向 – Sourajit