Struts2框架2.访问ServletAPI对象

本文介绍了Struts2框架中管理用户Session的两种方法:解耦方式和耦合方式。解耦方式通过普通Map对象避免与ServletAPI耦合,便于Action类测试;耦合方式则直接访问ServletAPI对象。
摘要由CSDN通过智能技术生成
例如用户登陆了网站,这个使用我们就需要使用Seesion将用户信息存放起来,所以Struts2为我们提供了两种方式,一种是解耦方式,第二种是耦合方式。

第一种方式-与ServletAPI解耦方式(不依赖原有Web组件)
    为了避免与Servlet API耦合在一起,方便Action类的测试,Struts2框架使用了普通的Map对象代替了Servlet API中的HttpServletRequest、HttpSeesion和ServletContext。在Action类中,可以直接访问HttpServletRequest、HttpSeesion和ServletContext对应的Map对象。Struts2提供了com.opensymphony.xwork2.ActionContext类获取ServletAPI对应的Map对象。
  获取HttpServletRequest对象
   ActionContext ac = ActionContext.getContext();

   Map request = (Map)ac.get("request");

  获取HttpSeesion对象
   ActionContext ac = ActionContext.getContext();
   Map session = ac.getSession();

  获取Application对象
   ActionContext ac = ActionContext.getContext();
   Map application = ac.getApplication();

第二种方式-与ServletAPI耦合方式(依赖于原有web组件)
   直接访问Servlet API将使Action类与Servlet API耦合在一起,众所周知,Servlet API对象均有Servlet容器来构造,与这些对象绑定在一起,测试过程中就必须有Servlet容器,这样不便于Action类的测试,但有些时候确实需要直接访问这些对象。直接获取Servlet API对象可以直接使用org.apache.struts2.ServletActionContext类,该类是ActionContext类的子类。
  获取HttpServletRequest对象使用getRequest()
  获取ServletContext对象使用getServletContext()
  获取HttpServletResponse对象使用getResponse()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值