Управление сессиями в проекте JSP
Я занимаюсь разработкой проекта для колледжа и постараюсь объяснить свою проблему на небольшом примере. Ниже представлены 3 jsp-страницы (index.jsp, test.jsp, logged.jsp), и я хочу, чтобы, если пользователь попытался получить доступ к logged.jsp напрямую, введя URL-адрес http://localhost:8080/sessionTest/logged.jsp затем он будет перенаправлен на index.jsp.
index.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <form action ="test.jsp" method="post"> enter user id :<input type="text" name="user"> Enter password:<input type="password" name="pass"> <input type="submit" value="submit"> </form> </body> </html>
test.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <% String user= request.getParameter("user"); String pass= request.getParameter("pass"); if(user.equals("snow")&& pass.equals("123")) { session.setAttribute("user", user); RequestDispatcher r = request.getRequestDispatcher("logged.jsp"); r.forward(request, response); } else { out.println("wrong pass or id"); } %> </body> </html>
logged.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JSP Page</title> </head> <body> <% session = request.getSession(false); if(session==null) { response.sendRedirect("index.jsp"); } else{ out.println("welcome its old session"); } %> </body> </html>
пожалуйста, помогите мне с кодом и объясните, как он работает
1 ответ
Попробуйте это, может быть, это поможет вам:
<%
HttpSession session = request.getSession();
if(null!=session.getAttribute("username")){
out.write("username is "+session.getAttribute("username").toString());
}
else{
response.sendRedirect("/index.jsp");
}
%>