日期:2014-05-17  浏览次数:20615 次

真心求解:为啥会每次request后session都不一样
情况是这样:

环境:jdk6 + eclipse + tomcat 6 
其它:IE浏览器或者Firefox

WEB工程情况:struts 2 Hibernate,serlvet,jQuery,filter

出现问题:

以下一个简单的servlet,主要就两句话
Java code

//Servlet1.java
    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("STL2-2 --------" + request.getSession().getId());
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("STL2-3 --------" + request.getSession().getId());
    }



直接请求这个servlet
http://127.0.0.1:8080/TW/Servlet1
并不断刷新


1.按上面操作,每次打印出的sessionID都不一样。

2.检查,发现所有Struts2的Action session每次都一样。但重新请求Servlet1后,session都会变。

  同时,有这样一个流程:JSP请求另外一个Servlet,两个地方的session居然也不一样。。
  
  至此我已经相当无语了。。。。。

3.后来我把struts和所有的filter全都注释掉了,web.xml中只剩下只个servlet的配置。每次session还是不样。
  但是,我新建一个WEB工程,就简单的一个Servlet,不断刷新,却每次都是同一个session...
  至此,快疯掉了....

4.没办法,各种重启之后,那个JSP请求Servlet的简单流程,两处session居然一样了。但那个直接请求servlet的流程居然还TM不一样。。。。。。
  
 各种操蛋。。。。。

5.NND,心想就算了吧,把那个Servlet1.java删掉。。。。

6.过了一阵,心里还不服,再新建一个servlet,还叫Servlet1.java,重复操作,不断刷新。。。。


我日了,session居然又全部一样了。。。。。。


现在还没找找原因,我觉得整个工程就没修改个啥,结构也相当简单,求解!!!!


如果有朋友遇到这样的问题,可以讨论一下!!

我还有出问题的版本和不出问题版本两个版本都有,有兴趣的可以直接发给你研究一下。。。
加我QQ:136658666

注:出问题时,我已经打包发布到tomcat目录下,问题还是有,所以应该与eclipse没什么关系。






------解决方案--------------------
友情帮顶,看得有点糊涂 一样不一样....
我好想也遇到过类似的情况,会不会和提交方式有关get/post?和浏览器缓存有关?当时我找出的问题好想是这两个...等高手
------解决方案--------------------
也很糊涂;
偶想问题发生在Tomcat,JSP/Servlet的实现是Tomcat, Session也是Tomcat创建和维护的;
看下是否Debug模式,tomcat的\work\Catalina\localhost下的东西是否每次请求都有变化(时间戳);

------解决方案--------------------
顶一下,我也看的很糊涂
------解决方案--------------------
看的有点乱了,,希望早日解决
------解决方案--------------------
125818115

估计还是有不一样的地方吧。。还要具体分析。。。
------解决方案--------------------
这问题真的是神奇了,持续关注
------解决方案--------------------
下载,测试,都一样,你tomcat有问题,鉴定完毕。如果说名字是形式,只要能解决问题就行,那我是不是可以理解成,只要功能能实现,规范不重要?
------解决方案--------------------
在偶的环境中
运行没发现楼主说的问题

环境:jdk6,tomcat 6.0.20
其它:IE浏览器或者Firefox

建议是更换Tomcat版本再测试; 或使用Jboss测试或其它web服务器测试;


------解决方案--------------------
有结果了吗?
------解决方案--------------------
Test Result as follow:

------解决方案--------------------
Sorry,确有这问题;

------解决方案--------------------
呃,看糊涂了……理不清了……
------解决方案--------------------
探讨
终于找到问题的原因了,是因为我的工程名里有个括号。。。。