Java 需要登录servlet才能转到其他页面

Java 需要登录servlet才能转到其他页面,java,jsp,servlets,Java,Jsp,Servlets,web上有一百万个示例展示了如何创建一个基本的Java登录Servlet,其中用户必须输入用户名和密码,并通过一些数据库进行验证。当登录信息正确时,它会将您重定向到另一个页面 问题是这些教程只教如何验证用户是否输入了正确的用户名/密码。如果用户知道其他页面的URL,他可以跳过整个登录过程。如何使我的登录servlet真正让我登录并需要访问其他页面 这就是我的登录过程目前的样子 if(user.isValid()) { HttpSession session

web上有一百万个示例展示了如何创建一个基本的Java登录Servlet,其中用户必须输入用户名和密码,并通过一些数据库进行验证。当登录信息正确时,它会将您重定向到另一个页面

问题是这些教程只教如何验证用户是否输入了正确的用户名/密码。如果用户知道其他页面的URL,他可以跳过整个登录过程。如何使我的登录servlet真正让我登录并需要访问其他页面

这就是我的登录过程目前的样子

if(user.isValid())
        {
            HttpSession session = request.getSession(true);
            session.setAttribute("currentSessionUser",user);
            response.sendRedirect("Unit_Info.jsp");
        }else
            response.sendRedirect("http://google.com"); 

您可以使用RequestFilter来检查用户会话


阅读更多信息:

登录成功后,您可以使用session.getAttribute()在session.setAttribute()和所有页面中设置a值,检查该值是否存在。如果存在,请保留,否则返回登录页面

示例

登录成功后 做


从用户处获取登录详细信息后,您可以在会话中保存登录详细信息,并在每个页面中测试或验证会话,如

<%
String strLoginId = (String)session.getAttribute("LoginID");
String strpassword = (String)session.getAttribute("Password");

if(strLoginId==null)  // Means session is not there
%>
<jsp:forward page="Error.jsp" />


我就是这样做的。
字符串strpassword
有什么用途吗?使用strLoginId==null是否存在安全风险?我的意思是,用户不能简单地让他们的strLoginId变成一些随机字符来访问整个网站吗?天哪,我花了太长时间才弄明白为什么你的代码会产生错误。显然,我应该使用
session.getAttribute(“currentSessionUser”).toString()
而不是
(字符串)session.getAttribute
<%
String strLoginId = (String)session.getAttribute("LoginID");
String strpassword = (String)session.getAttribute("Password");

if(strLoginId==null)  // Means session is not there
%>
<jsp:forward page="Error.jsp" />