自定义过滤器获取不到session问题怎么解决
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,今天给大家介绍一下自定义过滤器获取不到session问题怎么解决。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。自定义过
千家信息网最后更新 2025年11月09日自定义过滤器获取不到session问题怎么解决
今天给大家介绍一下自定义过滤器获取不到session问题怎么解决。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。
自定义过滤器获取不到session
根本原因,多个自定义过滤器执行顺序问题
问题
action请求中request对象为ShiroHttpServletRequest, 可以取到session内容
而在第一个自定义过滤器中request对象为requestfacade,取不到session内容
原因
session由shiro管理,凡是在shiro过滤器顺序之前的自定义过滤器都取不到session内容
解决办法
将shiro过滤器放在第一个位置
登录拦截器取到的session为空
写了一个拦截器
@Configurationpublic class InterceptorConfig implements WebMvcConfigurer { /** * 注册拦截器 */ @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**.html").excludePathPatterns("/Ylogin.html","/Yindex.html","/YRegister.html"); }}判断有没有登录
然后那时候我这边session.getAttribute("user")一直为空
public class MyInterceptor implements HandlerInterceptor { //在请求处理之前进行调用(Controller方法调用之前 @Override public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception { System.out.println("开始请求地址拦截"); //获取session HttpSession session = httpServletRequest.getSession(); if (session.getAttribute("user") != null) return true; httpServletResponse.sendRedirect("/Ylogin.html"); return false; } //请求处理之后进行调用,但是在视图被渲染之前(Controller方法调用之后) @Override public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception { System.out.println("postHandle被调用"); } //在整个请求结束之后被调用,也就是在DispatcherServlet 渲染了对应的视图之后执行(主要是用于进行资源清理工作) @Override public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception { System.out.println("afterCompletion被调用"); }}在另外页面能得到session的值
但是在拦截器那里就session为null,烦了很久,以为是自己写错了拦截器,搞了很久最后才知道,是login.js写错了。就是ajax的url写错了
$.ajax({ type: "POST", url: "/user/doLogin", dataType: "json", data:user, async:false, success: function(res) {} })因为我以前地址写的是url:"http://127.0.0.1:8080/user/doLogin",把前面的ip地址省略就行了,ip地址和localhost的区别
以上就是自定义过滤器获取不到session问题怎么解决的全部内容了,更多与自定义过滤器获取不到session问题怎么解决相关的内容可以搜索之前的文章或者浏览下面的文章进行学习哈!相信小编会给大家增添更多知识,希望大家能够支持一下!
过滤器
内容
问题
拦截器
地址
文章
原因
对象
就是
方法
是在
更多
视图
顺序
处理
登录
不错
也就是
位置
办法
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
nas服务器备份打不开
黑龙江新希望网络技术开发
淄博mrp软件开发
32岁转行网络安全
软件开发专业学计算机知识吗
网络安全技术与实践作业
九玩网络技术有限公司
宁波构建智慧小区软件开发
群硕软件开发有限公司股权
ibm服务器硬盘阵列
服务器维护表
联咏行车软件开发是什么版本
用matlab作软件开发
云南省公安厅网络安全总队吴
服务器复杂接线图
企业做网络安全运维
网络安全属需求于社交需求
旧服务器改装
身份证号码数据库归哪个部门管
mc小游戏服务器
天津语音网络技术服务产品介绍
滨海区进行网络安全培训
数据库怎么自动生成一个函数
沙特阿美网络安全
同花顺数据库理想论坛
华为机架式服务器特点
数据库中date的类型
user服务器熔断什么意思
数据库运维工程师简历模板
图腾标准服务器机柜