action中获取session

_还行_ 2013-07-22 04:48:01
一般来说有4种方式获取session,我就说一种ActionContext.getContext().getSession();这种方式获得的session是http不想关的,我看了下源码,其实也就是一个map,那么容器是怎么区分此map和action里面的其他map的呢?对于这一点无法理解,希望有高手给予解答!
...全文
399 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
_还行_ 2013-07-22
  • 打赏
  • 举报
回复
引用 8 楼 licip 的回复:
这个struts2框架中的拦截器会帮你做这个处理的 如果是在非服务器的环境中运行,它会用map,这个方便测试 如果是在服务器的环境中,拦截器会把你的map中的数据取出来,设置到session中去。因为它们存储值的方式是相同的,都是键值对的形式。
嗯 我怀疑也是这种方式,之前只看了源码的interface误导了我
_还行_ 2013-07-22
  • 打赏
  • 举报
回复
引用 7 楼 Yuan_Rong_Hua 的回复:
随便定义一个页面取不到,我可能没表达清楚我的意思了,我是说的是map的声明路径,比如在A类声明map mapa;那么mapa的路径就是A.mapa,是这个路径的意思
你的意思可能是覆盖的意思,也可能src是这样实现的,我从接口里面看不出什么。不过为什么我在action里面定义的map,一会可以取到值一会又取不到值。
licip 2013-07-22
  • 打赏
  • 举报
回复
这个struts2框架中的拦截器会帮你做这个处理的 如果是在非服务器的环境中运行,它会用map,这个方便测试 如果是在服务器的环境中,拦截器会把你的map中的数据取出来,设置到session中去。因为它们存储值的方式是相同的,都是键值对的形式。
  • 打赏
  • 举报
回复
随便定义一个页面取不到,我可能没表达清楚我的意思了,我是说的是map的声明路径,比如在A类声明map mapa;那么mapa的路径就是A.mapa,是这个路径的意思
_还行_ 2013-07-22
  • 打赏
  • 举报
回复
引用 5 楼 Yuan_Rong_Hua 的回复:
根据map声明路径来区分的,源码里的map是官方封装的,我们自己写的有我们自己的路径,如果路径一样会覆盖,不就是声明变量么,
问题是他并没有显示封装,至少我没有从源码里看出来,他就是直接用的java.util.Map。你有没有试过在action里面随便定义一个map(没有getter方法),然后看在jsp里面能不能去得到map里面的值。
  • 打赏
  • 举报
回复
根据map声明路径来区分的,源码里的map是官方封装的,我们自己写的有我们自己的路径,如果路径一样会覆盖,不就是声明变量么,
_还行_ 2013-07-22
  • 打赏
  • 举报
回复
引用 3 楼 AA5279AA 的回复:
求这个session HttpServletRequest request = ServletActionContext.getRequest(); HttpSession session = request.getSession(); 存放session的对象不一样
我不是说的这个,httpsession我当然知道。我是说ActionContext.getContext().getSession();这种方式获得的session,源码是这样的: public Map<String, Object> getSession() { return (Map<String, Object>) get(SESSION); }
失落夏天 2013-07-22
  • 打赏
  • 举报
回复
求这个session HttpServletRequest request = ServletActionContext.getRequest(); HttpSession session = request.getSession(); 存放session的对象不一样
_还行_ 2013-07-22
  • 打赏
  • 举报
回复
引用 1 楼 jiafeng_lee 的回复:
sessionid
请看清题目
jiafeng_lee 2013-07-22
  • 打赏
  • 举报
回复
sessionid

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧