Struts2访问Servlet的API

在Struts2中访问Servlet API有三种方式:

一、通过ActionContext访问Servlet API,该方式只能获得在request、session、application中数据的Map集合,不能操作这些对象本身的方法.

步骤:
1).创建一个ActionContext

  • ActionContext context=ActionContext.getContext();

2).通过context对象获取Servlet API

  • Map<String,Object> getApplication():获取的是application中存储的数据;
  • Map<String,Object> getParameters():相当于request.getParameterMap();
  • Map<String,Object> getSession():获取的是session中存储的数据;
  • put(String key,Object value):相当于request.setAttribute();
  • Object get(String key):相当于request.getAttribute()

二、通过接口注入的方式

通过实现相应的接口获得Servlet API,比如:

  • ServletContextAware:注入ServletContext对象
  • ServletRequestAware:注入 request对象
  • ServletResponseAware:注入response对象

比如获取HttpServletRequest对象:

 1 public class TestAction extends ActionSupport implements ServletRequestAware {
 2     HttpServletRequest request;
 3     @Override
 4     public String execute() {
 5         request.setAttribute("name", "requestTest");
 6         return "success";
 7     }
 8     
 9     @Override
10     public void setServletRequest(HttpServletRequest request) {
11         this.request = request;
12     }
13 }

三、通过原生的方式访问Servlet的API

通过ServletActionContext类中提供了静态方法可以直接获取Servlet的API:

1 //获取request
2 HttpServletRequest request = ServletActionContext.getRequest();
3 //获取session
4 HttpSession session = request.getSession();
5 //获取context
6 ServletContext context = ServletActionContext.getServletContext(); 

猜你喜欢

转载自www.cnblogs.com/AI-xiaocai/p/10745887.html