![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
在同一个JSP页面中,每次访问session id都在变化
具体如下:在guessNumber.jsp页面输入一个数字,提交后在guess.java里比较输入数字与session中保存的数字的大小,不同则返回到guessNumbe...
具体如下:在guessNumber.jsp页面输入一个数字,提交后在guess.java里比较输入数字与session中保存的数字的大小,不同则返回到guessNumber.jsp页面。期望每次在guessNumber.jsp页面输入数字并提交,sessionid都应该不变,但实际每次都在变化,如下:HttpSession session = request.getSession();System.out.println(session.getId());搞了两周都找不到原因,求高手指点。谢谢。附源代码如下图:
展开
1个回答
展开全部
jsp上增加
<%@ page session="false"%>
才会让你自己 getSession(true)或 getSession()时创建session
1、request.getSession() 等价于 request.getSession(true)
这两个方法的作用是相同的,查找请求中是否有关联的jsessionid,如果有则返回这个号码所对应的session对象,如果没有则生成一个新的session对象。所以说,通过此方法是一定可以获得一个session对象。
2、request.getSession(false) 查找请求中是否有关联的jsessionid号,如果有则返回这个号码所对应的session对象,如果没有则返回一个null。
3、在JSP页面中有一个session的隐士对象,这个隐士对象是怎么产生的呢?我们大家都知道JSP页面最终要被转换成一个Java源文件,实际上这个隐士对象就是通过request.getSession(true)这个方法获得的,所以总是可以获得session对象的。如果设置了<%@ page session=false%>指令,容器不会调用以上方法,而并不是说以上方法不会返回session对象。
<%@ page session="false"%>
才会让你自己 getSession(true)或 getSession()时创建session
1、request.getSession() 等价于 request.getSession(true)
这两个方法的作用是相同的,查找请求中是否有关联的jsessionid,如果有则返回这个号码所对应的session对象,如果没有则生成一个新的session对象。所以说,通过此方法是一定可以获得一个session对象。
2、request.getSession(false) 查找请求中是否有关联的jsessionid号,如果有则返回这个号码所对应的session对象,如果没有则返回一个null。
3、在JSP页面中有一个session的隐士对象,这个隐士对象是怎么产生的呢?我们大家都知道JSP页面最终要被转换成一个Java源文件,实际上这个隐士对象就是通过request.getSession(true)这个方法获得的,所以总是可以获得session对象的。如果设置了<%@ page session=false%>指令,容器不会调用以上方法,而并不是说以上方法不会返回session对象。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询