获取request,session ,application的方法

获取request,session ,application的方法:
ActionContext get(Object),getSession,getApplication()这三个方法分别能获取
Map类型的request,session.application,获取时首先需要取一个ActionContext对象
然后再调用上面的三个方法
如果使用此方法。必须在execute方法里初
Map类型的对象无法获得与servlet容器相关的方法
ActionContext context = ActionContext.getContext();
Map request = (Map)context.get("request");
Map session = context.getSession();
Map application = context.getApplication();
request.put("req","request");
session.put("ses","session");
application.put("app","application");

jsp取值:
<s:property value="#request.req"/>
<s:property value="#session.ses"/>
<s:property value="#application.app"/>

action实现requestAware,sessionAware,applicationAware接口

Map类型的对象无法获得与servlet容器相关的方法

与servlet容器相关的需要使用ServletActionContext

HttpServletRequest request = ServletActionContext.getRequest();
HttpSession session = request.getSession();
HttpServletResponse = ServletActionContext.getResponse();
ServletContext application= ServletActionContext.getServletContext();

request.setAttribute("req","request");
session.setAttribute("ses","session");
application.setAttribute("app","application");

如果只需要传值到前到,则使用Map就可以了,如果需要获取前台
的一些URL之类的信息,需要使用HttpServletRequest

也可以实现ServletRequestAware接口获得的方法也是HttpServletRequest
实现ServletContextAware接口也是获得ServletContext对象

总之:四种方法 :
两种与Servlet容器耦合的方法 :Ioc方法,非Ioc方法,
两种与Servlet容器解耦合的方法:Ioc方法,非Ioc方法,

1与Servlet容器耦合的方法 :Ioc方法
ServletRequestAware- 获取Request对象,通过Request.getSession()获取HttpSession对象
ServletContext-获取Application对象
2与Servlet容器耦合的方法 :非Ioc方法
ServletActionContext对象中的getRequest()/getServletContext();
3两种与Servlet容器解耦合的方法:Ioc方法
RequestAware 获取Request对象
SessionAware 获取Session对象
ApplicationAware 获取Application对象
4两种与Servlet容器解耦合的方法:非Ioc方法
ActionContext对象中的get(Ojbect key)获取Request(key:request),getSession()/getApplication()

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值