




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Spring+Struts+Hibernate比較詳細(xì)的整合配置方案1. 準(zhǔn)備工具:MyEclipse 6.0.1 GA、MySql GUI Tools 5.0(便于管理MySql數(shù)據(jù)庫,不是必須)環(huán)境:Tomcat 5.5、MySql 5.01.1. 新建工程操作:Menu File/New/Web Project工程名:login2. Struts 部分2.1. 添加 Struts 功能支持操作:Menu MyEclipse/Project Capabilities/Add Struts Capabilities2.2. 創(chuàng)建 ActionForm 類操作:Ctrl+N MyEclipse
2、/Web-Struts/Struts 1.2 Form類名:LoginForm在 “Form Properties” 選項(xiàng)卡為 loginForm 新增兩個(gè)屬性:username、password;在 “JSP” 選項(xiàng)卡鉤選 “Create JSP form” 選項(xiàng),將新建路徑改為 “/login.jsp”(login.jsp文件將被自動(dòng)創(chuàng)建)。2.3. 創(chuàng)建 Action 類操作:Ctrl+N MyEclipse/Web-Struts/Struts 1.2 Action類名:LoginAction在 “Form” 選項(xiàng)卡的 “Name” 項(xiàng)選擇 “l(fā)oginForm”,”Input Sour
3、ce” 項(xiàng)輸入 “/login.jsp”。2.4. 創(chuàng)建 index.jsp 文件如果沒有,創(chuàng)建 index.jsp 文件,并添加一個(gè)指向 login.jsp 的鏈接:<a href=”login.jsp”>Login</a>。2.5. 創(chuàng)建Forword類操作:Ctrl+N MyEclipse/Web-Struts/Struts 1.2 Forword類名:indexForword“Name” 項(xiàng)輸入 “indexForword” ,”Path” 項(xiàng)輸入 “/index.jsp” 。2.6. 修改 LoginAction.java 文件修改 LoginAction 類
4、的 execute 方法:public class LoginAction extends Action public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) LoginForm loginForm = (LoginForm) form;String username=loginForm.getUsername();String password=loginForm.getPassword();if
5、(username.equals(”test”)|password.equals(”test”)return mapping.findForward(”indexForword”);elsereturn mapping.getInputForward();2.7. 修改 login.jsp 文件修改 <html:form> 標(biāo)簽:<html:form action=”/login”>。2.8. 測試操作:Menu Run/Run,選擇 MyEclipse Server Application 方式運(yùn)行(要正常執(zhí)行Run操作,需先安裝 Tomcat5.5 。)點(diǎn)擊 ind
6、ex.jsp 頁面的 “Login” 鏈接,跳轉(zhuǎn)到 login.jsp 頁面。在 login.jsp 頁面輸入 “test/test”,應(yīng)該會(huì)登錄成功,然后跳轉(zhuǎn)到 index.jsp 頁面;輸入 “test/123 ,應(yīng)該保持在 login.jsp 頁面。如果測試成功,證明 Structs 運(yùn)行正常。3. Spring 部分3.1. 添加 Spring 功能支持操作:Menu MyEclipse/Project Capabilities/Add Spring CapabilitiesSpring 版本( Spring version )選擇 “Spring 1;開發(fā)包(libraries)選擇
7、 “Spring 1.2 AOP Libraries、Spring 1.2 Core Libraries、Spring 1.2 Persistence Core Libraries、Spring 1.2 Persistence JDBC Libraries” 四項(xiàng);JAR Library Installation 選擇 “copy checked” ,”Library Folder” 項(xiàng)選擇 “/WebRoot/WEB-INF/lib”(這樣的話所需的類庫都將拷貝到項(xiàng)目目錄,方便以后的布署)。點(diǎn)擊 “下一步(Next)” 創(chuàng)建配置文件,修改文件路徑(Folder)到 “WebRoot/WEB-
8、INF” 目錄(以便和Struts配置文件一起管理),文件名稱為默認(rèn)的”applicationContext.xml”。點(diǎn)擊 “完成(Finish)” 。3.2. 配置 struts-config.xml 文件添加 Spring 插件(在 <message-resources> 標(biāo)簽后面添加):<plug-in className=”org.springframework.web.struts.ContextLoaderPlugIn”><set-property property=”contextConfigLocation” value=”/WEB-INF/ap
9、plicationContext.xml” /></plug-in>修改 LoginAction 的配置(只需修改 type 屬性):<action-mappings ><actionattribute=”loginForm”input=”/login.jsp”name=”loginForm”path=”/login”scope=”request”type=” /></action-mappings>綠色字體部份為被修改過的內(nèi)容,這里將使用 spring 的代理器 DelegatingActionProxy 來對(duì) Action 進(jìn)行控制。3
10、.3. 修改 Spring 配置文件 applicationContext.xml<?xml version=”1.0 encoding=”UTF-8?><!DOCTYPE beans PUBLIC “-/SPRING/DTD BEAN/EN” “/dtd/spring-beans.dtd”><beans><bean name=”/login” class=”com.login.struts.action.LoginAction” singleton=”false”></bean&g
11、t;</beans>綠色字體是關(guān)于接受和處理 Action 控制權(quán)的配置內(nèi)容,”com.login.struts.action.LoginAction” 即為原 struts 里的配置。之后,檢查lib之下是否有 spring.jar ,沒有請(qǐng)從MyEclipse的安裝目錄下找到并復(fù)制過來。若還有問題可選:還有就是一定要在struts配置文件中加: <controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"/& gt;。這樣你的acti
12、on才能真的委托給spring。3.4. 測試同上一次測試。測試成功證明 Spring 運(yùn)行正常。4. Hibernate 部分下面開始 Hibernate 部分,將原例修改為使用數(shù)據(jù)庫進(jìn)行用戶名/密碼驗(yàn)證。4.1. 創(chuàng)建 mysql 數(shù)據(jù)庫和表添加表的代碼如下:CREATE TABLE user_table(ID int NOT NULL auto_increment,USERNAME varchar(45) NOT NULL default ”,PASSWORD varchar(45) NOT NULL default ”,PRIMARY KEY (ID)再添加一條記錄:insert in
13、to user_table (USERNAME,PASSWORD) values (test,'test)4.2. 創(chuàng)建 MyEclipse 數(shù)據(jù)庫驅(qū)動(dòng)(DB Driver)操作:Menu MyEclipse/Prefrences/MyEclipse/Database Explorer/Database Driver/DB Brower在 DB Brower 的菜單中選擇 “New” ,”Driver Name” 項(xiàng)輸入 “l(fā)ogin-conn” ,”Connection URL” 項(xiàng)輸入 “jdbc:mysql:/localhost:3306/test” ,然后輸入正確的用戶名(Us
14、er Name)和密碼(Password)按實(shí)際情況輸入;在 “Driver JARs” 項(xiàng)添加 “mysql-connector-java-bin.jar” (可從網(wǎng)上下載),在 “Driver classname” 里選擇 “com.mysql.jdbc.Driver” ,其它自選。點(diǎn)擊 “完成(Finish)”。4.3. 添加 Hibernate 功能支持操作:Menu MyEclipse/Project Capabilities/Add Hibernate CapabilitiesHibernate 版本(Hibernate Specification)選擇 “Hibernate 3.
15、1 ,開發(fā)包(libraries)選擇 Hibernate 3.1 Core Libraries 一項(xiàng);JAR Library Installation 選擇 “copy checked” ,”Library Folder” 選擇 “/WebRoot/WEB-INF/lib” 。點(diǎn)擊 “下一步(Next)” 設(shè)置配置文件,選擇 “Spring configuration file (applicationContext.xml)” ?!跋乱徊?Next)” 設(shè)置 Spring-Hibernate,選擇 “Existing Spring configuration file” ,”Session
16、Factory ID” 項(xiàng)輸入 “sessionFactory” ?!跋乱徊?Next)” 創(chuàng)建數(shù)據(jù)源對(duì)象,在 Bean Id 中輸入 dataSource,”DataSource” 項(xiàng)選擇 “Use JDBC Dirver” ,DB Driver 項(xiàng)選擇 “l(fā)ogin-conn” ,其余項(xiàng)會(huì)自動(dòng)填充;記得選中 “Copy DB driver jar(s) to project and add to buidpath” 項(xiàng),以便將數(shù)據(jù)連接的庫文件復(fù)制到項(xiàng)目,方便以后的布署?!跋乱徊?Next)” 創(chuàng)建 SessionFactory 類,”Java package” 項(xiàng)設(shè)置為 “com.logi
17、n.Hibernate” (沒有則點(diǎn)擊”New”按鈕添加),”Class name” 項(xiàng)修改為”SessionFactory” ,Java Compliance Level選擇和創(chuàng)建項(xiàng)目時(shí)選擇的Java版本。(本例中并沒有用到SessionFactory類,留作今后擴(kuò)展)點(diǎn)擊 “完成(Finish)”。4.4. 創(chuàng)建對(duì)象關(guān)系映射(ORM)的相關(guān)文件操作:Menu Window/Open Perspective/MyEclipse Database Explorer選中 user_table 表,點(diǎn)擊右鍵,在出現(xiàn)的菜單中選擇 “Hibernate Reverse Engnieering” 。在彈
18、出的窗口中保持 “Java package” 項(xiàng)為 “com.login” ;選中 “Hibernate mapping file (*.hbm.xml) for each databases table” ,并保持 “Update hibernate” 項(xiàng)選中;選中 “Java Data Object” 項(xiàng),并保持 “Create abstract class” 選中;“Base persistent class” 項(xiàng)留空;取消 “Java Data Access Object” 項(xiàng)和 “Use custom templates” 項(xiàng)。點(diǎn)擊 “下一步(Next)” ,再點(diǎn)擊 “下一步(Nex
19、t)” ,在 “Configure reverse engineering details” 頁選中 “user_table” 表,在右邊出現(xiàn)的 “Class Name” 項(xiàng)中輸入 “com.login.User”,其它不變。點(diǎn)擊 “完成(Finish)”。完成此操作,會(huì)在 “com.login” 包下創(chuàng)建三個(gè)文件:AbstractUser.java、User.java、User.hbm.xml。4.5. 創(chuàng)建 UserDAO.java 接口和 UserDAOImpl.java 類UserDAO 和 UserDAOImpl 通過 Hibernate 訪問數(shù)據(jù)庫。UseDAO.java 內(nèi)容如下
20、:package com.login;public interface UserDAO public abstract boolean isValidUser(String username, String password);UserDAOImpl.java 內(nèi)容如下:package com.login;import java.util.List;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;public class UserDAOImpl extends HibernateDaoSupport i
21、mplements UserDAO private static String hql = “from User u where u.username=? “;public boolean isValidUser(String username, String password) / 驗(yàn)證用戶List userList = this.getHibernateTemplate().find(hql, username);if (userList.size() > 0) return true;return false;4.6. 修改 LoginAction.java 文件使用 UseDAO
22、 對(duì)象來驗(yàn)證:package com.login.struts.action;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapp
23、ing;import com.login.struts.form.LoginForm;import com.login.UserDAO;public class LoginAction extends Action private UserDAO userDAO;public UserDAO getUserDAO() return userDAO;public void setUserDAO(UserDAO userDAO) this.userDAO = userDAO;public ActionForward execute(ActionMapping mapping, ActionForm
24、 form,HttpServletRequest request, HttpServletResponse response) LoginForm loginForm = (LoginForm) form;String username=loginForm.getUsername();String password=loginForm.getPassword();if( userDAO.isValidUser( username, password ) )return mapping.findForward( “indexForword” );elsereturn mapping.getInp
25、utForward();綠色字體為修改部分。4.7. Spring 的最終配制文件 applicationContext.xml<?xml version=”1.0 encoding=”UTF-8?><!DOCTYPE beans PUBLIC “-/SPRING/DTD BEAN/EN” “/dtd/spring-beans.dtd”><beans><bean id=”dataSource”class=”mons.dbcp.BasicDataSource”><property na
26、me=”driverClassName” value=”com.mysql.jdbc.Driver”></property><property name=”url” value=”jdbc:mysql:/localhost:3306/test”></property><property name=”username” value=”root”></property><property name=”password” value=”root”></property></bean><! 配置
27、sessionFactory, 注意這里引入的包的不同 ><bean id=”sessionFactory” class=”org.springframework.orm.hibernate3.LocalSessionFactoryBean”><property name=”dataSource”><ref local=”dataSource” /></property><property name=”mappingResources”><list><value>com/login/User.hbm.xm
28、l</value></list></property><property name=”hibernateProperties”><props><prop key=”hibernate.dialect”>org.hibernate.dialect.MySQLDialect</prop><prop key=”hibernate.show_sql”>true</prop></props></property></bean><bean id=”transactionManager” class=”org.springframework.orm.hibernate3.HibernateTransactionManager”><property name=”sessionFactory”><ref local=”sessionFactory” /></property><
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 液力耦合器密封性能研究考核試卷
- 顯微鏡的顯微鏡調(diào)焦系統(tǒng)考核試卷
- 新興市場家電行業(yè)政策影響下的市場準(zhǔn)入分析考核試卷
- 職工心靈驛站實(shí)施方案
- 集安輔警考試題庫2024
- 基因工程在非細(xì)胞治療中的應(yīng)用
- 榜單pk活動(dòng)方案
- 漢字教研活動(dòng)方案
- 池塘改造活動(dòng)方案
- 2025至2030中國礦用卡車行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報(bào)告
- 氟骨癥課件教學(xué)課件
- 腳手架知識(shí)試題集及答案
- 宣城宣州區(qū)“政聘企培”人才引進(jìn)筆試真題2024
- 診后疾病管理行業(yè)體系構(gòu)建
- 成都東方廣益投資有限公司下屬企業(yè)招聘筆試真題2024
- 中國鄉(xiāng)村建設(shè)運(yùn)動(dòng)課件
- 2025至2030年中國高純氮化硅行業(yè)市場全景評(píng)估及發(fā)展策略分析報(bào)告
- 2024年四川省高校畢業(yè)生“三支一扶”計(jì)劃真題
- 2025年農(nóng)作物種植與管理專業(yè)考試試題及答案
- JG/T 302-2011卷簾門窗
評(píng)論
0/150
提交評(píng)論