public ur queryur(string urname, string password,httprvletrequest request, httprvletrespon respon) { ur ur = urmapper.queryur(urname,password); if(!stringutils.impty(ur)){ //1.获取ssion httpssion ssion = request.getssion(); //2.获取ssionid string ssionid = ssion.getid(); //3.将ssionid作为key,用户信息ur作为value,放入ssion中 ssion.tattribute(ssionid,ur); //4.将ssionid存到cookie中,"jssionid"为自定深圳保理公司注册义的key值 cookie cookie = new cookie("jssionid",ssionid); //5.设置cookie的有效路径 cookie.tpath(request.getcontextpath()); //6.将cookie返回给页面 respon.addcookie(cookie); } return ur; }代码思路:
1.用户输入账号密码登录成功后获取用户信息(ur)
2.获取ssion,得到ssionid(注:每一个ssion对象都有一个ssionid)
3.将ssionid作为key,用户信息(ur)作为value,放入ssion中
4.创建一个cookie对象,将”jssionid”作为key,ssionid作为value,放入cookie中
5.设置cookie的有效路径,将cookie返回给页面,此时页面就可以收到key为”jssionid”,value为ssionid的cookie信息,如下图。
public class filter extends handlerinterceptoradapter { private static logger logger = logger.getlogger(filter.class); /** * 进入拦截器后首先进入的方法 * 返回fal则不再继续执行 * 返回true则继续执行 */ @override public boolean prehandle(httprvletrequest request, 如何快速背诵 httprvletrespon respon, object handler)throws exception { //1.定义ssionid变量 string ssionid = ""; 红日粤语歌词 //2.获取ssion对象 httpssion ssion=request.getssion(); //3.获取页面上所有的cookie cookie[] cookies = request.getcookies(); //4.循环寻找名称为"jssionid"的cookie for(cookie cookie:cookies){ if(cookie.getname().equals("jssionid")){ ssionid = cookie.getvalue(); } } //5.根据ssionid获取用户信息 ur ur = (ur) ssion.getattribute(ssionid); if(stringutils.impty(ur)) { logger.info("用户未登录"); //用户未登录跳转到登录页面 respon.ndredirect("login"); return fal; } logger.info("用户已登录"); return true; }}代码思路:
1.自定义一个拦截器类,首先要继承handlerinterceptoradapter,并重写prehandle方法,在此方法中编写拦截器的逻辑代码
2.获取cookies数组,这个数组有浏览器中的所有cookies信息,循环遍历找到name为”jssionid”的cookies,并获取到其value值,这个值就是ssionid
3.通过ssionid查找ur对象,如果能获取对象证明登录过,如果不能获取到对象证明没有登录过
珠海长隆4.如果登录过就直接访问接口,如果没有登录过就跳转到登录页面进行登录
<!--自定义拦截器--> <mvc:interceptors> <mvc:interceptor> <!--配置要拦截的路径--> <mvc:mapping path="/**"/> <!--配置登录接口不被拦截--> <mvc:exclude-mapping path="/ur/login"/> <!--指定拦截器类路径--> <bean class="com.lishiqi.util.filter"&招工gt;</bean> </mvc:interceptor> </mvc:interceptors>
配置含义:
1.我们使用拦截器肯定要规定拦截哪些接口,首先我们将所有的接口都拦截
2.然后我们发现问题,此时登录接口也在拦截范围中,所以我们正常调用登录接口之前他也会拦截判断一下用户是否登录过,这个时候用户肯定没有登录过,那么就会又跳转到登录界面,我们再次登录还是跳转到登录页面,一直登录不上,所以我们需要把登录接口配置为不拦截
3.然后我们指定我们配置好的拦截器类路径,这个时候可以在该类中进行登录验证操作了
4.此配置文件为spring-mvc.xml配置文件
到此这篇关于ssm项目使用拦截器实现登录验证功能的文章就介绍到这了,更多相关ssm 拦截器登录验证内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!
本文发布于:2023-04-04 17:27:16,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/c386fcf2bec76e97d70f026305dcaf67.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:SSM项目使用拦截器实现登录验证功能.doc
本文 PDF 下载地址:SSM项目使用拦截器实现登录验证功能.pdf
| 留言与评论(共有 0 条评论) |