在web容器中实例化spring容器:(web.xml)
<!—指定spring的配置文件,默认从web根目录找配置文件,我们可以通过spring提供的classpath:前缀指定从类路径下寻找-->
<!-- 配置上下文参数给监听器读取-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:beans.xml</param-value>
</context-param>
<!-- 配置监听器,对spring容器进行实例化 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
在web容器中配置struts:(web.xml)
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
SS整合:
l 当action没有交给spring管理时,我们通过下面语句获取spring容器实例:
WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(
this.getServlet().getServletContext());
l 当把action交给spring管理后,我们可以使用依赖注入在action中注入业务层的bean。确保action的path属性与bean的name属性相同:
Struts配置:
<action path=“/person/list” …>
</action>
Spring配置:
<bean name=“/person/list” class=“cn.itcast.web.action.PersonAction”>
在struts配置文件中添加进spring的请求控制器,该请求控制器会先根据action的path属性值到spring容器中寻找跟该属性值同名的bean。如果寻找到即使用该bean处理用户请求,如果没找到则在struts配置文件中寻找相应的请求处理器(action):
<controller>
<set-property property=“processorClass” value=“org.springframework.web.struts.DelegatingRequestProcessor”>
</controller>
Web项目部署技巧:
一般把不能让用户在浏览器中直接访问的jsp文件和其他资源文件放在WEB-INF目录下。
Tomcat 5对应J2EE 1..4标准,Tomcat 6对应JEE 5标准。
Hibernate二级缓存的配置:
hibernate.cache.use_second_level_cache=true
hibernate.cache.use_query_cache=false
hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider(ehcache-xx.jar)
…………
解决向服务器传递中文的乱码问题:
<!-- 配置字符过滤器 -->
<filter>
<filter-name>Spring character encoding filter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Spring character encoding filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
使用spring解决hibernate因session关闭导致的延迟加载例外问题:
<!-- 配置opensessioninview过滤器 -->
<filter>
<filter-name>openSession</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>openSession</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>