struts2疑难之---ActionContext初始化问题

用过Struts2的兄弟们都知道,在action中不需要再使用 response ,request,因为架构设计中已经将Action和servlet解耦,可是如果一旦需要使用response,request等等的时候,怎么办?
比如 需要用session,cookie之类的,remoteAddr等等

一般怎么处理呢

HttpServletRequest request =(HttpServletRequest)ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
这样既可得到request

但是ActionContext.getContext()里面一定有HTTP_REQUEST这个值对吗,不一定

简单说 ,如果Http请求没有使用Action请求,那么这个ActionContext.getContext(),其实是个Map,里面的key大概是6个,没有request,response,比如你某个请求是一个jsp,在jsp中使用了某个帮助类,比如CookieUtil来判断并获取cookie,这时候就出问题了
request.getCookies();就有问题了,debug发现request是null

不过如果把这个jsp写成一个没有Action类的action
<action name="testCookie">
<result>testCookiePage.jsp</result>
</action>
这样就可以得到正常的request,一切都正常
debug发现,这个时候ActionContext.getContext()的map中有27个key,包括request,response,
有时间还得把ActionContext初始化过程仔细看看
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值