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

 

<!-- 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 頭 文件

 

<?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 http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">


 

配置 數據庫c3p0連接池

<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內配置

 <!-- 設置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> 標籤導入

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

# 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


 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章