我在struts2 action里使用session,session默认是依靠客户端浏览器cookie的;
但有的用户浏览器cookie禁用了,要得到服务器端的session对象,只能通过URL重写的方式吧?struts2里请求都是配置在struts配置文件中,对请求的地址如何跟上jsessionID呢?struts2有没有相应的拦截器呢?配置了就会自动在请求地址上加上jsessionID ??

解决方案 »

  1.   

    struts2好像默认就实现了url重写吧
      

  2.   

    struts2还真不是很熟悉当做学习啦
      

  3.   

    今天在项目里试了一下,struts2 action里使用了session,浏览器禁用cookie,一样能正常访问和执行提交所有操作
    不过没看到地址栏跟上jsessionid=xxx
    struts2 的session和JSP的不一样吗?JSP如果客户端浏览器禁用cookie,不做URL重写,是不能正常使用session的吧?
    对这些还真比较迷糊,没做过URL重写的程序,一直使用SSH框架但是网易的邮箱如果你禁用cookie,是登录不了的
    难道网易那么大的公司也没实现URL重写
    URL重写能实现借助cookie的所有能做的事麽?比如说网上登录时2个月不用登录的实现。禁用cookie,是不是无法实现,用URL重写也实现不了?
      

  4.   

    刚才回帖时CSDN也提示让我登录,但怎么也登录不上,只有启用cookie,才登录的了
      

  5.   

    最近看到很多程序员提 struts2 跟 session 之间的问题,
    struts2 这么不好用,为什么不用回struts1,
    最讨厌简单复杂化,要实现url重新,需要一个开源jar包,urlrewriteurl加jsessionid有何意义?
    getSessionId() 同样可以保持用户的sessionid,做开发要灵活,不要追求时髦,不要钻牛角尖,要懂得变通,其实都是很简单的问题,干嘛弄得这么复杂????
      

  6.   

    想用拦截器,就用filter,最简单不过了
      

  7.   

    在哪里getSessionId()??URL重写保持用户的sessionid只是放在了浏览器内存中,而不是本地,浏览器关了就没用了。
    所以,一般网站都是要求用户启用cookie,将用户标识放在用户本地,这样保存时间比较久也许吧。那么多大网站都要依赖cookie,我们也许不需要去想那么多
    这些不是技术问题
    简单的问题不必深究
      

  8.   

    struts2 中使用session也是很方便的呀
    而且它帮我们实现了很多东西
    用起来比struts1方便。它很好扩展
    总的说来,struts2还是很好用的
      

  9.   

    你可以去看一下ibm的设计,就算你把cookie禁用了,ibm也是可以登录的.
      

  10.   

    决定URL重写是可以由webserver做到的,不是struts2或者struts1
      

  11.   

    我记得struts 是自己实现了url重写  
    第一次发请求他会带上sessionid  然后判断你的cookie是不是开启  
    如果开启 就不带sessionid  
    如果没有开启  就会一直带着 sessionid
      

  12.   

    STRUTS2的标签<S:FROM>是实现了URL重写的!