Struts与Servlet API解耦的访问方式
2016-06-26 11:20
375 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_34047734/article/details/51761991
非IOC方式:
1、Struts2对HttpServletRequest、HttpSession和ServletContext进行了封装,构造了三个Map对象来替代这三种对象
public class LoginAction implements Action { //在这里展示了,如何将用户登对录对象写入到request,session,application作用域中 public User user; public String execute() throws Exception { ActionContext context=ActionContext.getContext(); Map request=(Map)context.get("request");//获得request对象 Map session=(Map)context.getSession(); Map application=(Map)context.getApplication(); request.put("user",user);//将user对象放到request作用域中 session.put("user",user);//将user对象放到session作用域中 application.put("user",user);//将user对象放到application作用域中 }
2、想要在action类中直接使用HttpServletRequest、HttpServletResponse、ServletContext这些对象
public class LoginAction implements Action { //在这里展示了,如何将用户登对录对象写入到request,session,application作用域中 public User user; public String execute() throws Exception { HttpServletRequest request=ServletActionContext.getReuquest(); HttpSession session=request.getSession(); ServletContext application=ServletActionContext.getServletContext(); request.setAttribute("user",user);//将user对象放到request作用域中 session. setAttribute("user",user);//将user对象放到session作用域中 application. setAttribute("user",user);//将user对象放到application作用域中 }
IOC方式:
1、在Action类中实现某些特定的接口的方式,让Struts2框架在运行时向Action实例注入request、session和application对象。
public class LoginAction implements Action,RequestAware,SessionAware,ApplicationAware { public Map request;//在这里将通过ioc的方式注入,注意是Map类型 public Map session; public Map application; public User user; public String execute() throws Exception { request.put("user",user);//将user对象放到request作用域中 session.put("user",user);//将user对象放到session作用域中 application.put("user",user);//将user对象放到application作用域中 } //request,session.application对象对应的Set/get方法... }
2、Action类还可以实现ServletRequestAware和ServletContextAware接口,由struts2框架向Action实例注入HttpServletRequest和ServletContext对象。
public class LoginAction implements Action,ServletRequestAware,ServletContextAware { public HttpServletRequest request;//在这里将通过ioc的方式注入 public ServletContext application; public User user; public String execute() throws Exception { request.setAttribute("user",user);//将user对象放到request作用域中 application. setAttribute("user",user);//将user对象放到application作用域中 } //override request,application对象对应的Set/get方法... }
IOC(Inversion of Control):控制反转
不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务、容器负责将这些联系在一起。
IoC的本质是实现了对象之间依赖关系的转移。通过使用Spring框架,开发人员将不必自己在代码中维护对象之间的依赖关系,只需在配置文件中进行设定就可以了。Spring会自动地依据配置信息来维护对象之间的依赖关系,将被依赖的对象设置给依赖对象。(依赖)控制权由应用代码中转到了外部容器,控制权的转移,即所谓的“反转”,换句话说,就是由容器控制程序之间的(依赖)关系,而非传统实现中由程序代码直接操控。
相关文章推荐
- Struts 2 访问session request application 对象的方式
- struts对于servlet的访问方式
- Struts2.0学习笔记 --- 访问或添加几个属性的三种方式
- SSH与SSM学习之Struts205——访问servletAPI方式
- Struts 2 访问session request application 对象的方式
- Struts 2 访问session request application 对象的方式
- Struts2_006_Servlet API解耦的访问方式web资源
- [Struts 2] 配置文件struts.xml的URL访问控制,及struts解析action方式
- Struts2.x中的Action访问Servlet API方式
- struts的action访问servlet的IOC方式与非IOC方式
- 8.ActionContext类与Servlet API解耦的访问方式
- Struts2_007_Servlet API解耦的访问方式web资源之Aware
- Struts 2 访问Servlet API的方式
- struts2——(6)(①访问Servlet对象的方式(与Servlet API解耦的访问方式)
- 访问www首页不跳转三级域名的两种方式 (struts welcome-file-list index.action问题)
- ActionContext类-与Servlet API解耦的访问方式
- struts web参数访问的几种方式
- Struts action类和form bean的几种不同组合方式以及各自的用处
- struts2 lesson one: 的action特征,三种创建方法,action接收表单数据的三种访问,读取方式