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文件中添加必要的配置,代码如下:
<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文件,并添加如下代码:
<!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 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数据库配置文件,代码如下:
#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标签中,添加如下代码:
<!-- 读取配置文件 --> <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标签中,添加如下代码:
<!-- 配置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文件里添加必要的配置,代码如下:
<!-- 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等),代码如下:
struts.objectFactory = spring
·添加DWR到web项目
1、将DWR必要的jar包复制到web项目的WEB-INF/lib目录下;(jar包在dwr.rar中)
2、在web.xml文件中添加dwr的加载配置,代码如下:
<!-- 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 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标签中添加如下代码:
<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、在前台页面调时需添加如下代码:
<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>
·测试web项目
见我的项目例子