第三次作业-2

实现过程和结果展示


流程概述:我们有login.jsp、home.jsp , checkout.jsp和error.jsp四个页面,其中 home.jsp 是需要登录才能访问的页面,如果用户未登录就直接访问 home.jsp,则会被重定向到 error.jsp页面中

在 login.jsp 页面中,用户输入用户名和密码,提交表单到 checkout.jsp 页面

login页面如下所示:

 在checkout.jsp 页面中,对用户输入的用户名和密码进行验证

如果验证失败,则重定向回 login.jsp 页面,并受到页面提示

 如果验证通过,则将用户信息保存到会话(session)中,并重定向到 home.jsp 页面。

home的页面
home页面

 

在 home.jsp 页面中,首先判断会话(session)中是否保存了用户信息,如果存在,则显示欢迎信息。如果不存在,则重定向到error.jsp 页面 ,home的代码展示如下

home.jsp代码展示

<%     String username = (String)session.getAttribute("username");
    if (username==null){
        out.print("<script>alert('非法访问!');</script>");
        response.sendRedirect("error.jsp");
    }

else{     %>
    <script> alert("WELCOME!"); </script>
<%     }    %>

 此时页面权限的控制已经建立好了,我们对其拦截功能进行测试,我们直接在地址栏输入home的地址,显示如下:

 其表示拦截成功,并被重定向到了error页面,至此,所有工作已经全部完成


细节理解:

  • 两种重定向页面的方法 response.setHeader("refresh","1;URL=");和response.sendRedirect,前者是一秒后刷新跳转到其他页面,后者是直接跳转
  • 两种引用alert语句的方法:   <script> alert("WELCOME!"); </script>out.print("<script>alert('账号或密码有误,请重新输入!');</script>");两种代码要注意,前者不可以直接嵌入到代码片段中,后者可以,因为保证页面效果更加完善,是先在页面中输出alert信息,再进行重定向跳转,所以挖掘出了重定向和alert融合的代码,学到了以上两种表达方式

 !!!在完成拦截非法访问功能测试时,一直没有成功跳转到error页面中,代码也没有问题,最后准备想放弃离开这块的时候,就把elipse关闭了,但恰好就是这时突然想到了session的一些特性!session这个作用域的变量是不断累加的,除非你把浏览器关闭,否则session里面的东西就还会存在,即username会有一些保存信息,session的默认存储时间为30min,只有这过后,其里面的信息才会失效,但由于在实践过程中,不可避免的要登录去查看代码的表现情况,导致忽略了session已经保存了信息这一点,所以在这个情况下,再去测试拦截就没有意义了,最后,我重登了elipse,发现结果确实如此,并且成功完成了拦截

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值