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

正文內(nèi)容

基于j2ee平臺的火車站網(wǎng)上售票系統(tǒng)的實(shí)現(xiàn)-資料下載頁

2025-06-18 14:38本頁面
  

【正文】 。 + ()+ 39。 (sql)。 return ().find(sql)。 } public void addOrder(Ticketorder to){ ().save(to)。 }} 在這里借助于Spring提供的工具類HibernateDaoSupport,可以容易地實(shí)現(xiàn)DAO組件。().save()、().find()、().update()、().delete()這幾個方法就可以對數(shù)據(jù)庫中的各表進(jìn)行常規(guī)的增、刪、改和查工作。例如,代碼public void addOrder(Ticketorder to){ ().save(to)。 }實(shí)現(xiàn)的是向Ticketorder表中添加數(shù)據(jù),也就是相當(dāng)于實(shí)現(xiàn)了用戶訂單的添加的操作。這種簡單的實(shí)現(xiàn)較之傳統(tǒng)的JDBC 持久化訪問,更有優(yōu)勢。Hiberate 為持久化訪問提供了第一層封裝,而Spring在Hibernate的基礎(chǔ)上再次簡化了持久層的訪問。 部署DAO層應(yīng)用的DAO組件以 Hibernate和Spring為基礎(chǔ),由Spring容器負(fù)責(zé)生成并管理DAO組件。Spring容器負(fù)責(zé)為DAO組件注入其運(yùn)行所需要的基礎(chǔ)SessionFactory。Spring為整合Hibernate提供了大量工具類,通過LocalSessionFactory Bean 類,可以將 Hibernate 的SessionFactory納入其IoC容器內(nèi)。使用LocalSessionFactoryBean配置SessionFactory之前,必須為其提供對應(yīng)的數(shù)據(jù)源,配置文件如下:beans bean id=myDataSource class= property name=driverClassName value= /property property name=url value=jdbc:oracle:thin:@:1521:orcl /property property name=username value=scott/property property name=password value=tiger/property /bean bean id=mySessionFactory class= property name=dataSource ref bean=myDataSource / /property property name=hibernateProperties props prop key= /prop /props /property property name=mappingResources list value/sun/domain//value value/sun/domain//value value/sun/domain//value value/sun/domain//value/list /property /bean所有繼承HibernateDaoSupport的DAO實(shí)現(xiàn)類,必須為其提供SessionFactory 的引用。由于所有DAO組件都需要注入SessionFactory 引用,因此可以使用bean 繼承簡化DAO組件的配置。應(yīng)用中同樣將所有的DAO組件配置在單獨(dú)的配置文件中,下面是DAO對象的配置:bean name=traindao class= property name=sessionFactory ref bean=mySessionFactory / /property /bean Service層的實(shí)現(xiàn)系統(tǒng)使用了兩個業(yè)務(wù)邏輯組件,對應(yīng)的是系統(tǒng)的兩個模塊:用戶模塊和管理員模塊。兩模塊使用不同的Service組件:UserService組件和TrainService組件,這樣使業(yè)務(wù)層組件與具體的數(shù)據(jù)庫訪問技術(shù)分離,使所有的數(shù)據(jù)庫訪問只依賴于DAO組件。 service組件設(shè)計 Service組件采用正面模式封裝多個DAO組件,由于每個業(yè)務(wù)方法要涉及到多個DAO操作,其DAO操作是單個的數(shù)據(jù)記錄的操作,而業(yè)務(wù)邏輯方法的訪問,則需要設(shè)計多個DAO操作,因此每個業(yè)務(wù)邏輯方法可能需要涉及多條記錄的訪問。下面是UserService的部分源代碼:package 。import 。import 。import 。import 。import 。public class UserService { UserDao userDao。 public UserDao getUserDao() { return userDao。 } public void setUserDao(UserDao userDao) { = userDao。 } public void addUser(Userinf u) { (u)。 }//用戶注冊 public List chaXun(Train t){ return (t)。 }//查詢車次 public void addOrder(Ticketorder to) { (to)。 }//預(yù)訂車票 public void delOrder(String ids[]){ for (int i = 0。 i 。 i++) { Ticketorder to = (Ticketorder) (ids[i])。 (to)。 } }//取消訂票 public List login(String username, String password){ return (username, password)。 }//用戶登陸}在上面的業(yè)務(wù)邏輯組件中,有addUser、chaXun、addOrder、delOrder和login方法,分別負(fù)責(zé)實(shí)現(xiàn)的業(yè)務(wù)邏輯是用戶注冊、車次查詢、預(yù)訂車票、取消預(yù)訂和登陸。 部署service層單獨(dú)配置系統(tǒng)的業(yè)務(wù)邏輯層,可避免因配置文件過大引起配置文件難以閱讀。將配置文件按層和模塊分開配置,可以提高 Spring 配置文件的可讀性和可理解性。在applicationContext. xml 配置文件中配置如下:bean name=userservice class= property name=userDao ref bean=userdao / /property /bean通過配置文件來設(shè)置各種組件依賴,并由容器管理其依賴,可提高系統(tǒng)的解藕。 MVC層的實(shí)現(xiàn)系統(tǒng)的MVC框架使用 Struts。因?yàn)镾truts是最健壯、應(yīng)用最廣的MVC框架。系統(tǒng)使用Struts框架可以提高系統(tǒng)的可控制性,保證了系統(tǒng)的穩(wěn)定性及可用性。 解決中文編碼問題在頁面?zhèn)鬟f和數(shù)據(jù)查找中,必然會遇到中文的編碼問題,系統(tǒng)通過使用Filter類來解決中文的編碼問題。,但它必須繼承Filter類這個類。需要修改如下所示代碼。public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { (utf8)。 (request, response)。 }通過使用這個類,就可以處理中文編碼問題。 Struts與Spring的整合整合Struts與Spring只有一個要求,讓Struts將攔截到客戶端的請求轉(zhuǎn)發(fā)給 Spring容器中的bean。為了在應(yīng)用啟動時由Struts負(fù)責(zé)創(chuàng)建Spring容器,應(yīng)在 :plugin className= setproperty property=contextConfigLocation value=/WEBINF/ / /plugin 創(chuàng)建ACTION系統(tǒng)分成兩個模塊,用戶模塊和管理員模塊,對應(yīng)的action為:UserAction和TrainAction,它們繼承了DispatchActionSupport,DispatchActionSupport是ActionSupport的子類,而ActionSupport又是Action的實(shí)現(xiàn)類,通過它提供的相關(guān)方法,可以直接獲取到ApplicationContext的實(shí)例。在action中注入組件,來完成一些通用操作。(1)TrainAction中的TrainService組件注入ApplicationContext ctx = ()。TrainService trainService = (TrainService)(trainservice)。(2)UserAction中的UserService組件注入ApplicationContext ctx = ()。UserService userService = (UserService)(userservice)。由于繼承DispatchActionSupport這個類,可以減少Action的創(chuàng)建。配置如下: actionmappingsaction path=/train type= parameter=option /actionaction type= parameter=uop path=/user//actionmappings 系統(tǒng)功能模塊的詳細(xì)設(shè)計與實(shí)現(xiàn) 用戶注冊登陸功能模塊的實(shí)現(xiàn)系統(tǒng)采用的是會員制的形式登錄平臺,用戶首先要進(jìn)行注冊,才能進(jìn)入系統(tǒng)。 登錄界面用戶登錄時,首先從session中獲得session信息,如果獲得的信息與輸入的用戶名一致,表明用戶已經(jīng)登錄,就會提示“用戶已登錄”的信息,采用這種機(jī)制可以防止用戶重復(fù)登錄。通過查詢數(shù)據(jù)庫,判斷用戶的角色是否為管理員,從而進(jìn)入不同的界面。相關(guān)的代碼實(shí)現(xiàn)如下:public ActionForward login(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { ApplicationContext ctx = ()。 UserService userService = (UserService)(userservice)。 String ypwd = ((ypwd))。 List list = (yname, ypwd)。 String o = (String) ().getAttribute(uname)。 if((o)){ (str, 用戶已登錄)。 return new ActionForward(/)。 } else if(()==1){ Userinf u = (Userinf) (0)。 ().setAttribute(uname, yname)。 if(().equals(Y)){ return new ActionForward(/)。 } return new ActionForward(/)。 }else{ (str, 用戶名或密碼錯誤)。 return new ActionForward(/)。 } } 這里判斷了兩種角色的登錄情況,從而進(jìn)入不同角色的界面,如果用戶名或密碼為空則會提示請輸入用戶名和密碼,這里采用了Javascript技術(shù),這樣就可以防止頁面的刷新。相關(guān)的Javascript代碼如下:script type=text/javascript function validate(){ var username = (39。yname39。)。 var password = (39。ypwd39。)。 if(==39。39。 || == 39。39。){ alert(39。 請輸入用戶名或密碼39。)。 return false。 }else{ return true。 }} /script如果輸入的用戶名和密碼錯誤,則會提示錯誤信息。 登錄失敗界面 用戶車次查詢模塊的實(shí)現(xiàn)用戶通過驗(yàn)證登陸后,進(jìn)入用戶界面。通過選擇查詢車次,輸入查詢所需的信息即可對車次進(jìn)行查詢。查詢車次的方式有兩種:按車次查詢和按站站查詢。 車次查詢界面車次查詢的實(shí)現(xiàn)首先從用戶提交的表單中獲取車次“trainname”,通過輸入的信息對車次進(jìn)行數(shù)據(jù)庫查詢,然后將相關(guān)的車次信息以列表的形式表現(xiàn)出來,代碼如下: String trainname = (trainname)。 (trainname)。 List list = (t)。 (trainList, list)。 return new ActionForward(/)。通過兩種方式的查詢,使用戶能夠更便捷更快速的查詢自己所要列車的信息,上面代碼實(shí)現(xiàn)的是按車次查詢的功能。用戶只需輸入車次就可以查詢到所要車次的信息。 車票預(yù)訂功能模塊實(shí)現(xiàn)用戶登陸后,點(diǎn)擊車票預(yù)訂即可進(jìn)行車票的預(yù)定。首先通過站站查詢查詢所要預(yù)訂的車次,通過選擇車次來預(yù)訂,用戶唯一能夠修改的只有預(yù)訂車票的數(shù)量,通過輸入票數(shù)的多少來確定總價。
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1