Ioc(Inversion of Control)
Ioc(Inversion of Control)即控制反转。在java开发中,Ioc意味着将设计好的类交给系统去控制,而不是在自己的内部控制。这称为控制反转。
Ioc方式
在struts2中,通过Ioc方式将Servlet对象注入到Action中,具体实现是由一组接口决定的,要采用Ioc方式就必须在Action中实现以下接口:
1)ApplicationAware:以Map类型向Action注入保存在ServletContext中的Attribute集合
2)SessionAware:以Map类型向Action注入保存在HttpSession中的Attribute集合。
3)CookiesAware:以Map类型向Action注入Cookie中的数据集合。
4)ParameterAware:向Action中诸如请求参数集合
5)ServletContextAware:实现该接口的Action可以直接访问ServletContext对象,Action必须实现该接口的void setServletContext(ServletContext context)方法
6)ServletRequestAware:实现该接口的Action可以直接访问HttpServletRequest对象,Action必须实现该接口的void setServletRequest(HttpServletRequest request)方法
7)ServletResponseAware:实现该接口的Action可以直接访问HttpServletResponse对象,Action必须实现该接口的void setServletResponse(HttpServletResponse response)方法
注意:采用Ioc方式时需要实现上面所示的一些接口,这组接口有一个共同点,接口名称都以Aware结尾。
在Ioc方式下,可以使用Action实现其中的一个接口,也可以实现全部接口,这根据具体情况而定。
Action对Servlet API有两种访问方式,分别为间接访问和直接访问。对于间接访问方式,一般推荐使用。但是只能获得request对象,而得不到response对象;不推荐使用Ioc访问方式,因为该方式的实现比较麻烦,并且与Servlet API耦合大;推荐使用非Ioc方式,因为实现方式简单,代码量少而又能满足要求。

浙公网安备 33010602011771号