自定义过滤器获取不到session问题怎么解决
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,今天给大家介绍一下自定义过滤器获取不到session问题怎么解决。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。自定义过
千家信息网最后更新 2026年11月03日自定义过滤器获取不到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安全错误
数据库的锁怎样保障安全
瑰夏咖啡
互联网科技图片
华服互联网科技怎么样
山东特亿宝互联网科技有限公司
疫情对互联网科技公司影响
科技互联网公司logo
广州凡科互联网科技
中国互联网金融科技基金
金融科技和互联网金融
天速互联网络科技有限公司
互联网科技热点资讯
中国互联网有什么科技含量
互联网金融中的现代科技
移动互联网科技公司
江阴互联网智能科技产品进口
互联网保险科技创业
晋城互联网科技
互联网领先科技宣传片
中国新注册互联网科技
优雇互联网科技有限公司
小米移动互联网科技园
互联网科技有限公司图片
互联网金融监管科技
广西拼得多互联网科技有限公司
汉立互联网科技有限公司联系电话
宁夏众和广鑫互联网科技有限公司
工业互联网山东科技大学
梅州GM互联网络科技有限公司
产业互联网科技服务公司
华人运通互联网科技公司