第一种获取方式
第二种获取方法
public class Test2Action extends ActionSupport implements ServletRequestAware,ServletResponseAware,ServletContextAware{
HttpServletResponse response;
HttpServletRequest request;
ServletContext application;
public String test(){
//org.apache.struts2.interceptor.ServletConfigInterceptor
//获取servlet 的api方式
//第二种方式:通过实现接口,让struts自动注入
/**
* Aware:注入,调用方法,注入参数
*/
System.out.println(request);
System.out.println(response);
System.out.println(application);
//NONE不跳转,也就是不用找result标签
return NONE;
}
@Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
@Override
public void setServletResponse(HttpServletResponse response) {
this.response = response;
}
@Override
public void setServletContext(ServletContext context) {
this.application = context;
}
}
原理
执行action会有拦截器拦截
判断action继承了某个类 继承的话则自动注入 比如例中继承了ServletRequestAware,ServletResponseAware,ServletContextAware 实现父类方法运行自动注入request response servletContext