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

时间:2013-10-22 09:28:34

标签: java jsp servlets

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

3 个答案:

答案 0 :(得分:1)

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

了解详情:Filtering Requests and Responses

答案 1 :(得分: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" />

答案 2 :(得分: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
}