本文转载自:http://51jsr.javaeye.com/blog/294756
SSHD的布署主要分为五部分,分别是:建立web项目、整合Struts2到新建的web项目、为项目添加Spring和Hibernate并做好必要的整合配置、整合Spring和Struts2、添加DWR到web项目。
项目布署
·建立web项目
在Eclipse的菜单栏中,选择 文件->新建->项目 建立一个 web项目;
·整合Struts2到新建的web项目
1、将struts2必要的jar包复制到web项目的WEB-INF/lib目录下;(jar包在struts2.rar中)
2、在web.xml文件中添加必要的配置,代码如下:
Xml代码
<display-name>APP Name</display-name>
<!-- struts2 config -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<display-name>APP Name</display-name>
<!-- struts2 config -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3、在src目录下新建struts.xml文件,并添加如下代码:
Xml代码
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml"/>
<package name="sshd" extends="struts-default">
</package>
</struts>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml"/>
<package name="sshd" extends="struts-default">
</package>
</struts>
·为项目添加Spring和Hibernate并做好必要的整合配置
1、将spring和Hibernate所必需的jar包复制到web项目的WEB-INF/lib目录下(jar包在struts2+spring.rar和hibernate3.1.rar中);
在src目录下新建applicationContext.xml文件,并添加如下代码:
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
</beans>
2、在src目录下新建jdbc.properties数据库配置文件,代码如下:
Java代码
#Oracle9i --------------------------------------------
jdbc.driverClassName = oracle.jdbc.driver.OracleDriver
#jdbc.url=jdbc:oracle:thin:@(description=(address=(host=127.0.0.1)(protocol=tcp)(port=1521))(connect_data=(service_name=xftest)))
jdbc.url = jdbc:oracle:thin:@127.0.0.1:1521:ora9idb
jdbc.username = sshd
jdbc.password = sshd
#下面还可以写其它数据库的连接参数,用‘#’注掉即可 ------
#Oracle9i --------------------------------------------
jdbc.driverClassName = oracle.jdbc.driver.OracleDriver
#jdbc.url=jdbc:oracle:thin:@(description=(address=(host=127.0.0.1)(protocol=tcp)(port=1521))(connect_data=(service_name=xftest)))
jdbc.url = jdbc:oracle:thin:@127.0.0.1:1521:ora9idb
jdbc.username = sshd
jdbc.password = sshd
#下面还可以写其它数据库的连接参数,用‘#’注掉即可 ------
加载jdbc.properties数据库连接配置,打开applicationContext.xml文件,在beans标签中,添加如下代码:
Xml代码
<!-- 读取配置文件 -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
</list>
</property>
</bean>
<!-- 读取配置文件 -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
</list>
</property>
</bean>
3、整合Spring和Hibernate,需要在Spring中为Hibernate配置数据源和sessionFactory,打开applicationContext.xml文件,在beans标签中,添加如下代码:
Xml代码
<!-- 配置Hibernate数据源 -->
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName"
value="${jdbc.driverClassName}">
</property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"></ref>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop>
<prop key="hibernate.show_sql">
true
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>数据库表Bean的hbm.xml</value>
</list>
</property>
</bean>
<!-- 配置Hibernate数据源 -->
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName"
value="${jdbc.driverClassName}">
</property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"></ref>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop>
<prop key="hibernate.show_sql">
true
</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>数据库表Bean的hbm.xml</value>
</list>
</property>
</bean>
·整合Spring和Struts2
1、将整合必要的struts2-spring-plugin-2.0.11.2.jar和spring.jar包复制到web项目的WEB-INF/lib目录下;(jar包在struts2+spring.rar中)
2、在web.xml文件里添加必要的配置,代码如下:
Xml代码
<!-- spring + hibernate config -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/applicationContext.xml
</param-value>
</context-param>
<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ActionContextCleanUp
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<!-- spring + hibernate config -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/applicationContext.xml
</param-value>
</context-param>
<filter>
<filter-name>struts-cleanup</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ActionContextCleanUp
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts-cleanup</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
3、在src目录下新建Struts.properties配置文件,告知Struts2在运行时使用Spring来创建对象(如Action等),代码如下:
Java代码
struts.objectFactory = spring
struts.objectFactory = spring
·添加DWR到web项目
1、将DWR必要的jar包复制到web项目的WEB-INF/lib目录下;(jar包在dwr.rar中)
2、在web.xml文件中添加dwr的加载配置,代码如下:
Xml代码
<!-- DWR config -->
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
<!-- DWR config -->
<servlet>
<servlet-name>dwr-invoker</servlet-name>
<servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dwr-invoker</servlet-name>
<url-pattern>/dwr/*</url-pattern>
</servlet-mapping>
3、在WEB-INF/lib目录下新建dwr.xml文件,代码如下:
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">
<dwr>
<allow>
</allow>
</dwr>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 2.0//EN" "http://getahead.org/dwr/dwr20.dtd">
<dwr>
<allow>
</allow>
</dwr>
4、在dwr.xml中配置要映射成js的java类,在allow标签中添加如下代码:
Xml代码
<create creator="spring" javascript="loginAction">
<param name="beanName" value="loginAction"/>
</create>
<create creator="spring" javascript="loginAction">
<param name="beanName" value="loginAction"/>
</create>
creator="spring" 表示要映射的java类由spring来创建
javascript="loginAction" 表示映射完后,java类在js中的引用名
name="beanName" 用spring 来创建类就用beanName这个设置
value="loginAction" value的值对应applicationContext.xml中定义的某个bean的id值
5、一般要在java类中写一个专门用DRW调的方法;
6、在前台页面调时需添加如下代码:
Html代码
<script type='text/javascript' src='${pageContext.request.contextPath}/dwr/interface/loginAction.js'></script> 这个就是映射后的js类
<script type='text/javascript' src='${pageContext.request.contextPath}/dwr/engine.js'></script>
<script type='text/javascript' src='${pageContext.request.contextPath}/dwr/util.js'></script>
<script type='text/javascript' src='${pageContext.request.contextPath}/dwr/interface/loginAction.js'></script> 这个就是映射后的js类
<script type='text/javascript' src='${pageContext.request.contextPath}/dwr/engine.js'></script>
<script type='text/javascript' src='${pageContext.request.contextPath}/dwr/util.js'></script>