spring_03_在Web层的应用.
来源:互联网 发布:php 设置session id 编辑:程序博客网 时间:2024/06/14 09:19
一、Spring整合Web应用
1. 在Web应用程序中,要使用Spring的IoC容器(WebApplicationContext),必须对它进行初始化。Spring提供了两种方式:
1) ContextLoadListener : 在容器部署这个Web应用时就会触发这个监听器,这个监听器就会创建并初始化Spring的WebApplicationContext实例。具体配置如下(推荐使用)
a) 在web.xml中通过应用上下文初始化参数来指定Spring的配置文件的路径,如下配置:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext-*.xml</param-value>
<!-- <param-value>/WEB-INF/applicationContext-*.xml</param-value> -->
</context-param>
b) 在web.xml中配置ContextLoadListener监听器
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
2) ContextLoadServlet : 这个Servlet在初始化阶段也会创建并初始化Spring的WebApplicationContext实例。需要把它配置为自启动方式。如下配置:
a) 在web.xml中通过应用上下文初始化参数来指定Spring的配置文件的路径,同上a) 所示的配置。
b) 在web.xml中注册此Servlet:
<servlet>
<servlet-name>ContextLoadServlet<servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
2. 经过以上配置后,在Servlet或JSP中,直接使用Spring提供的WebApplicationContextUtils工具类就可以获取Spring的WebApplicationContext容器了,然后就可以从该容器中获取你想要的Bean了。
二、Spring整合Struts1:
1. 注意:Spring2.5以上版本整合Struts1.x时,需要在classpath中添加spring-webmvc-struts.jar包。
2. Spring有侵入性的整合Struts1:
Action类可以直接继承Spring提供的ActionSupport(或它的子类),这些类都提供了getApplicationContext()的方法来获取Spring的WebApplicationContext容器。
3. Spring无侵入性的整合Struts1: 强烈推荐使用
1) 在Struts配置文件中把默认的请求处理器换成Spring提供的DelegatingRequestProcessor这个请求处理器。具体配置如下:
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"/>
2) 在Struts配置文件中配置的每个Action,都要对应的在Spring的配置文件中进行相应的配置。
例如:struts配置文件有:
<action path="/dept"
type="com.qiujy.web.dept.DeptAction"
name="deptForm"
scope="request"
parameter="method"
validate="false">
<forward name="findAll" path="/list_dept.jsp"/>
</action>
那么在Spring配置文件中要有如下相应配置:<bean name="/dept" class="com.qiujy.web.dept.DeptAction" parent="baseAction" scope="prototype"/>
这样,客户提交的Struts请求就会映射到Spring容器创建的针对对应Action实例的代理对象上。Spring就可以对这些代理对象直接注入依赖。从而实现表示层和业务层依赖关系的松藕合。
三、Spring针对Hibernate还提供了org.springframework.orm.hibernate3.support.OpenSessionInViewFilter类,可以直接配置在web.xml中。用来在请求到达服务器资源时就开启session,在响应返回客户端之前关闭Session,以便于在JSP页面中仍可以初始化实体对象中延迟加载的属性。(效率问题,要谨慎使用)
四、Spring针对Web应用添加了一个请求消息体进行编码设置的过滤器org.springframework.web.filter.CharacterEncodingFilter,可直接在web.xml中配置生效。
五、Spring应用的流行架构:
struts1 + spring3 + hibernate3集成开发 (ssh)
struts2 + spring3 + hibernate3集成开发(ssh2)
1. 在Web应用程序中,要使用Spring的IoC容器(WebApplicationContext),必须对它进行初始化。Spring提供了两种方式:
1) ContextLoadListener : 在容器部署这个Web应用时就会触发这个监听器,这个监听器就会创建并初始化Spring的WebApplicationContext实例。具体配置如下(推荐使用)
a) 在web.xml中通过应用上下文初始化参数来指定Spring的配置文件的路径,如下配置:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext-*.xml</param-value>
<!-- <param-value>/WEB-INF/applicationContext-*.xml</param-value> -->
</context-param>
b) 在web.xml中配置ContextLoadListener监听器
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
2) ContextLoadServlet : 这个Servlet在初始化阶段也会创建并初始化Spring的WebApplicationContext实例。需要把它配置为自启动方式。如下配置:
a) 在web.xml中通过应用上下文初始化参数来指定Spring的配置文件的路径,同上a) 所示的配置。
b) 在web.xml中注册此Servlet:
<servlet>
<servlet-name>ContextLoadServlet<servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
2. 经过以上配置后,在Servlet或JSP中,直接使用Spring提供的WebApplicationContextUtils工具类就可以获取Spring的WebApplicationContext容器了,然后就可以从该容器中获取你想要的Bean了。
二、Spring整合Struts1:
1. 注意:Spring2.5以上版本整合Struts1.x时,需要在classpath中添加spring-webmvc-struts.jar包。
2. Spring有侵入性的整合Struts1:
Action类可以直接继承Spring提供的ActionSupport(或它的子类),这些类都提供了getApplicationContext()的方法来获取Spring的WebApplicationContext容器。
3. Spring无侵入性的整合Struts1: 强烈推荐使用
1) 在Struts配置文件中把默认的请求处理器换成Spring提供的DelegatingRequestProcessor这个请求处理器。具体配置如下:
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"/>
2) 在Struts配置文件中配置的每个Action,都要对应的在Spring的配置文件中进行相应的配置。
例如:struts配置文件有:
<action path="/dept"
type="com.qiujy.web.dept.DeptAction"
name="deptForm"
scope="request"
parameter="method"
validate="false">
<forward name="findAll" path="/list_dept.jsp"/>
</action>
那么在Spring配置文件中要有如下相应配置:<bean name="/dept" class="com.qiujy.web.dept.DeptAction" parent="baseAction" scope="prototype"/>
这样,客户提交的Struts请求就会映射到Spring容器创建的针对对应Action实例的代理对象上。Spring就可以对这些代理对象直接注入依赖。从而实现表示层和业务层依赖关系的松藕合。
三、Spring针对Hibernate还提供了org.springframework.orm.hibernate3.support.OpenSessionInViewFilter类,可以直接配置在web.xml中。用来在请求到达服务器资源时就开启session,在响应返回客户端之前关闭Session,以便于在JSP页面中仍可以初始化实体对象中延迟加载的属性。(效率问题,要谨慎使用)
四、Spring针对Web应用添加了一个请求消息体进行编码设置的过滤器org.springframework.web.filter.CharacterEncodingFilter,可直接在web.xml中配置生效。
五、Spring应用的流行架构:
struts1 + spring3 + hibernate3集成开发 (ssh)
struts2 + spring3 + hibernate3集成开发(ssh2)
- spring_03_在Web层的应用.
- Web应用层基础
- java web 解析ThreadLocal在持久层中的应用
- 在应用层的横竖屏切换
- 锁在应用层的优化思路
- 锁在应用层的优化思路
- 在驱动层直接使用应用层的空间
- 典型的Web应用的后端是持久层
- struts+spring+hibernate的web应用 Dao层代码编写
- struts+spring+hibernate的web应用 Service层代码编写
- struts+spring+hibernate的web应用 Dao层代码编写
- struts+spring+hibernate的web应用 Service层代码编写
- struts+spring+hibernate的web应用 Dao层代码编写
- struts+spring+hibernate的web应用 Service层代码编写
- 基于Struts技术的Web层应用设计和实现
- struts+spring+hibernate的web应用 Dao层代码编写
- struts+spring+hibernate的web应用 Service层代码编写
- 主题:web应用service层的全局事物问题
- 最小生成树模版(Prime+邻接表)
- android游戏开发适应多屏幕的问题
- 博客的开始
- spring_01_核心技术
- spring_02_在中间层的使用
- spring_03_在Web层的应用.
- Sub-process /usr/bin/dpkg returned an error code (1) 的解决办法
- 真爱如血 精彩出乎我意料
- 不真实的景象
- 触动人心:如何设计优秀的iPhone应用
- TOMCAT下,File对象,访问网络路径下文件失败的解决方案
- 帮助提示工具Toast的简单使用
- LCD驱动学习笔记
- 在Android的简单使用menu