session验证并跳转至登录页面的总结

在javaweb项目中,为了更好的保证jsp页面能够在用户登录的情况下才能访问,而用户在未登录的情况下即使知道了某些特定页面的url也无法查看,实现用户授权访问,而防止非授权用户访问的情形,这里将自己在实现过程中查找的资料以及自己的实现过程记录在此。

基于安全考虑,通过session验证来空值页面的访问权限是比较方便且简单的方式。

下面是建立了一个登陆检验session的一个loginCheck.jsp页面:

 <body>
       <%  
              if(session.getAttribute("users") == null) {    
    %>  
           <script type="text/javascript" language="javascript">      
             alert("您还没有登录,请登录..."); 
            top.location.href="welcome.jsp";
            </script> 
    <%  
        }  
    %>  
  </body>
该界面是通过判断登录的user内容是否为空,如果为空,即没有登陆,那么就将页面跳转至登录页面。

注意这里的top.location.href的表达方式,这可以让你的页面是最外层的页面跳转。如果你写成window.location.href有时候就无法实现整个页面的跳转。

在这之前,java后台需要使用request.getSession().setAttribute("users",users);将内容保存至session中。这样才能在jsp页面中session.getAttribute("users")取得值。

另外在web.xml中需要设置session的时间:

 <session-config>
<session-timeout>30</session-timeout>  <span style="color:#3366ff;"><span style="font-family:Arial;"><!--单位为分钟,30分钟--></span></span>
</session-config>
设置好了上述的内容后,再将需要限制访问的jsp页面的头包含:

<%@ include file="loginCheck.jsp"%>
这样当访问该页面时,如果没有登录或者session过期,都会跳转到登录页面。

参考:

1.http://blog.csdn.net/lidawei201/article/details/8513827

2.http://www.tuicool.com/articles/6fQBFzF

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个基于JSP的库存管理系统登录页面的实现代码,包括输入错误时输出信息并在3秒后跳转至登录界面,供参考: login.jsp: ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>库存管理系统登录</title> </head> <body> <h1>库存管理系统登录</h1> <form action="login.jsp" method="post"> 用户名:<input type="text" name="username"><br> 密码:<input type="password" name="password"><br> <button type="submit">登录</button> </form> <% String message = (String) request.getAttribute("message"); if (message != null) { out.println("<p style='color:red'>" + message + "</p>"); } %> </body> </html> ``` login.jsp页面的Java代码部分: ```java <% String username = request.getParameter("username"); String password = request.getParameter("password"); if ("admin".equals(username) && "admin".equals(password)) { session.setAttribute("username", "管理员"); response.sendRedirect("index.jsp"); } else if (username != null || password != null) { out.println("<p style='color:red'>用户名或密码错误,请重新输入!</p>"); response.setHeader("refresh", "3;URL=login.jsp"); } %> ``` 在这个例子中,我们使用了一个基于JSP的简单登录系统,当用户在登录页面输入用户名和密码并点击登录按钮时,系统会将用户名和密码传递给同一个页面(login.jsp)进行验证。如果用户名和密码都正确,则会将用户名保存在session中,并跳转到首页(index.jsp),在首页上会显示已登录的管理员姓名。如果用户名或密码错误,则会在页面上输出错误提示信息,并在3秒后返回登录页面(login.jsp)。 需要注意的是,为了避免CSRF攻击,我们在登录表单中使用了POST方法,并在login.jsp中使用了JSP的内置对象request来获取用户输入的用户名和密码,并使用了JSP的Scriptlet来进行用户验证。此外,我们还在login.jsp中使用了JSP的内置对象out来输出错误提示信息,并使用了response.setHeader()方法来设置页面跳转延迟时间和跳转地址。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值