千家信息网

java web项目Session获取不到问题及解决方法

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这期内容当中小编将会给大家带来有关java web项目Session获取不到问题及解决方法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。java web项目Sess
千家信息网最后更新 2025年11月07日java web项目Session获取不到问题及解决方法

这期内容当中小编将会给大家带来有关java web项目Session获取不到问题及解决方法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

java web项目Session获取不到

在servlet类中对Session进行了设置 但当servlet跳转到页面时 页面获取不到Session!!!

关于session的生命周期

Session保存在服务器端。Session在用户第一次访问服务器的时候自动创建。需要注意只有访问JSP、Servlet等程序时才会创建Session,只访问HTML、IMAGE等静态资源并不会创建Session。如果尚未生成Session,也可以使用request.getSession(true)强制生成Session。

而我们在页面获取不到Seesion的原因可能是:浏览器禁用了Cookie

使用url地址重写即可解决!

  • response.encodeRedirectURL(url)用于对sendRedirect方法后的url地址进行重写。

  • response.encodeURL(url)用于对表单action和超链接的url地址进行重写

String url=response.encodeRedirectURL("url");response.sendRedirect(url);

这样在页面中即可使用

<%=request.getSession().getAttribute("key")%>

来获取我们存储的Seesion!!!

前后端分离获取不到session问题

前后端分离的项目,前端是vue,后端springboot,或者maven项目,生成验证码的时候存了一份到session并存到redis里,前端调后台注册获取不到session,但当用户从session中取信息的时候发现始终取不到,每次跨域请求时ajax发送的都是新的sessionid,导致无法获取信息

解决方案

前端在vue的main文件全局添加一下代码:

import axios from 'axios';axios.defaults.withCredentials=true;

后台新增一个过滤器

web.xml文件

    contextFilter    com.zl.filter.ContextFilter    contextFilter    /*
public class ContextFilter implements Filter {    @Override    public void init(FilterConfig filterConfig) throws ServletException {    }    @Override    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {        HttpServletResponse response = (HttpServletResponse)servletResponse;        HttpServletRequest request = (HttpServletRequest)servletRequest;        String origin = request.getHeader("Origin");        response.setHeader("Access-Control-Allow-Origin", origin);        response.setHeader("Access-Control-Allow-Methods", "*");        String headers = request.getHeader("Access-Control-Request-Headers");         // 支持所有自定义头        if (!org.springframework.util.StringUtils.isEmpty(headers)) {            response.setHeader("Access-Control-Allow-Headers", headers);        }        response.setHeader("Access-Control-Allow-Credentials", "true");        response.setHeader("Access-Control-Max-Age", "3600");        filterChain.doFilter(request, response);    }    @Override    public void destroy() {    }}

上述就是小编为大家分享的java web项目Session获取不到问题及解决方法了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

项目 页面 方法 问题 前端 地址 时候 生成 内容 后台 文件 服务器 用户 分析 服务 专业 中小 代码 会创 全局 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 怎么打开服务器安全组设置 广东国企软件开发招聘 怎么清除数据库保护 济南系统软件开发团队 饥荒管理员怎么更新服务器 日立电梯服务器故障怎么看 软件开发过程会遇到什么问题 软件开发师多大年龄不能做 数据库系统的设计目标应该有哪些 关注网络安全网络暴力 sql查询结果如何保存为数据库 软件开发背景及重要性怎么描述 数据库新技术福大0 深圳谦奕软件开发有限公司 wifi设备的邮件服务器怎么设 网络安全意识形态领导小组 reno2小白测评续航数据库 高能预警网络安全综述报告 小米11提示服务器异常 蓝桥杯软件开发大赛 怎么挑选服务器 战网登入账号显示服务器错误 网络安全审查办公室组成单位 服务器日常维护视频教程 如何给服务器发送1g的包 关注网络安全网络暴力 服务器万能网卡 阿里巴巴的数据库是中兴的吗 db2数据库与nodejs 国学起名软件开发
0