jsessionid的问题 10
java,在做新项目的时候,出现过这么一个问题,服务器是nginx+tomcat,项目名称test,访问java的一个方法,方法内部有个session.setAttrib...
java , 在做新项目的时候,出现过这么一个问题,
服务器是nginx+tomcat , 项目名称test , 访问java的一个方法,方法内部有个session.setAttribute("code","xxx");
然后在调用第二个方法,方法内部session.getAttribute("code"); 就取不到值了,,检查之后发现,在set的时候,jsessionid的path是在/test 下.但是在取的时候,因为nginx配置的关系,浏览器上的链接是不带项目名称的
而是w.ly.com/xxx.html,所以说session取值取不到,,,各位大神有什么方法可以解决这个问题嘛? 展开
服务器是nginx+tomcat , 项目名称test , 访问java的一个方法,方法内部有个session.setAttribute("code","xxx");
然后在调用第二个方法,方法内部session.getAttribute("code"); 就取不到值了,,检查之后发现,在set的时候,jsessionid的path是在/test 下.但是在取的时候,因为nginx配置的关系,浏览器上的链接是不带项目名称的
而是w.ly.com/xxx.html,所以说session取值取不到,,,各位大神有什么方法可以解决这个问题嘛? 展开
1个回答
展开全部
一个常见的误解是以为session在有客户端访问时就被创建
然而事实是直到某server端程序调用 HttpServletRequest.getSession(true)这样的语句时才被创建。
注意!!!!!!!!
如果JSP没有显示的使用 <%@ page session="false"%> 关闭session
则JSP文件在编译成Servlet时将会自动加上这样一条句
HttpSession session = HttpServletRequest.getSession(true);
这也是JSP中隐含的 session对象的来历。
你可以自己去tomcat的work\Catalina\目录下查看编译好的jsp文件。
所以不是按照jsp的运行来看的,而是看你是否调用 HttpServletRequest.getSession(true)
然而事实是直到某server端程序调用 HttpServletRequest.getSession(true)这样的语句时才被创建。
注意!!!!!!!!
如果JSP没有显示的使用 <%@ page session="false"%> 关闭session
则JSP文件在编译成Servlet时将会自动加上这样一条句
HttpSession session = HttpServletRequest.getSession(true);
这也是JSP中隐含的 session对象的来历。
你可以自己去tomcat的work\Catalina\目录下查看编译好的jsp文件。
所以不是按照jsp的运行来看的,而是看你是否调用 HttpServletRequest.getSession(true)
追问
首先感谢您的回答,但是你说的完全不是我问的问题.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询