Will do as will say
分类: 系统运维
2012-12-18 08:53:54
Struts2框架Action通过ActionContext类和ServletActionContext辅助类来访问Servlet ApI都属于非IOC(Inversion of Control)方式。
ServletApplicationContext方式访问Servlet API,例子:
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse request = ServletActionContext.getResponse();
Struts2框架提供IoC方式访问Servlet API
Io c既控制反转。
要使用IoC方式范文Servlet API,Action必须实现下面的接口。
ServletContextAware :实现该接口的类可以直接访问Web应用的ServletContext实例。
该接口定义了一个 void setServletContext(ServletContext context)方法,实现该接口的类必须实现 void setServletContext(ServletContext context)方法。
ServletRequestAware:实现该接口的类可以直接访问用户请求的HttpServletRequest实例。该接口定义了一个void setServeltRequest(HttpServletRqeust request)方法。实现该接口的类必须是实现void setServeltRequest(HttpServletRqeust request)方法。
SerletResponseAware:实现该接口的类可以直接访问服务器响应的HttpServletResponse实例。该接口定义了一个void set ServletResponse(HttpServletResponse response)方法。实现该接口的方法必须实现void set ServletResponse(HttpServletResponse response)方法。
非IoC 访问ServletAPI,在编译时会提示找不到相应的JAR文件,该Jar用到了javax.servlet.http包,该包是Tomcat的类库文件,并不在标准的JDK开发包中。