-1

网上有一百万个例子展示了如何创建一个基本的 Java Login 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"); 
4

3 回答 3

1

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

<%
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" />
于 2013-10-22T09:37:39.707 回答
1

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

阅读更多:过滤请求和响应

于 2013-10-22T09:32:32.060 回答
0

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

例子

登录成功后做

    session.setAttribute("user","user");

Now eac and every page check
if(session.getAttribute("user")==null)
{
response.sendRedirect("loginpage");

}
else
{

//your codes
}
于 2013-10-22T09:37:26.083 回答