struts2+spring+jpa+dwr

本文详细介绍了如何配置SSH2+AJAX环境,包括搭建Web工程、配置Struts2和Spring环境、设置JPA相关内容及DWR配置等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在国内,一些中小公司或外包公司对SSH2的需求还是比较大的,所以这里写一个SSH2+AJAX的配置,下一章将介绍一个通用DAO的配置。

接下来进入主题

  1:建立一web工程

  2:首先配置STRUTS2环境,需求包可以到apache的官方网站,我这里用的是2.1.6的版本,所以具体的需求包有

    --struts2

      --lib

        --struts2-core-2.1.6.jar

        --xwork-2.1.2.jar

        --ognl-2.6.11.jar

        --freemarker-2.3.13.jar

        --commons-fileupload-1.2.1.jar

        --struts2-spring-plugin-2.1.6.jar

  其中commons-fileupload-1.2.1.jar在2.1.6中是必须的,否则启动的时候回报异常;struts2-spring-plugin-2.1.6.jar这个文件是用于和spring整合用的,包准备好了后就配置相应的配置,打开web.xml文件,加入以下内容:

       <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>

  其中FilterDispatcher是struts2的主启动类,此过滤器拦截所有的URL请求;然后在src目录下建立struts.xml文件,加入以下内容:

    <?xml version="1.0" encoding="UTF-8" ?>
      <!DOCTYPE struts PUBLIC
            "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
            "http://struts.apache.org/dtds/struts-2.0.dtd">
      <struts>
          <constant name="struts.objectFactory" value="spring" />
          <constant name="struts.devMode" value="true" />

      </struts>

  3:接下来就是spring的配置了,同样是到spring官方将支持包下载,可以使用一个单jar包,spring.jar文件即可;包准备好后就要修改配置文件了,打开web.xml文件,在其中添加一个监听器程序,代码如下:

     <context-param>
        <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring-main.xml</param-value>
     </context-param>
     <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
     </listener>

  完成后就和struts2集成好了,最后是要配置JPA的内容了,这里我们用的是hibernate的JPA实现包,到JBOSS官方下载对应的包,有hibernate.jar,hibernate-annotations.jar,hibernate-commons-annotations.jar,hibernate-entitymanager.jar,javassist.jar,jboss-archive-browsing.jar;需求包解决后开始配置文件,由于我们使用的是和spring整合,则重点配置在spring中,而JPA部分只配置一些基本元素;首先打开spring配置文件,往里添加如下代码:

  <!-- 数据源配置 -->

  <bean id="dataSource"
          class="org.springframework.jdbc.datasource.DriverManagerDataSource">
          <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
          <property name="url" value="jdbc:oracle:thin:@localhost :1521:ORCL" />
          <property name="username" value="hlin" />
          <property name="password" value="hlin" />
   </bean>
 

  <!-- 实体工厂配置 -->
   <bean id="entityManagerFactory"
          class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
          <property name="dataSource" ref="dataSource" />
          <property name="jpaVendorAdapter">
            <bean
                  class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                  <property name="database" value="ORACLE" />
                  <property name="showSql" value="true" />
                  <property name="generateDdl" value="false" />
             </bean>
          </property>
      </bean>

  <!--事物管理-->

   <bean id="transactionManager"
          class="org.springframework.orm.jpa.JpaTransactionManager">
          <property name="entityManagerFactory" ref="entityManagerFactory" />
     </bean>
     <!--通过注解的方式实现事物注入-->
     <tx:annotation-driven transaction-manager="transactionManager" />

  配置好后还要将ORACLE数据库的驱动程序加入到classpath中;再到src目录下建立一个目录,名称为META-INF,然后再到里面建立一文件,名称为persistence.xml,里面内容如下:

  <?xml version="1.0" encoding="UTF-8"?>
    <persistence xmlns="http://java.sun.com/xml/ns/persistence"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
        http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
    
       <persistence-unit name="helpPU" transaction-type="RESOURCE_LOCAL">
       </persistence-unit>
    </persistence>

  4:配置dwr,直接到官方网站下载编译后的包dwr.jar文件,然后打开dwr.jar将里面的dwr.xml文件拖出放到WEB-INF目录下,然后将dwr.xml文件的<allow></allow>之间的内容统统删除,再打开web.xml文件,添加如下代码:

  <!-- dwr配置文件 -->
   <servlet>
      <servlet-name>dwr-invoke</servlet-name>
      <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
      <init-param>
       <param-name>debug</param-name>
       <param-value>true</param-value>
      </init-param>
      <!-- 日志显示等级 -->
      <init-param>
         <param-name>logLevel</param-name>
         <param-value>warn</param-value>
      </init-param>
      <!-- 不同域的session安全配置 -->
      <init-param>
         <param-name>crossDomainSessionSecurity</param-name>
         <param-value>false</param-value>
      </init-param>
      <init-param>
         <param-name>allowScriptTagRemoting</param-name>
         <param-value>true</param-value>
      </init-param>
   </servlet>
   <servlet-mapping>
        <servlet-name>dwr-invoke</servlet-name>
       <url-pattern>/dwr/*</url-pattern>
   </servlet-mapping>
 
   <!-- 解决JPA延迟加载的问题 -->
   <filter>
      <filter-name>openEntityManagerInViewFilter</filter-name>
      <filter-class>
       org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter

    </filter-class>
   </filter>
       <filter-mapping>
          <filter-name>openEntityManagerInViewFilter</filter-name>
          <url-pattern>/dwr/*</url-pattern>
      </filter-mapping>

  最后一个过滤器是为防止session提前关闭而设置的。

  最后还要将常用的一些jar包支持设置到classpath路径中,在此就完成了SSH2+AJAX的配置。 

转载于:https://my.oschina.net/victorHomePage/blog/61761

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值