




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、MyEclipse 開發 SSH (Struts+Spring + Hibernate)范例雖然版本有點低,還是有點作用的1.準備工具:MyEclipse 5.1.0 GA、Tomcat 5.5環境:Struts1.1、Spring1.2、Hibernate3.1、sqlserver20001.1.新建工程本范例使用最簡單的登錄模塊來實踐SSH的開發,旨在體會和入門SSH技術的整合操作:Menu File/New/Web Project工程名:loginStruts 部分構津路鐸fR ik源代碼匿)Alt+Shift+S Add :dTLd Ramove Fr :j e c t Ileploj
2、irieritE.重構(I)Add W eb Servi c e C ap ab i1i t i e s.q 導入(X).Add Tapaetry C ap ab i1i t i e e .n AliTiIAdd Struts Capabi1i ti ee. . .I|Jj I.U ,f .Add Spring Capabilities.念刷新(Z)F5Add JSF Capabilities.*關閉項目(S.)Add JSTL Libraries.關閉不相關的項目(U)Add Hibarnate C:ip:b i 1 i t i e e .運行方式遂)Run XU o cle t調試方式Q)
3、*撞要分析方式(F)Up en in Explor er小蛆(1)Rijltl Vial i dat i on比較對象(A)Exelude From Vaii dati on從本地歷史記錄復原(D.M:nage V:dli dati un.MyE clipse*Rem ova All V:il i dat i on Marker,FDE 工具(0)-TS二 u.5 s 修改 web.xml/WEB-INF/struts-html/WEB-INF/struts-html.tld分別創建index.jsp、login.jsp、success.jsp先不對jsp頁面做任何修改創建 ActionFor
4、m 類操作:Ctrl+N MyEclipse/Web-Struts/Struts 1.1 Form類名:LoginForm在Form Properties選項卡為 loginForm 新增兩個屬性:username、password;創建 Action 類類名:LoginAction在Form選項卡的Name項選擇loginForm, Input Source項輸入/login.jsp。 在Forwards中創建兩個forward對象success登錄成功,跳轉到success.jsp fail登錄失敗,跳轉到login.jsp重新登錄此時struts-config.xml代碼如下2.4.修改
5、jsp文件index.jsp 代碼Name:Password:login.jsp代碼(其它代碼相同)Name:Password:success.jsp 代碼welcome!2.5.修改資源文件ApplicationRperties 文件如下Resources for parameter ApplicationResourcesProject loginerrors.header= Validation Error errors.footer= .required= 0 is not a correct name, please input name againerror.password.re
6、quired= 0 is not a correct password, please input password againOrPassword.required= name or password not correct修改 LoginAction.java 文件修改 LoginAction 類的 execute 方法:public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) LoginForm
7、 loginForm = (LoginForm) form;/ TODO Auto-generated method stubString username= loginForm.getUsername();String password= loginForm.getPassword();ActionErrors errors= new ActionErrors();if(aaron.equals(username)&123.equals(password) return mapping.findForward(success);else errors.add(name, new Action
8、Error(.required, username);errors.add(password, new ActionError(error.password.required, password);saveErrors(request, errors);return mapping.findForward(fail);Action的流程是:如果用戶名密碼分別為aaron和123則跳轉到登錄成功頁面success.jsp顯示 welcom!,否則,簡單的標記為用戶名和密碼錯誤,并跳轉到login.jsp頁面,顯示錯誤信息并重新登 錄測試操作:Menu Run/Run (用 MyEclipse S
9、erver Application 方式運行)在index.jsp頁面輸入aaron/123,登錄成功;輸入aaron/1111,跳轉到login.jsp頁面。如果測試成功,證明Structs運行正常。Spring 部分3.1.添加Spring功能支持操作:Menu MyEclipse/Project Capabilities/Add Spring Capabilities重構Add :arid Remove Project DeplojirientE.辿1導入(!).2導出如.念刷新(I)F5關閉項目麒關閉不相關的項目QJ)Add Web Servi:e Capabilities.Add T
10、 ap e e try Capabilities.Add TSF Capabilities.Add JSTL Libraries.Add Hiternate Capabilities.運行方式(h)調試方式但)*撈要分析方式(1)小蛆虐)比較對象(A)*從本地舊史記錄復原也).FDE 工具(10)Rutl XD g cl e tOpen in Explor erRijtli dat i onExclude From Vaii dati onM:TLaEe V:li dati on.1 _開發包(libraries)選擇Spring 1.2 AOP Libraries、Spring 1.2 Co
11、re Libraries兩項;JAR Library Installation 選擇copy checked. , Library Folder項選擇/WebRoot/WEB-INF/lib(這樣的話所需的類庫都將拷貝到項目目錄,方便以后的布署)。點擊”下一步(Next)”創建配置文件,修改文件路徑(Folder)src”目錄,文件名稱為默認的applicationContext.xml。選擇完成,選擇 Keep Existing, 成功導入 Spring功能注意:查看構建路徑中有沒有spring.jar包,很多情況下MyEclipse都沒有導入這個包,如果沒有則導入相同版本的spring.j
12、ar包導入 spring.jar 包(1.2.9)3.2.配置 struts-config.xml 文件添加 Spring 插件(在 標簽后面添加): 粗體字部份為修改的內容,這里將使用spring的代理器DelegatingActionProxy來對Action進 行控制。注:如果applicationContext.xml部署在src目錄下,則對應發布后的目錄為/WEB-INF/classes下 與系統屬性文件ApplicationResources不同,雖然文件發布后的路徑也為/WEB-INF/classes 但是卻可以如下配置修改 Spring 配置文件 applicationCont
13、ext.xml粗體字是關于接受和處理Action控制權的配置內容,com.login.struts.action.LoginAction即 為原struts里的配置。增加log4j日志功能增加日志功能方便調試程序,perties文件如下log4j.rootLogger=INFO, A1, Rlog4j.appender.A1=org.apache.log4j.ConsoleAppenderlog4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.Threshold=FATAL log4j.appender
14、.A1.layout.ConversionPattern=%-dyyyy-MM-dd HH:mm:ss %c-%p %m%n#R輸出到文件RollingFileAppender的擴展,可以提供一種日志的備份功能。 log4j.appender.R=org.apache.log4j.DailyRollingFileAppender#詳細日志文件保存在C盤目錄下的login.log文件中log4j.appender.R.File=c:/login.loglog4j.appender.R.Encoding=GBKlog4j.appender.R.Threshold=INFOlog4j.appende
15、r.R.DatePattern=.yyyy-MM-ddlog4j.appender.R.layout=org.apache.log4j.PatternLayoutlog4j.appender.R.layout.ConversionPattern=%dyyyy-MM-dd HH:mm %5p %c1: %L: %m%n注意:Add Struts Capabilities時并沒有加入log4j.jar包,為了提供log4j功能,需要加上log4j.jar。這里是因為導入Spring的時候附帶導入了 log4j.jar包,所以此處不用再另外導入log4j.jar包測試同上一次測試。測試成功證明Spr
16、ing運行正常。Hibernate 部分下面開始Hibernate部分,將原例修改為使用數據庫進行用戶名/密碼驗證。4.1.創建sqlserver2000數據庫和表添加表其中有id(標識),username password字段:SQL代碼如下:if exists (select * from dbo.sysobjects where id = object_id(Ndbo.users) and OBJECTPROPERTY(id, NIsUserTable) = 1) drop table dbo.usersGOCREATE TABLE dbo.users(id int IDENTITY (
17、1, 1) NOT NULL ,username varchar (50) COLLATE Chinese_PRC_CI_AS NULL ,password varchar (50) COLLATE Chinese_PRC_CI_AS NULL)ON PRIMARYGO再添加一條記錄:insert into user_table (username,password) values (aaron,123)4.2.創建 MyEclipse 數據庫驅動(DB Driver) 1 2 3 4 5 6 7Bev Database Comiecti on ProfileCreate a new cunr
18、iHcti cm profileProfiIp n:=jTip :MyWebDriver:Mi crosoft SQL Server匚口nEi gur 已 dmt mb:mw 已 dr i verm:j db c : m i cr u Euft: zqls erver :投 1 u c:alhu z t : 1433; Dat ab as 亙Nsjti 亙二FUser ri:=inie :s aPassword:Save password:00pen on Eclipse st:=Lt_tup: Saved pas swords are stored on yom- computer in a
19、 tile that s di tti cult but. not impossiblfor an intruder to read.下一步: 完成口 取消Profile Name項輸入MyWeb,“Driver”項選擇 Microsoft SQL ServerConnection URL為jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=MyWeb然后輸入正確的用戶名(User Name)和密碼(Password)按實際情況輸入;點擊”完成(Finish)”。4.3.添加Hibernate功能支持操作:Menu MyEclipse/P
20、roject Capabilities/Add Hibernate CapabilitiesHibernate 版本(Hibernate Specification)選擇Hibernate 3.1,開發包(libraries)選擇 Hibernate 3.1 Core Libraries、Spring 1.2 ORM/DAO/Hibernate3 Libaries 兩項; 注:(如果出 java.lang.NoClassDefFoundError: org/hibernate/cfg/HbmBinder$SecondPass 異常, 則是 因為導入的包 hibernate3.jar和 hibe
21、rnate-annotations.jar的沖突,直接刪除 hibernate-annotations.jar 即可)Library Folder選擇JAR Library Installation 選擇copy checked./WebRoot/WEB-INF/lib。點擊 下一步(Next)設置配置文件,選擇 Spring configuration file (applicationContext.xml)。下一步(Next)設置 Spring-Hibernate,選擇Existing Spring configuration file,SessionFactory ID項輸入sessi
22、onFactory下一步(Next)創建數據源對象,在Bean Id中輸入dataSource, DataSource項選擇Use JDBC Dirver,DB Driver項選擇MyWeb,其余項會自動填充;記得選中Copy DB driver jar(s) to project and add to buidpath項,以便將數據連接的庫文 件復制到項目,方便以后的布署。下一步(Next)創建 SessionFactory 類,Java package項設置為hibernate(沒有則點擊 New按鈕添加),Class name項保持默認即可HibernateSessionFactory,
23、Java Compliance Level選擇和創建項目時選擇的Java版本。(本例中并沒有用到HibernateSessionFactory類,留作今后擴展)點擊完成(Finish)。此時會自動建立 hibernate.HibernateSessionFactory.java類applicationContext.xml文件內會根據先前的配置自動添加dataSource和sessionFactory節點 com.microsoft.jdbc.sqlserver.SQLServerDriverjdbc:microsoft:sqlserver:/localhost:1433;DatabaseNa
24、me=MyWeb; !-上面.要在同一行,我在自動創建后沒在同一行,修改一 下即可。否則會出異常-sa123456org.hibernate.dialect.SQLServerDialect此時如果報錯:Class mons.dbcp.BasicDataSource not found,是因為沒有 導入依賴包commons-dbcp.jar,導入此包即可注:.要在同一行,否則可能會出連接數據庫失敗。4.4.創建對象關系映射(。配1)的相關文件操作:Menu Window/Open Perspective/MyEclipse Database ExplorerFROCEIil.fJlEFl.rt
25、lCTIOiTTEIGGEF;.國國.:甲國國畝:.田國國:白ES cho:l_J i rLgyg ESchijol_Louta ESchool_Mingd ESchoclJIingh ESchijol_MoniESchool YipNew TableNew F or e i gri Key j New Index翼 Drop TableM Delate All RoweE SYSTEME TABLE$ H畝H選中users表,點擊右鍵,在出現的菜單中選擇Hibernate Reverse Engnieering, Hibernale Reverse EngineeringHibernate
26、Iapping and Application GenerationGanarata Hibarriate m :pp i ng :and. J ava claEEaz from d:t :b :e e espl or ar t abl a e/login/srcBrowse.modelBrowse.Generate Hibernate mapping files and java classeEJava src folder:Java package:0Hibernate mapping file (*. hbm. xml) for each database table0 Update h
27、iberriat e confi ?n-:=iti on with mapping file location0 Java Data Object (TOJO ElB Table)叵|Create atstract classBase persi stent class:Browse.I I Java Data Access Ubj ect (DAO j (Hibernate 3 only)1 Generate precise finiiBy methodsDAO type: -1 Easic DAO Spring EAU JlHiI DAO下一步 完成口 取消 1、在彈出的窗口中保持Java
28、 package項為model;Update2、選中Hibernate mapping file (*.hbm.xml) for each databases table,并保持 hibernate.項選中;3、選中Java Data Object項,并保持Create abstract class選中;Base persistent class項留空;4、取消Java Data Access Object.項和Use custom templates項。點擊”下一步(Next),再點擊”下一步(Next)”在Configure reverse engineering details頁選中us
29、ers表,在右邊出現的Class Name 項中輸入model.Users,其它不變。點擊”完成(Finish)”。完成此操作,會在 model包下創 建三個文件:AbstractUsers.java、Users.java、 Users.hbm.xmlo此時sessionFactory部分會添加Users.hbm.xml映射文件的相關信息org.hibernate.dialect.SQLServerDialectmodel/Users.hbm.xml4.5.創建 lUsersDAO.java 接口和 UsersDAO.java 類lUsesDAO.java 內容如下:package dao;i
30、mport model.Users;public interface IUsersDAO public abstract boolean isValidUser(Users user);UsersDAO.java 內容如下:package dao;import java.util.List;import model.Users;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;public class UsersDAO extends HibernateDaoSupport implements IUse
31、rsDAO public boolean isValidUser(Users user) / TODO自動生成方法存根List list= this.getHibernateTemplate().findByExample(user);if (list.size()0)return true;return false;注意:此處的HibernateDaoSupport的路徑可能有多個(可能導入了許多其它的包),注意此處的父類 為 org.springframework.orm.hibernate3.support.HibernateDaoSupport而不是 org.springframewo
32、rk.orm.hibernate.support.HibernateDaoSupport修改 LoginAction.java 文件在 LoginAction.java 類中定義屬性 public IUsersDAO usersDao;并定義 了 一個 setUsersDao(IUsersDAO usersDao)方法,可以讓我們注入IUsersDAO的實例,在Action中使用 IUsersDAO對象來驗證用戶信息:(IUsersDAO必須為接口類型package struts.action;import javax.servlet. HYPERLINK http:/http.HttpSer
33、vletRequest http.HttpServletRequest;import javax.servlet. HYPERLINK http:/http.HttpServletResponse http.HttpServletResponse;import model.Users;import org.apache.struts.action.Action;import org.apache.struts.action.ActionError;import org.apache.struts.action.ActionErrors;import org.apache.struts.acti
34、on.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import dao.IUsersDAO;import struts.form.LoginForm;public class LoginAction extends Action public IUsersDAO usersDao;public void setUsersDao(IUsersDAO usersDao) this.usersDao= usersDao;public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) LoginForm loginForm = (LoginForm) form;/ TODO Auto-generated method stub String username= loginForm.getUserna
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權】 IEC 62282-7-2:2025 RLV EN Fuel cell technologies - Part 7-2: Test methods - Single cell and stack performance tests for solid oxide fuel cells (SOFCs)
- 【正版授權】 IEC TS 61400-28:2025 EN Wind energy generation systems - Part 28: Through-life management and life extension of wind power assets
- 【正版授權】 IEC 61558-1:1997+AMD1:1998 CSV FR-D Safety of power transformers,power supply units and similar - Part 1: General requirements and tests
- 滴滴代駕行業培訓
- 2025年個人農機工作方案
- 2025年世界衛生日活動策劃方案
- 2025年鄉政府個人工作方案
- 2025年社區方案生育年終總結
- 產婦膳食營養課件
- 2025年幼兒園小班班務工作方案參考
- 火龍罐綜合灸療法
- 拆除工程安全的應急預案工程應急預案
- A4橫線稿紙模板(可直接打印)
- 貴州省促進養老托育服務高質量發展實施方案
- 托利多電子秤校秤步驟
- 四線制方向電路
- 食堂干貨類食材臨時采購需求書
- 注射模具設計說明書
- 《DVT深靜脈血栓》
- 《大豆栽培學》PPT課件.ppt
- 米粉加工廠生產工藝理論介紹
評論
0/150
提交評論