[转]Struts2 + Spring + Hibernate + DWR 项目布署笔记

本文转载自: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>


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值