我假设你已经创建了登录和注销的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