freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

市場營銷第4章注冊、登錄和注銷-wenkub

2023-01-29 04:20:15 本頁面
 

【正文】 g password){ return null。 //引入需要的類 import 。 //引入需要的類 import 。 validateUser()方法用于驗證用戶輸入的名稱和密碼是否正確。 //將 user對象保存到數(shù)據(jù)庫中 Transaction tx=()。 import 。 package 。 } public void setSessionFactory(SessionFactory sessionFactory){ =sessionFactory。 //引入需要的類 import 。 圖 47 文件在項目中的位置 注冊 創(chuàng)建 ,代碼如下: //包名為 package 。UserDAO類中的 saveUser()具體實現(xiàn)了這個方法。 使用框架的最大好處是不僅在于減少重復(fù)開發(fā)工作量,縮短開發(fā)時間,降低開發(fā)成本,同時,使程序設(shè)計更加合理,程序運(yùn)行更加穩(wěn)定等。 ● Spring 服務(wù)器各種組件的生成都是由 Spring容器來控制,被看作是 Spring中的一個 Bean,它可享受 Spring提供的所有服務(wù)(依賴注入、實例管理、事務(wù)管理等)。 ● Action控制層 控制層的控制器 Action接受用戶的輸入并調(diào)用業(yè)務(wù)層的業(yè)務(wù)方法和表示層的組件去完成用戶的請求。 ● Service業(yè)務(wù)層 業(yè)務(wù)層位于上層的表示層和控制層,依賴于下層的業(yè)務(wù)層的實現(xiàn)( DAO),而下層業(yè)務(wù)層不應(yīng)該依賴于上層的表示層和控制器的實現(xiàn)。如圖 45所示。效果如圖 4圖 44所示。用戶如果想從網(wǎng)上書店購買商品,必須有一個網(wǎng)上書店的賬號,用戶可以通過“注冊”功能獲得賬號,注冊頁面效果如圖 41所示。當(dāng)注冊成功之后,會進(jìn)入注冊成功頁面;如果注冊信息不對,則顯示注冊失敗。 圖 43 用戶沒有登錄時的菜單 圖 44 用戶登錄以后的菜單 在 J2EE的開發(fā)中,服務(wù)器端 Web應(yīng)用程序分為若干層。 Spring容器 客戶端 瀏覽器 數(shù)據(jù)庫 Web 服 務(wù) 器(Tomcat) Action Service DAO 核心控制器 JSP視圖 JavaBeans 圖 45 J2EE的分層結(jié)構(gòu) ● DAO層 DAO層完成連接數(shù)據(jù)庫增刪改等實現(xiàn)細(xì)節(jié),例如 SQL語句怎么寫、怎樣把對象放入數(shù)據(jù)庫等等。業(yè)務(wù)層提供了處理應(yīng)用程序的業(yè)務(wù)邏輯和業(yè)務(wù)校驗,如驗證用戶登錄系統(tǒng)的密碼是否正確;提供了管理事務(wù),允許與其它層相互作用的接口。當(dāng) Web應(yīng)用單擊 Web頁面中的提交按鈕來發(fā)送 HTML表單時,控制器接受請求并調(diào)用相應(yīng)的業(yè)務(wù)層方法去處理請求,然后調(diào)用相應(yīng)的視圖來顯示業(yè)務(wù)層返回的數(shù)據(jù)。 ● JSP視圖層 視圖是用戶看到并與之交互的界面,視圖向用戶顯示相關(guān)的數(shù)據(jù),并能接受用戶的輸入數(shù)據(jù),但不能進(jìn)行任何實際的業(yè)務(wù)處理?;谶@些原因,基本上現(xiàn)在開發(fā)中,都會選擇某些合適的開發(fā)框架,從而達(dá)到快捷,高效的目的。 BaseDAO是將對數(shù)據(jù)庫進(jìn)行的操作進(jìn)行封裝,這樣,在 UserDAO中就可以直接使用 Session。 //引入另一個包 User類 import 。 import 。 } public Session getSession(){ Session session=()。 //引入需要的類 import ; import ..。 import 。 (user); (); (); } } 注冊 ● 步驟 2 Service Service層主要用于處理各種業(yè)務(wù)。 UserService實現(xiàn) IUserService接口,通過 IUserDAO類,實現(xiàn)了這兩個方法。 public interface IUserService { //用戶注冊時,保存用戶的信息 public void saveUser(User user)。 import 。 } //屬性 userDAO的 get方法 public IUserDAO getUserDAO(){ return userDAO。這些方法的實現(xiàn)依賴于 Service層,在屬性中,有一個 userService屬性,它的類型是 IUserServe。但是,其實對應(yīng)的類為 。 圖 413 注冊 : ● 步驟 5 JSP層 創(chuàng)建注冊視圖 ,注冊成功視圖 。根據(jù)用戶輸入的用戶名和密碼到數(shù)據(jù)庫中查找相關(guān)用戶。 //包名 import 。在IUserServie接口中定義了 validateUser()方法,用于用戶登錄驗證。 //包名 import 。方法的實現(xiàn)依賴于Service層,在屬性中,有一個 userService屬性,它的類型是 IUserServe。 % page contentType=text/html; charset=gb2312 % jsp: include page=/jsp: include % taglib prefix=s uri=/strutstags % html headtitle 用戶登錄 /title /head body form action= method=post name=login 用戶名: input type=text name= /br 密碼: input type=password name= /br input type=submit value=登錄 br /form /body /html 注銷 開發(fā)為 3個步驟: 步驟 1 Action 步驟 2 Spring 步驟 3 JSP 具體步驟如下: ● 步驟 1 Action UserAction類 logout()方法用于用戶登錄,如圖 410所示。 (user)。文件的位置如圖 414所示。 一個軟件模塊 (類,函數(shù),代碼塊等 )在擴(kuò)展性方面應(yīng)該是開放的,而在更改性方面應(yīng)該是封閉的,這就是開閉原則。在數(shù)據(jù)庫編程的時候,經(jīng)常遇到這種情況,一個用戶的數(shù)據(jù)訪問對象,里面的操作方法有 insert, delete, update, select等,對不同數(shù)據(jù)庫其實現(xiàn)的細(xì)節(jié)是不相同的。如圖 415所示。 //設(shè)置 name like ?中的問號為字符串 %clus% 2.使用“ :”后跟變量的方法設(shè)置參數(shù) 可以使用命名參數(shù)來取代使用 “ ? ”設(shè)置參數(shù)的方法,這可以不用依據(jù)特定的順序來設(shè)定參數(shù)值,比如上面的代碼可以寫為: Query query=(from Student s where :minAge and like:likeName)。命名參數(shù)的好處如下: ● 命名參數(shù)不依賴于它們在查詢字符串中出現(xiàn)的順序 ● 在同一個查詢中可以使用多次 ● 可讀性好 綁定參數(shù) 3. setParameter()方法 setParameter()方法的全稱是 setParameter(String paramName,實例,實例類型 )。 Query query=(hql)。 最常見的是使用 list()取得一組符合條件實例對象,如下程序所示: Query query=(from Student s where 20。i++){ Student stu=(Student)(i)。其中包括: ● Criteria Query(條件查詢 API) ● Hibernate Query Language(HQL) ● SQL 傳統(tǒng)的 SQL語句采用的是結(jié)構(gòu)化的查詢方法,而這種方法對于查詢以對象形式存在的數(shù)據(jù)卻無能為力。雖然 Criteria提供了更加符合面向?qū)ο缶幊棠J降牟樵兎庋b模式,但 HQL提供了更加強(qiáng)大的功能。 Query query=(hql)。 如果需要取出名為 Tom的用戶的記錄,可以通過 hql語句加以限定: String hql=”from User as user where =?Tom? ”。其中 as子句可忽略,如:” from User user where =?Tom? ” where子句中,可以通過比較操作符指定甄選條件,如:=,=,=,between,not between,in,not in, is, like 等。 delete和 update子句是 Hibernate 3中新引入的 HQL子句。 //通過 (user)。 Query query=(hql)。 以下代碼將所有用戶的年齡屬性更新為 18: String hql=update User set age=18。以下代碼刪除了所有年齡大于18的用戶記錄: String hql=delete User where age18。 Action接受來自視圖層的請求,并接受請求參數(shù),同時負(fù)責(zé)調(diào)用模型層方法來完成業(yè)務(wù)邏輯的處理,最后控制程序的流程,選擇一個合適的視圖將結(jié)果顯示給客戶。 Return Value:返回值,類型必須是字符串, Struts 2會根據(jù)返回值控制程序流程。 return null。 因為 hello()方法的返回值是 null,表示不跳轉(zhuǎn)到任何地方。 Return nulll。比如,從客戶端傳送一個名叫 name的參數(shù),則會拼成 setName和 getName方法名,通過反射調(diào)用 setName()方法進(jìn)行賦值,程序員通過 getName()方法就能取到值了。本示例用于演示用戶登陸的過程。 通過 ACTION獲取請求參數(shù) public class LoginAction { private String username。 } public String getUsername() { return username。 }else{ return “failure”。 Struts2的開發(fā)者們提供了一種更好的處理方式,類似于 ActionForm,但是比 ActionForm更加靈活和解耦。 } public void setPassword(String password) { = password。該類的配置不需要改變。 } public String execute() { //同上 } } 通過 ACTION獲取請求參數(shù) 最后,修改 name屬性值,基本格式為:引用名 .屬性名。 public interface Action { public static final String SUCCESS = success。 public static final String LOGIN = login。 其中, SUCCESS表示請求處理成功, ERROR表示請求處理失敗, NONE表示請求處理完成后不跳轉(zhuǎn)到任何頁面, INPUT表示輸入時如果驗證失敗應(yīng)該跳轉(zhuǎn)到什么地方,LOGIN表示
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1