首页 > 作文

SSM项目使用拦截器实现登录验证功能

更新时间:2023-04-04 17:27:17 阅读: 评论:0

目录
登录接口实现拦截器类代码实现配置文件实现

登录接口实现

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 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图