访问Servlet的API的实现接口方式
通过实现接口的方式
此种方式,需要我们的Action 类实现一些接口
第三种方式:
* 采用实现接口的方式,来获取对象能够使用对象的
* 原因:
* 是因为在我们的 sayHello 方法执行之前,已经有一些拦截器执行了。
* 通过 struts-default.xml 我们能知道默认的拦截器栈 defaultStack,
* 在我们的动作配置时,默认就会有该拦截器栈中的所有拦截器执行。先正序,再倒序。
帮我们给对象赋值全靠一个名称为 servletConfig 的拦截器
- 拦截器的重要性:
- 他可以在不改变我们动作方法的代码基础上,对我们的动作方法进行增强
接口实现底层依靠的是第二种方式
/**
* 在 struts2 框架中有三种方式可以获取到 ServletAPI 对象
* ServletAPI 对象包含了:
* request,response,HttpSession,ServletContext
* 第三种方式:
* 采用实现接口的方式,来获取对象
* 能够使用对象的原因:
* 是因为在我们的 sayHello 方法执行之前,已经有一些拦截器执行了。
* 通过 struts-default.xml 我们能知道默认的拦截器栈 defaultStack,
* 在我们的动作配置时,默认就会有该拦截器栈中的所有拦截器执行。先正序,再倒序。
*
* 帮我们给对象赋值全靠一个名称为 servletConfig 的拦截器
*
* 拦截器的重要性:
* 他可以在不改变我们动作方法的代码基础上,对我们的动作方法进行增强。
* @author Johnny.Chen
*
*/
public class Hello3Action extends ActionSupport
implements ServletRequestAware,ServletResponseAware,ServletContextAware{
private HttpServletRequest request;
private HttpServletResponse response;
private HttpSession session;
private ServletContext application;
/**
* @return
*/
public String sayHello(){
session = request.getSession();
System.out.println(request);
System.out.println(response);
System.out.println(session);
System.out.println(application);
return SUCCESS;
}
@Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
@Override
public void setServletResponse(HttpServletResponse response) {
this.response = response;
}
@Override
public void setServletContext(ServletContext application) {
this.application = application;
}
}