actioncontext.sessiongetcontext().getsession().remove("u

Struts2初学&Struts2在Action获取内置对象request,session,application(即ServletContext)
truts2在Action中如何访问request,session,application(即ServletContext)对象????
方式一:与Servlet API解耦的方式
可以使用struts2中提供的Map对象来访问HttpRequest,HttpSession和ServletContext对象,要获取这三个Map对象,可以使用com.opensymphony.xwork2.ActionContext类提供的静态方法
ActionContext ctx=ActionContext.getContext();
ctx.getApplication().put(“app”,”Application应用对
象”);//ServletContext放入app
ctx.getSession().put(“ses”,”session应用对象”);
ctx.put(“req”,”request对象”);
上面的三个方法,仅相当与request,session,applicationsetAttribute(string,object)方法。
struts2中提供的Map对象来提供类似request,session,application内置对象的功能,这些内置对象只有内置对象的一小部分功能,它不依赖于servlet,所以是解耦合的!!!
方式二:与Servlet
API耦合的访问方式
也可以直接访问Servlet环境中的HttpRequest,HttpSession和ServletContext对象。通过ServletActionContext.类提供的静态方法直接获取:
HttpServletRequest request=ServletActionContext.getRequest();
&& ServletContext
context=ServletActionContext.getServletContext();
HttpSession session=request.getSession();
&& HttpServletResponse
response=ServletActionContext.getResponse();
方式三、实现相关接口
public&class&BaseAction&extends&ActionSupport&implements&SessionAware,&ServletRequestAware,&ServletResponseAware&{&&
&&&&private&static&final&long&serialVersionUID&=&2346125L;&&
&&&&ActionContext&context&=&ActionContext.getContext();&&
&&&&HttpServletRequest&&&
&&&&HttpServletResponse&&&
&&&&SessionMap&&&
&&&&//获取request,response,session方式一,非IoC方式,不用实现SessionAware,&ServletRequestAware,&ServletResponseAware&&
&&&&//ActionContext&context&=&ActionContext.getContext();&&
&&&&//HttpServletRequest&request&=&(HttpServletRequest)&context.get(ServletActionContext.HTTP_REQUEST);&&
&&&&//HttpServletResponse&response&=&(HttpServletResponse)&context.get(ServletActionContext.HTTP_RESPONSE);&&
&&&&//Map&session&=&context.getSession();&&
&&&&//SessionMap&session&=&(SessionMap)&context.get(ActionContext.SESSION);&&
&&&&//获取request,response,session方式一,IoC方式,必须实现SessionAware,&ServletRequestAware,&ServletResponseAware&&
&&&&public&void&setSession(Map&map)&{&&
&&&&&&&&this.session&=&(SessionMap)&&&
&&&&public&void&setServletRequest(HttpServletRequest&request)&{&&
&&&&&&&&this.request&=&&&
&&&&public&void&setServletResponse(HttpServletResponse&response)&{&&
&&&&&&&&this.response&=&&&
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。ActionContext.getContext().getSession()如何测试
Struts2中如何测试Session?ActionContext.getContext().getSession().put(&name&,name)如何测试
09-10-16 &
我也是新手,我的貌似没有用到Map session = ActionContext.getContext().getSession();session.put(&slist&, slist);直接用 在action里用:public List getHList() {  return this.hL } @SuppressWarnings(&unchecked&) public void setHList(List hList) {  this.hList = hL }jsp页面中用:&s:iterator value=&hList& status=&ht&&&s:property value=&htId&/&
请登录后再发表评论!request.getsession()和ActionContext.getContext().getSession()有什么区别?_百度知道
request.getsession()和ActionContext.getContext().getSession()有什么区别?
该是actioncontext的范围比request大?request只是发生在用户请求阶段?所以后一句得到的是全部的session对象?所以前一句只是request里的session
提问者采纳
会返回缓存的那个session对象,获得session,结果在这里一样,后者是Structs等框架提供,由这个request去取出和这个request对应的session对象,否则会第一次创建并缓存这个session对象。第一句的语义是,如果有前者是JSP规范的内容
谢谢您回答我的问题
后面一句ActionContext.getContext().getSession()取出来的session对象是不是缓存中全部的session对象?
比前面一句request取出来的session对象多?
取出的结果都是一个session对象不是所有,也不是集合,而且是同一个session对象。
一个是上下文 一个是 request
为什么取出来的会是同一个session对象呢 ?
提问者评价
为您推荐:
其他2条回答
这两个都是得到当前session。只是写法不同。
谢谢您回答我的问题
后面一句ActionContext.getContext().getSession()取出来的session对象是不是缓存中全部的session对象?
比前面一句request取出来的session对象多?
今天才看到追问,既然楼上已经回答了,那我就不多说了。
参议写个例子试验
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁查看: 725|回复: 0
java 问题 我在Struts2 的action类里面 定义了个ServletActionContext.getRequest().g
java 问题 我在Struts2 的action类里面 定义了个ServletActionContext.getRequest().getSession().setAttribute(&loginuser&, u);u 是一个对象 我想在另一个action 类里面获取这个u里
网站导航:
※ 注意:为了您更好更快的咨询,请直接跟我们在线客服留言问题!因为目前每日咨询量较大,可能回复会稍稍偏慢请谅解,但我们一定做到留言必回复。
※ E-mail: (#麻烦换成@) ※
打开手机扫一扫
本站服务器平台由赞助提供
Powered by Discuz X3.2

我要回帖

更多关于 session.removevalue 的文章

 

随机推荐