发表于: 2016-04-12 22:21:02
1 2185
【操作步骤】
1.编写DES加密解密类DESUtil.java。参考链接:http://blog.csdn.net/hbcui1984/article/details/5065506
2.了解SpringMVC中的Interceptor拦截器,参考链接:http://haohaoxuexi.iteye.com/blog/1750680
这篇文章介绍了实现拦截器的两种方法,一种是实现HandlerInterceptor接口;一种是实现WebRequestInterceptor接口。我看了一下,感觉用HandlerInterceptor好像比较好一些。
3.新建一个拦截器LoginInterceptor.java,用来处理一些登录后才能显示的页面请求。
4.在dispatcher-servlet.xml中配置LoginInterceptor,使它对所有的/pages/u/*下的请求都进行拦截。
【知识总结】
【出现的问题(已解决)】
【出现的问题(未解决)】
老大,我这几天把任务5完成得七七八八了,但是出了BUG,先不管bug的事,我先来说一下我对任务5的理解和执行过程,您看看是不是哪里出了问题:
1.首先进入登录页面“http://localhost:8080/ITtask_4/pages/login”;login页面是一个表单,填写完账号和密码后,提交,会进入接口“.../login/validate”。
2.此时会调用LoginController里面的Validate方法,这个方法会根据传过来的account和password,在数据库中查找符合条件的记录。如果没有,表明账号或密码错误,返回到“.../pages/login”页面;如果有,表明账号密码正确,此时,我会调用一个LoginCookie方法,在此方法中,我用DES算法对前台传过来的account和登录时间loginTime进行加密,并把它们存入Cookie中,存完后,跳转至“.../pages/u/home”接口。
3.我配置了一个拦截器,并编写了一个LoginInterceptor类,在这个类中,我只重载了preHandle方法,在这个方法中,我获取请求里面的Cookie,看是否存在名为“userAccount”的Cookie,若存在,表明已登录,返回true;若不存在,就把页面跳转回“.../pages/login”,并返回false。
4.在dispatcher-servlet.xml配置文件中,我配置拦截器,设置它对一切“/pages/u/*”请求进行拦截。
5.因此,当第2步要跳转至“.../pages/u/home”时,会先启动拦截器,在拦截器检验完Cookie后,再进行跳转。
6.剩下的就是我在“.../pages/u/home”页面里面的一些配置了。
老大,你看我是不是哪里想岔了,要是这个步骤正确的话,我再好好想法子改那个BUG。
我感觉在第四步拦截器配置那里有问题,我总觉得那个<mvc:mapping path="/pages/u/**">怪怪的,这里是不是应该写jsp资源位置?
【疑问】
评论