您的位置:首页 > 编程语言 > Java开发

新版SSH+DWR配置(Struts2.1.8+Spring3.0+Hibernate3.3.2+DWR2.0.6)

2010-02-16 15:31 363 查看
项目所需要用的包(包含常用包):

 antlr-2.7.6.jar

 aopalliance-1.0.jar

 asm-all-3.2.jar

 cglib-2.2.jar

 commons-beanutils-1.8.2.jar

 commons-codec-1.4.jar

 commons-collections-3.2.1.jar

 commons-digester-2.0.jar

 commons-fileupload-1.2.1.jar

 commons-io-1.4.jar

 commons-lang-2.4.jar

 commons-logging-1.1.1.jar

 commons-validator-1.3.1.jar

 dom4j-1.7.jar

 dwr-2.06.jar

 ehcache-1.2.3.jar

 ejb3-persistence.jar

 ezmorph-1.0.3.jar

 freemarker-2.3.15.jar

 hibernate-annotations.jar

 hibernate-commons-annotations.jar

 hibernate-entitymanager.jar

 hibernate-search-3.1.1.GA.jar

 hibernate-validator-4.0.2.GA.jar

 hibernate3.jar

 jakarta-oro-2.0.8.jar

 javassist-3.9.0.GA.jar

 json-lib-2.3-jdk15.jar

 jstl.jar

 jta-1.1.jar

 jtds-1.2.5.jar

 junit-4.8.1.jar

 log4j-1.2.8.jar

 ognl-2.7.3.jar

 org.springframework.aop-3.0.0.RELEASE.jar

 org.springframework.asm-3.0.0.RELEASE.jar

 org.springframework.aspects-3.0.0.RELEASE.jar

 org.springframework.beans-3.0.0.RELEASE.jar

 org.springframework.context-3.0.0.RELEASE.jar

 org.springframework.context.support-3.0.0.RELEASE.jar

 org.springframework.core-3.0.0.RELEASE.jar

 org.springframework.expression-3.0.0.RELEASE.jar

 org.springframework.instrument-3.0.0.RELEASE.jar

 org.springframework.instrument.tomcat-3.0.0.RELEASE.jar

 org.springframework.jdbc-3.0.0.RELEASE.jar

 org.springframework.jms-3.0.0.RELEASE.jar

 org.springframework.orm-3.0.0.RELEASE.jar

 org.springframework.oxm-3.0.0.RELEASE.jar

 org.springframework.test-3.0.0.RELEASE.jar

 org.springframework.transaction-3.0.0.RELEASE.jar

 org.springframework.web-3.0.0.RELEASE.jar

 org.springframework.web.portlet-3.0.0.RELEASE.jar

 org.springframework.web.servlet-3.0.0.RELEASE.jar

 org.springframework.web.struts-3.0.0.RELEASE.jar

 poi-3.5-FINAL-20090928.jar

 proxool-0.9.1.jar

 proxool-cglib.jar

 pull-parser-2.1.10.jar

 slf4j-api-1.5.10.jar

 slf4j-log4j12-1.5.10.jar

 slf4j-nop-1.5.10.jar

 standard.jar

 struts2-convention-plugin-2.1.8.1.jar

 struts2-core-2.1.8.1.jar

 struts2-dwr-plugin-2.1.8.1.jar

 struts2-json-plugin-2.1.8.1.jar

 struts2-spring-plugin-2.1.8.1.jar

 velocity-1.5.jar

 velocity-tools-1.3.jar

 xwork-core-2.1.6.jar

proxool(proxool.properties)配置文件:

 jdbc-0.proxool.alias=DBPool

 jdbc-0.proxool.driver-url=jdbc:jtds:sqlserver://localhost:1433/student

 jdbc-0.proxool.driver-class=net.sourceforge.jtds.jdbc.Driver

 jdbc-0.user=sa

 jdbc-0.password=**********      (哈哈,密码省略)

 jdbc-0.proxool.house-keeping-sleep-time=40000

 jdbc-0.proxool.house-keeping-test-sql=SELECT GETDATE()

 jdbc-0.proxool.maximum-connection-count=100

 jdbc-0.proxool.minimum-connection-count=25

 jdbc-0.proxool.maximum-connection-lifetime=18000000

 jdbc-0.proxool.simultaneous-build-throttle=5

 jdbc-0.proxool.recently-started-threshold=40000

 jdbc-0.proxool.overload-without-refusal-lifetime=50000

 jdbc-0.proxool.maximum-active-time=60000

 jdbc-0.proxool.verbose=true

 jdbc-0.proxool.trace=true

 jdbc-0.proxool.fatal-sql-exception=Fatal error

 jdbc-0.proxool.prototype-count=2

 jdbc-0.proxool.statistics-log-level=ERROR

 jdbc-0.proxool.test-before-use=true

 jdbc-0.proxool.test-after-use=true

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

   <create creator="spring" javascript="dwrTest">

    <param name="beanName" value="dwrTest" />   <!--Spring配置文件中的bean:aclManager -->

   </create>

  </allow>

 </dwr>

项目配置文件(web.xml)配置文件:

 <?xml version="1.0" encoding="UTF-8"?>

 <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance "

  xmlns="http://java.sun.com/xml/ns/javaee " xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd "

  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd "

  id="WebApp_ID" version="2.5">

  <display-name>sshdwr</display-name>

  <welcome-file-list>

   <welcome-file>index.html</welcome-file>

  </welcome-file-list>

  

  <!-- 页面不存在  -->

  <error-page>

   <error-code>404</error-code>

   <location>/pagenotfound.html</location>

  </error-page>

  <!-- 错误页面 -->

  <error-page>

   <exception-type>java.lang.Exception</exception-type>

   <location>/error.html</location>

  </error-page>

  <!-- spring配置文件读取路径-->

  <context-param>

   <param-name>contextConfigLocation</param-name>

   <param-value>/WEB-INF/applicationContext.xml</param-value>

  </context-param>

  <!--增加spring监听(载入Spring ApplicationContext )-->

  <listener>

   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

  </listener>

  <!-- 扩展spring bean的作用域有request,session,global session等-->

  <listener>

   <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>

  </listener>

  <!-- Spring 刷新Introspector防止内存泄露 -->

  <listener>

   <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>

  </listener>

  <!-- spring的session管理-->

  <filter>

   <filter-name>openSessionInViewFilter</filter-name>

   <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>

   <init-param>

    <param-name>sessionFactoryBeanName</param-name>

    <param-value>sessionFactory</param-value>

   </init-param>

   <init-param>

    <param-name>singleSession</param-name>

    <param-value>true</param-value>

   </init-param>

  </filter>

  <filter-mapping>

   <filter-name>openSessionInViewFilter</filter-name>

   <url-pattern>/*</url-pattern>

  </filter-mapping>

  <!--struts2.1.8配置-->

  <filter>

   <filter-name>struts2</filter-name>

   <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

  </filter>

  <filter-mapping>

   <filter-name>struts2</filter-name>

   <url-pattern>/*</url-pattern>

  </filter-mapping>

  <!-- proxool的web监控-->

  <servlet>

   <servlet-name>admin</servlet-name>

   <servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>

  </servlet>

  <servlet-mapping>

   <servlet-name>admin</servlet-name>

   <url-pattern>/admin</url-pattern>

  </servlet-mapping>

  <!-- DWR配置-->

  <servlet>

   <servlet-name>dwr</servlet-name>

   <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>

   <init-param>

    <param-name>debug</param-name>

    <param-value>true</param-value>

   </init-param>

   <init-param>

    <param-name>scriptCompressed</param-name>

    <param-value>false</param-value>

   </init-param>

   <load-on-startup>1</load-on-startup>

  </servlet>

  <servlet-mapping>

   <servlet-name>dwr</servlet-name>

   <url-pattern>/dwr/*</url-pattern>

  </servlet-mapping>

 </web-app>

Spring(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 " xmlns:jee="http://www.springframework.org/schema/jee "

  xmlns:tx="http://www.springframework.org/schema/tx " xmlns:context="http://www.springframework.org/schema/context "

  xsi:schemaLocation="http://www.springframework.org/schema/beans

   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

   http://www.springframework.org/schema/tx

   http://www.springframework.org/schema/tx/spring-tx-3.0.xsd

   http://www.springframework.org/schema/jee

   http://www.springframework.org/schema/jee/spring-jee-3.0.xsd

   http://www.springframework.org/schema/context

   http://www.springframework.org/schema/context/spring-context-3.0.xsd ">

  <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

   <property name="location" value="/WEB-INF/hibConfig.properties" />

  </bean>

  <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

   <property name="mappingResources">

    <list>

     <value>com/loverit/project/test/entity/Person.hbm.xml</value>

     <value>com/loverit/project/test/entity/Sex.hbm.xml</value>

    </list>

   </property>

   <property name="hibernateProperties">

    <props>

     <prop key="hibernate.dialect">${hibernate.dialect}</prop>

     <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>

     <prop key="hibernate.jdbc.batch_size">${hibernate.jdbc.batch_size}</prop>

     <prop key="hibernate.cache.use_query_cache">${hibernate.cache.use_query_cache}</prop>

     <prop key="hibernate.cache.provider_class">${hibernate.cache.provider_class}</prop>

     

     <!--

      <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>

     -->

     

     <!-- proxool连接池 -->

     <prop key="hibernate.connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</prop>

     <prop key="hibernate.proxool.properties">proxool.properties</prop>

     <prop key="hibernate.proxool.pool_alias">DBPool</prop>

    </props>

   </property>

  </bean>

  <!-- 定义事务管理 -->

  <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">

   <property name="sessionFactory"  ref="sessionFactory" />

  </bean>

  <!-- 定义事务管理拦截器 -->

  <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">

   <property name="transactionManager" ref="transactionManager" />

   <property name="transactionAttributes">

    <props>

     <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>

     <prop key="*">PROPAGATION_REQUIRED</prop>

    </props>

   </property>

  </bean>

  <!-- 定义代理自动管理事务 -->

  <bean id="ProxyCreator"  class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">

  

   <!-- 指定需要Spring管理事务的Bean -->

   <property name="beanNames">

    <list>

     <value>testService</value>

    </list>

   </property>

   <!-- 调用事务管理拦截器 -->

   <property name="interceptorNames">

    <list>

     <value>transactionInterceptor</value>

    </list>

   </property>

  </bean>

  

  <!-- 测试类(本例未用到) -->

  <bean id="dao" class="com.loverit.framework.dao.DaoImpl">

   <property name="sessionFactory" ref="sessionFactory" />

  </bean>

  <bean id="testService" class="com.loverit.project.test.service.TestService">

   <property name="dao" ref="dao" />

  </bean>

  <bean id="testAction" class="com.loverit.project.test.action.TestAction"  scope="prototype">

   <property name="testService" ref="testService" />

  </bean>

  <!-- DWR测试类 -->

  <bean id="dwrTest" class="com.loverit.project.test.action.DwrTest" >

  </bean>

 </beans>

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

  <include file="struts-default.xml" />

  <package name="mytest" extends="struts-default,json-default">

   <action name="tt" class="testAction">

    <result name="query" type="dispatcher">/default.jsp</result>

    <result name="reload"  type="redirect">/tt.action</result>

   </action>

  </package>

  

 </struts>

struts(struts.properties)文本配置文件:

 #是否为struts的开发模式

 struts.devMode=false

 #用URL扩展名来确定是否这个请求是被用作Struts action,其实也就是设置 action的后缀,例如login.do的'do'字。

 struts.action.extension=action

 ##指定Struts 2默认的ObjectFactory Bean,该属性默认值是spring

 struts.objectFactory = spring

 ##指定Spring框架的自动装配模式,该属性的默认值是name,即默认根据Bean的name属性自动装配

 struts.objectFactory.spring.autoWire = name

 ##该属性指定整合Spring框架时,是否缓存Bean实例,该属性只允许使用true和false两个属性值,它的默认值是true。通常不建议修改该属性值。

 struts.objectFactory.spring.useClassCache = true

 #是否加载xml配置(true,false)

 struts.configuration.xml.reload=true

 #国际化信息内码

 struts.i18n.encoding = utf-8

 #是否可以用替代的语法替代tags

 struts.tag.altSyntax=true

 # 不让标签自动生成html代码(没有用的,不可控的)

 struts.ui.theme = simple

log4j(log4j.properties)配置文件:

log4j.rootLogger=INFO, console, logfile

log4j.appender.console=org.apache.log4j.ConsoleAppender

log4j.appender.console.layout=org.apache.log4j.PatternLayout

log4j.appender.console.layout.ConversionPattern=%d %p [%c] - <%m>%n

log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender

log4j.appender.logfile.File=iCenter.log

log4j.appender.logfile.DatePattern='.'yyyy-MM-dd

#log4j.appender.logfile.MaxFileSize=200M

#log4j.appender.logfile.MaxBackupIndex=3

log4j.appender.logfile.layout=org.apache.log4j.PatternLayout

log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

Hibernate(hibConfig.properties)配置文件(此配置参数可以直接在applicationContext.xml中配置,根据个人习惯此处本人单独配置):     

 hibernate.dialect=org.hibernate.dialect.SQLServerDialect

 hibernate.show_sql=true

 hibernate.jdbc.batch_size=20

 hibernate.cache.use_query_cache=true

 hibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider

 hibernate.hbm2ddl.auto=update

Hibernate (ehcache.xml)缓存配置:

<?xml version="1.0" encoding="UTF-8"?>

<ehcache>

 <!--  设置cache.data文件存放位置   -->

 <diskStore path="D://cache" />

 <!-- eternal 表示缓存是不是永远不超时 -->

 <!--

  timeToLiveSeconds是缓存中每个元素(这里也就是一个POJO)的超时时间

  ,如果eternal="false",超过指定的时间,这个元素就被移走了。

 -->

 <!--

  timeToIdleSeconds是发呆时间,是可选的。当往缓存里面put的元素超过500个时,如果overflowToDisk="true",就会把缓存中的部分数据保存在硬盘上的临时文件里面。

 -->

 <defaultCache maxElementsInMemory="3" eternal="false"

  overflowToDisk="true" timeToIdleSeconds="120" timeToLiveSeconds="120"

  diskPersistent="false" diskExpiryThreadIntervalSeconds="120" />

</ehcache>

DWR(DwrTest.java)测试类:

 public class DwrTest

 { 

  public String test (String str)

  {

   System.out.println ("测试DWR!") ;

   return "测试DWR:"+ str;

  } 

 }

JSP测试文件(default.jsp):

 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd ">

 <html>

 <head>

 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

 <title>测试DWR</title>

 <script type='text/javascript' src='${pageContext.request.contextPath }/dwr/interface/dwrTest.js'></script>

 <script type='text/javascript' src='${pageContext.request.contextPath }/dwr/engine.js'></script>

 <script type='text/javascript' src='${pageContext.request.contextPath }/dwr/util.js'></script>

 </head>

 <body>

 <a href="javascript:onTest();">测试DWR!</a>

 </body>

 <script type="text/javascript">

  function onTest()

  {

   dwrTest.test("测试数据!", function(data)

   {

    alert(data);

   });

  }

 </script>

 </html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息