搭建SSH框架顺序和注意事项

环境为 myeclipse8.6  数据库 mysql5.0  Jdk 1.6 WindowsXp  TomCat 6.0

首先创建一个 New  =>  Web Project  起名 demo

 

然后在项目名称上 点击鼠标右键 选择 MyEclipse => Add Speing Capabilites...

 

接下来 就是选择需要加载 Spring 的版本 我在这里选择 3.0

 选择需要加载的库文件 Spring 3.0 Aop Libraries,core Libraries,Persistence Core Lisbraries,

还有一个  Web Libraries

后面基本上没啥了 直接 Finish 吧。

 

然后接着添加 hibernate

还是项目名称上 点击鼠标右键 选择 MyEclipse => Add Hibernate  Capabilites...

 

在这里我选择的hibernate版本是3.2

库文件分别是 Annotations & Entity Manager  和 Core Libraries

选择 Copy checked library Jars to project folder and add to build-path 将库文件复制到 /WebRoot /Web-INF/lib 目录下

接下来 选择 Next 进入下一配置页面 选择 Spring configuration file(applicationContext.xml) 让Spring 托管 hibernate的配置文件

选择 Existing Spring Configuration file

接下来配置数据库连接参数 jdbc

MYSql 配置如下:

Connect  URL:jdbc:mysql://localhost:3306/system

Driver Class:com.mysql.jdbc.Driver

Username:root

password:root

Dialect:MySQL

接下来 将 Create SessionFactory class 选项 取消,最后 Finish

 

最后我们来添加Struts2

还是项目名称上 点击鼠标右键 选择 MyEclipse => Add Struts Capabilites...

我们选择 struts的版本为 2.1 过滤器名称 默认为 struts2  拦截 URL pattern 选择 /* 对所有链接都进行过滤监测

 

接下来选择 加载库文件 在这里我选了 Core Libraries,DOJO Libraries,Spring Libraries(这是Struts 支持Spring 的库文件)

最后 选择 FINISH.

结束添加SSH框架的第一部;

接下来我们要配置  Web.xml 文件 添加 spring 的监听器 WebRoot/WEB-INf/web.xml

 

  1. <!-- Struts2  -->  
  2.     <filter>  
  3.         <filter-name>struts2</filter-name>  
  4.         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>  
  5.     </filter>  
  6.     <filter-mapping>  
  7.         <filter-name>struts2</filter-name>  
  8.         <url-pattern>*.action</url-pattern>  
  9.     </filter-mapping>  
  10.   
  11.     <filter-mapping>  
  12.         <filter-name>struts2</filter-name>  
  13.         <url-pattern>*.jsp</url-pattern>  
  14.     </filter-mapping>  
  15.   
  16.     <listener>  
  17.         <listener-class>  
  18.         org.springframework.web.context.ContextLoaderListener  
  19.         </listener-class>  
  20.     </listener>  
  21.     <!-- 设置spring监听 -->  
  22.     <context-param>  
  23.         <param-name>contextConfigLocation</param-name>  
  24.         <param-value>classpath:applicationContext.xml</param-value>  
  25.     </context-param>  
  26.   
  27.     <!-- 通用返回页面 -->  
  28.     <error-page>  
  29.         <error-code>404</error-code>  
  30.         <location>/page/comm/404Error.jsp</location>  
  31.     </error-page>  
  32.     <error-page>  
  33.         <error-code>500</error-code>  
  34.         <location>/page/comm/500Error.jsp</location>  
  35.     </error-page>  
<!-- Struts2  -->
	<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>*.action</url-pattern>
	</filter-mapping>

	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>*.jsp</url-pattern>
	</filter-mapping>

	<listener>
		<listener-class>
		org.springframework.web.context.ContextLoaderListener
		</listener-class>
 	</listener>
	<!-- 设置spring监听 -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:applicationContext.xml</param-value>
	</context-param>

	<!-- 通用返回页面 -->
	<error-page>
		<error-code>404</error-code>
		<location>/page/comm/404Error.jsp</location>
	</error-page>
	<error-page>
		<error-code>500</error-code>
		<location>/page/comm/500Error.jsp</location>
	</error-page>


配置 applicationContext.xml 的 aop 头 文件

 

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"  
  4.     xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"  
  5.     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/aop <A href="http://www.springframework.org/schema/aop/spring-aop-3.0.xsd'>target=_blank>http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">  
  6. </A>  
<?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:p="http://www.springframework.org/schema/p"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	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/aop <a target=_blank href="http://www.springframework.org/schema/aop/spring-aop-3.0.xsd'%3E" target="_blank">http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
</a>


 

配置 数据库c3p0连接池

  1. <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"  
  2.         destroy-method="close">  
  3.         <property name="driverClass" value="com.mysql.jdbc.Driver" />  
  4.         <!-- 1.需要更改数据库ip、端口、数据库名称 -->  
  5.         <property name="jdbcUrl"  
  6.             value="jdbc:mysql://127.0.0.1:3306/system_showapp?useUnicode=true&characterEncoding=utf-8" />  
  7.          <!-- 2.数据库用户名 -->  
  8.         <property name="user" value="root" />  
  9.         <!-- 3.数据库密码 -->  
  10.         <property name="password" value="rootroot" />  
  11.         <!--连接池中保留的最小连接数。Default: 3 -->  
  12.         <property name="minPoolSize" value="5" />  
  13.         <!--连接池中保留的最大连接数。Default: 15 -->  
  14.         <property name="maxPoolSize" value="20" />  
  15.         <!--初始化时获取三个连接,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->  
  16.         <property name="initialPoolSize" value="10" />  
  17.         <!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->  
  18.         <property name="maxIdleTime" value="20" />  
  19.         <!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->  
  20.         <property name="acquireIncrement" value="3" />  
  21.         <!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 -->  
  22.         <property name="acquireRetryAttempts" value="30" />  
  23.         <!--两次连接中间隔时间,单位毫秒。Default: 1000 -->  
  24.         <property name="acquireRetryDelay" value="1000"></property>  
  25.         <!--连接关闭时默认将所有未提交的操作回滚。Default: false -->  
  26.         <property name="autoCommitOnClose" value="false"></property>  
  27.         <!--  
  28.             JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements属于单个connection而不是整个          连接池。所以设置这个参数需要考虑到多方面的因素。  
  29.             如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default: 0  
  30.         -->  
  31.         <property name="maxStatements" value="0" />  
  32.         <!--每60秒检查所有连接池中的空闲连接-->  
  33.         <property name="idleConnectionTestPeriod" value="60" />  
  34.         <!-- 
  35.             maxStatementsPerConnection定义了连接池内单个连接所拥有的最大缓存statements数。Default: 0 
  36.         -->  
  37.         <property name="maxStatementsPerConnection" value="0"></property>  
  38.         <!--  
  39.             因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的时候都将校验其有效性。建议使用                 idleConnectionTestPeriod或automaticTestTable  
  40.             等方法来提升连接测试的性能。Default: false  
  41.         -->  
  42.         <property name="testConnectionOnCheckout" value="false"></property>  
  43.         <!--如果设为true那么在取得连接的同时将校验连接的有效性。Default: false -->  
  44.         <property name="testConnectionOnCheckin" value="true"></property>  
  45.     </bean>  
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
		destroy-method="close">
		<property name="driverClass" value="com.mysql.jdbc.Driver" />
		<!-- 1.需要更改数据库ip、端口、数据库名称 -->
		<property name="jdbcUrl"
			value="jdbc:mysql://127.0.0.1:3306/system_showapp?useUnicode=true&characterEncoding=utf-8" />
		 <!-- 2.数据库用户名 -->
		<property name="user" value="root" />
		<!-- 3.数据库密码 -->
		<property name="password" value="rootroot" />
		<!--连接池中保留的最小连接数。Default: 3 -->
		<property name="minPoolSize" value="5" />
		<!--连接池中保留的最大连接数。Default: 15 -->
		<property name="maxPoolSize" value="20" />
		<!--初始化时获取三个连接,取值应在minPoolSize与maxPoolSize之间。Default: 3 -->
		<property name="initialPoolSize" value="10" />
		<!--最大空闲时间,60秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 -->
		<property name="maxIdleTime" value="20" />
		<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
		<property name="acquireIncrement" value="3" />
		<!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 -->
		<property name="acquireRetryAttempts" value="30" />
		<!--两次连接中间隔时间,单位毫秒。Default: 1000 -->
		<property name="acquireRetryDelay" value="1000"></property>
		<!--连接关闭时默认将所有未提交的操作回滚。Default: false -->
		<property name="autoCommitOnClose" value="false"></property>
		<!--
			JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量。但由于预缓存的statements属于单个connection而不是整个			连接池。所以设置这个参数需要考虑到多方面的因素。
			如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭。Default: 0
		-->
		<property name="maxStatements" value="0" />
		<!--每60秒检查所有连接池中的空闲连接-->
		<property name="idleConnectionTestPeriod" value="60" />
		<!--
			maxStatementsPerConnection定义了连接池内单个连接所拥有的最大缓存statements数。Default: 0
		-->
		<property name="maxStatementsPerConnection" value="0"></property>
		<!--
			因性能消耗大请只在需要的时候使用它。如果设为true那么在每个connection提交的时候都将校验其有效性。建议使用					idleConnectionTestPeriod或automaticTestTable
			等方法来提升连接测试的性能。Default: false
		-->
		<property name="testConnectionOnCheckout" value="false"></property>
		<!--如果设为true那么在取得连接的同时将校验连接的有效性。Default: false -->
		<property name="testConnectionOnCheckin" value="true"></property>
	</bean>

 

如果有多个 applicationContext.xml文件可以在web.xml内配置

  1. <!-- 设置spring监听 -->  
  2.  <context-param>  
  3.    <param-name>contextConfigLocation</param-name>  
  4.    <param-value>classpath*:applicationContext*.xml</param-value>  
  5.  </context-param>  
 <!-- 设置spring监听 -->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath*:applicationContext*.xml</param-value>
  </context-param>



接着配置 struts.xml 可以多配置文件 通过 <include file="struts-1.xml"></include> 标签导入

  1. <constant name="struts.i18n.encoding" value="UTF-8" />  
  2. <include file="struts-1.xml"></include>  
  3. <include file="struts-2.xml"></include>  
  4. <include file="struts-3.xml"></include>  
	<constant name="struts.i18n.encoding" value="UTF-8" />
	<include file="struts-1.xml"></include>
	<include file="struts-2.xml"></include>
	<include file="struts-3.xml"></include>
  1. <package name="System" extends="struts-default" namespace="/">  
  2. </package>  
  3. <!--   
  4.     通用拦截器 请在package 内设置继承 extends="mystruts" 每个action内添加  
  5.         -拦截器- 就可以进行不登陆拦截  
  6.         <interceptor-ref name="mystack"></interceptor-ref>  
  7. -->  
  8.     <package name="mystruts" extends="struts-default" namespace="/">  
  9. <!-- 拦截器设置 -->   
  10.     <interceptors>  
  11. <!-- 定义的权限拦截器 -->  
  12.         <interceptor name="myauth" class="com.dw.util.AuthorizationInterceptor"></interceptor>  
  13. <!-- 定义拦截器栈 -->  
  14.         <interceptor-stack name="mystack">  
  15.             <interceptor-ref name="defaultStack"></interceptor-ref>  
  16.             <interceptor-ref name="myauth"></interceptor-ref>  
  17.         </interceptor-stack>  
  18.     </interceptors>  
  19. <!-- 通用返回 -->  
  20.     <global-results>  
  21.         <result name="input" type="redirect">/index.jsp</result>  
  22.     </global-results>  
  23. </package>  
	<package name="System" extends="struts-default" namespace="/">
	</package>
	<!-- 
		通用拦截器 请在package 内设置继承 extends="mystruts" 每个action内添加
		 	-拦截器- 就可以进行不登陆拦截
			<interceptor-ref name="mystack"></interceptor-ref>
	-->
		<package name="mystruts" extends="struts-default" namespace="/">
	<!-- 拦截器设置 --> 
		<interceptors>
	<!-- 定义的权限拦截器 -->
			<interceptor name="myauth" class="com.dw.util.AuthorizationInterceptor"></interceptor>
	<!-- 定义拦截器栈 -->
			<interceptor-stack name="mystack">
				<interceptor-ref name="defaultStack"></interceptor-ref>
				<interceptor-ref name="myauth"></interceptor-ref>
			</interceptor-stack>
		</interceptors>
	<!-- 通用返回 -->
		<global-results>
			<result name="input" type="redirect">/index.jsp</result>
		</global-results>
	</package>



添加 log4j.properties

  1. # For JBoss: Avoid to setup Log4J outside $JBOSS_HOME/server/default/deploy/log4j.xml!  
  2. # For all other servers: Comment out the Log4J listener in web.xml to activate Log4J.  
  3. log4j.rootLogger=INFO, stdout, logfile  
  4. log4j.appender.syslog.encoding=GBK  
  5. log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
  6. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
  7. log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n  
  8.   
  9. log4j.appender.logfile=org.apache.log4j.RollingFileAppender  
  10. #log4j.appender.logfile.File=${petstore.root}/WEB-INF/petstore.log  
  11. log4j.appender.logfile.File=D\:\\log4j.log  
  12. log4j.appender.logfile.MaxFileSize=512KB  
  13. # Keep three backup files.  
  14. log4j.appender.logfile.MaxBackupIndex=3  
  15. # Pattern to output: date priority [category] - message  
  16. log4j.appender.logfile.layout=org.apache.log4j.PatternLayout  
  17. log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n  
# For JBoss: Avoid to setup Log4J outside $JBOSS_HOME/server/default/deploy/log4j.xml!
# For all other servers: Comment out the Log4J listener in web.xml to activate Log4J.
log4j.rootLogger=INFO, stdout, logfile
log4j.appender.syslog.encoding=GBK
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.appender.logfile=org.apache.log4j.RollingFileAppender
#log4j.appender.logfile.File=${petstore.root}/WEB-INF/petstore.log
log4j.appender.logfile.File=D\:\\log4j.log
log4j.appender.logfile.MaxFileSize=512KB
# Keep three backup files.
log4j.appender.logfile.MaxBackupIndex=3
# Pattern to output: date priority [category] - message
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n


 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值