歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

用Eclipse開發(fā)java web應(yīng)用程序.ppt

  • 資源ID:3447453       資源大?。?span id="vxprjlv" class="font-tahoma">295KB        全文頁數(shù):36頁
  • 資源格式: PPT        下載積分:9.9積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要9.9積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請(qǐng)知曉。

用Eclipse開發(fā)java web應(yīng)用程序.ppt

第2講基于Servlet+JavaBean+Jsp開發(fā)應(yīng)用的過程,第2講基于Servlet+JavaBean+Jsp開發(fā)應(yīng)用的過程,本講主要介紹主流的javaweb編程技術(shù)、設(shè)計(jì)模式和框架,以及如何利用Eclipese開發(fā)Web應(yīng)用程序。要點(diǎn):1、JavaWeb編程的主要組件技術(shù);2、MVC設(shè)計(jì)模式;3、用Eclipse構(gòu)建一個(gè)基于MVC模式的JavaWeb的應(yīng)用程序。目的:掌握如何用Eclipse構(gòu)建一個(gè)基于MVC模式的JavaWEB的應(yīng)用程序。,2.1javaweb編程的主要組件技術(shù),HtmljspServletJavabeanJdbcXmlTomcatMySQL,2.2MVC設(shè)計(jì)模式,今天,我們見到的絕大部分應(yīng)用,都是基于B/S(瀏覽器/服務(wù)器)架構(gòu)的,其中的服務(wù)器就是Web服務(wù)器??梢姡琖eb應(yīng)用是目前廣泛使用的應(yīng)用模式。Web程序開發(fā)方法的發(fā)展:JSP的Model1JSP的Model2MVC,1Model1和Model2,對(duì)于Java的動(dòng)態(tài)Web編程技術(shù)而言,則經(jīng)歷了Model1和Model2時(shí)代。Model1:Model1就是JSP大行其道的時(shí)代,在Model1模式下,整個(gè)Web應(yīng)用幾乎全部由JSP頁面組成,JSP頁面接收處理客戶端請(qǐng)求,對(duì)請(qǐng)求處理后直接做出響應(yīng)。用少量的JavaBean來處理數(shù)據(jù)庫連接、數(shù)據(jù)庫訪問等操作。Model2:Model2下JSP不再承擔(dān)控制器的責(zé)任,它僅僅是表現(xiàn)層角色,僅僅用于將結(jié)果呈現(xiàn)給用戶,JSP頁面的請(qǐng)求與Servlet(控制器)交互,而Servlet負(fù)責(zé)與后臺(tái)的JavaBean通信。在Model2模式下,模型(Model)由JavaBean充當(dāng),視圖(View)由JSP頁面充當(dāng),而控制器(Controller)則由Servlet充當(dāng)。,Model1的程序流程:,特點(diǎn):由JSP頁面組成,JSP頁面接收處理客戶端請(qǐng)求,對(duì)請(qǐng)求處理后直接做出響應(yīng)。用少量的JavaBean來處理數(shù)據(jù)庫連接、數(shù)據(jù)庫訪問等操作,Model2的程序流程:基本上是MVC結(jié)構(gòu),特點(diǎn):Model2下JSP不再承擔(dān)控制器的責(zé)任,它僅僅是表現(xiàn)層角色,僅僅用于將結(jié)果呈現(xiàn)給用戶,JSP頁面的請(qǐng)求與Servlet(控制器)交互,而Servlet負(fù)責(zé)與后臺(tái)的JavaBean通信。在Model2模式下,模型(Model)由JavaBean充當(dāng),視圖(View)由JSP頁面充當(dāng),而控制器(Controller)則由Servlet充當(dāng)。,2Model1和Model2的比較,對(duì)于非常小型的Web站點(diǎn),如果后期的更新、維護(hù)工作不是特別大,可以使用Model1的模式來開發(fā)應(yīng)用,而不是使用Model2的模式。雖然Model2提供了更好的可擴(kuò)展性及可維護(hù)性,但增加了前期開發(fā)成本。從某種程度上講,Model2為了降低系統(tǒng)后期維護(hù)的復(fù)雜度,卻導(dǎo)致前期開發(fā)的更高復(fù)雜度。,3MVC思想,MVC并不是Java語言所特有的設(shè)計(jì)思想,也并不是Web應(yīng)用所特有的思想,它是所有面向?qū)ο蟪绦蛟O(shè)計(jì)語言都應(yīng)該遵守的規(guī)范。MVC思想將一個(gè)應(yīng)用分成三個(gè)基本部分:Model(模型)、View(視圖)和Controller(控制器),這三個(gè)部分以最少的耦合協(xié)同工作,從而提高應(yīng)用的可擴(kuò)展性及可維護(hù)性。,MVC,MVC:M(model)是指數(shù)據(jù)模型,V(View)是指用戶界面,C(Control)則是控制器。使用MVC的目的是將M和V的實(shí)現(xiàn)代碼分離,從而使同一個(gè)程序可以使用不同的表現(xiàn)形式。模型、視圖與控制器的分離,使得一個(gè)模型可以具有多個(gè)顯示視圖。如果用戶通過某個(gè)視圖的控制器改變了模型的數(shù)據(jù),所有其它依賴于這些數(shù)據(jù)的視圖都應(yīng)反映到這些變化。因此,無論何時(shí)發(fā)生了何種數(shù)據(jù)變化,控制器都會(huì)將變化通知所有的視圖,導(dǎo)致顯示的更新。這實(shí)際上是一種模型的變化-傳播機(jī)制。模型、視圖、控制器3者之間的關(guān)系和各自的主要功能。,MVC的組成部分,視圖(View)代表用戶交互界面,對(duì)于Web應(yīng)用來說就是HTML界面。模型(Model):就是業(yè)務(wù)流程/狀態(tài)的處理以及業(yè)務(wù)規(guī)則的制定??刂疲–ontroller):可以理解為一個(gè)分發(fā)器,他來決定選擇什么樣的模型,選擇什么樣的視圖,可以完成什么樣的用戶請(qǐng)求,控制層并不做任何的數(shù)據(jù)處理。,MVC帶來的好處,MVC從根本上強(qiáng)制性的將它們分開,最大程度上實(shí)現(xiàn)了程序代碼與網(wǎng)頁的分離。數(shù)據(jù)和業(yè)務(wù)規(guī)則從表示層分開,所以可以最大化的重用代碼。,MVC的特點(diǎn),MVC特點(diǎn):多個(gè)視圖可以對(duì)應(yīng)一個(gè)模型。按MVC設(shè)計(jì)模式,一個(gè)模型對(duì)應(yīng)多個(gè)視圖,可以減少代碼的復(fù)制及代碼的維護(hù)量,一旦模型發(fā)生改變,也易于維護(hù)。模型返回的數(shù)據(jù)與顯示邏輯分離。模型數(shù)據(jù)可以應(yīng)用任何的顯示技術(shù),例如,使用JSP頁面、Velocity模板或者直接產(chǎn)生Excel文檔等。應(yīng)用被分隔為三層,降低了各層之間的耦合,提供了應(yīng)用的可擴(kuò)展性。控制層的概念也很有效,由于它把不同的模型和不同的視圖組合在一起,完成不同的請(qǐng)求。因此,控制層可以說是包含了用戶請(qǐng)求權(quán)限的概念。MVC更符合軟件工程化管理的精神。不同的層各司其職,每一層的組件具有相同的特征,有利于通過工程化和工具化產(chǎn)生管理程序代碼。,4常用的MVC框架,Struts:-包括struts1和struts2兩個(gè)。JSF:JSF是一個(gè)標(biāo)準(zhǔn),目前,JSF是作為JEE5.0的一個(gè)組成部分,與JEE5.0一起發(fā)布JSF的行為方法在POJO中實(shí)現(xiàn),JSF的ManagedBean無需繼承任何特別的類。因此,無需在表單和模型對(duì)象之間實(shí)現(xiàn)多余的控制器層。JSF中沒有控制器對(duì)象,控制器行為通過模型對(duì)象實(shí)現(xiàn)。JSF的事件框架可以細(xì)化到表單中每個(gè)字段。JSF依然是基于JSP/Servlet的,仍然是JSP/Servlet架構(gòu),因而學(xué)習(xí)曲線相對(duì)簡單,2.3用Eclipse構(gòu)建一個(gè)基于MVC模式的JavaWeb應(yīng)用程序,題目要求:(1)技術(shù)要求:按照MVC設(shè)計(jì)模式,利用JSP、Servlet及JavaBean構(gòu)建一個(gè)簡單的登錄系統(tǒng)。(2)系統(tǒng)功能要求:當(dāng)用戶在登錄頁面上填寫用戶名和密碼并提交后,系統(tǒng)檢查該用戶是否已經(jīng)注冊,若注冊,系統(tǒng)進(jìn)入主頁面,否則,進(jìn)入注冊頁面。系統(tǒng)的工作流程見下圖。,(2)控制器-1LoginServlet,(1)登錄頁面Login.jsp,(5)數(shù)據(jù)組件userdoadb_op,(6)數(shù)據(jù)庫MySQL,進(jìn)行驗(yàn)證,不符合格式,返回注冊頁面,重新注冊,并提示出錯(cuò)情況,注冊成功,進(jìn)入登錄頁面,未注冊,登錄系統(tǒng)的工作流程,(3)提示:登錄成功Main.jsp(過20秒后再自動(dòng)進(jìn)入注冊頁面),(4)進(jìn)入注冊頁面Register.jsp,(7)控制器-2RegisterServlet,(8)提示:注冊失敗Register_err.jsp(過20秒后再自動(dòng)進(jìn)入注冊頁面),(9)注冊成功Register_succ.jsp(過20秒后再自動(dòng)進(jìn)入注冊頁面),已注冊,或者,密碼錯(cuò)誤,(10)進(jìn)入主頁面Main2.jsp,構(gòu)建系統(tǒng)的處理步驟,(1)數(shù)據(jù)庫設(shè)計(jì):構(gòu)建數(shù)據(jù)庫表T_UserInfo(2)在Eclipse中創(chuàng)建一個(gè)項(xiàng)目:Login_Proj(3)構(gòu)建視圖組件:登錄頁面(login.jsp)、主頁面(main.jsp)、注冊頁面(register.jsp),注冊失敗(Register_err.jsp),注冊成功(Register_succ.jsp)(4)構(gòu)建控制層組件:一個(gè)servlet(LoginServlet.java)->實(shí)現(xiàn)登錄的控制一個(gè)servlet(RegisterServlet.Java)-實(shí)現(xiàn)注冊的驗(yàn)證控制(5)構(gòu)建業(yè)務(wù)邏輯層組件(模型組件):一個(gè)JavaBean:user,doa,db_op(6)部署該程序到服務(wù)器Tomcat中,然后運(yùn)行。,(1)數(shù)據(jù)庫設(shè)計(jì):構(gòu)建數(shù)據(jù)庫表T_UserInfo,利用MySQL數(shù)據(jù)庫,創(chuàng)建數(shù)據(jù)庫:user創(chuàng)建表及其結(jié)構(gòu):T_UserInfo,數(shù)據(jù)表結(jié)構(gòu)T_UserInfo,注意,該數(shù)據(jù)庫所存放的位置,(2)在Eclipse中創(chuàng)建一個(gè)項(xiàng)目:Login_Proj,按Eclipse建立工程的提示,建立Web工程,工程的名稱為:Login_Proj。,(3)構(gòu)建視圖組件:-登錄頁面(login.jsp),選中工程“Login_Proj”,擊右鍵,選“新建”,按Eclipse的提示,建立jsp,名稱為:Login。修改默認(rèn)jsp內(nèi)容,達(dá)到我們所要求的編碼。,login.jsp的代碼,登錄頁面用戶名:密,(3)構(gòu)建視圖組件-主頁面(main.jsp),選中工程“Login_Proj”,擊右鍵,選“新建”,按Eclipse的提示,建立jsp,名稱為:main.jsp。修改默認(rèn)jsp內(nèi)容,達(dá)到我們所要求的編碼。,main.jsp代碼,主頁面,你成功登錄,20秒后自動(dòng)進(jìn)入主頁面!,類似可以建立其它的頁面:系統(tǒng)頁面main2.jsp注冊頁面register.jsp注冊失敗提示頁面Register_err.jsp注冊成功提示頁面Register_succ.jsp,構(gòu)建控制層組件(第4步)建立數(shù)據(jù)JavaBean用戶(user);建立連接數(shù)據(jù)庫的JavaBean(doa)建立實(shí)現(xiàn)對(duì)用戶數(shù)據(jù)庫進(jìn)行操作的java類-db_op.java,4.1建立數(shù)據(jù)JavaBean用戶(user),packageJavaBean;publicclassuserprivateStringusername;privateStringpassword;publicStringgetUsername()returnusername;publicvoidsetUsername(Stringusername)this.username=username;publicStringgetPassword()returnpassword;publicvoidsetPassword(Stringpassword)this.password=password;,4.2建立連接數(shù)據(jù)庫的JavaBean(doa),packageJavaBean;publicclassdoaprivateStringdb_username;privateStringdb_password;privateStringdb_driver;privateStringdb_connection;publicStringgetDb_username()returndb_username;publicvoidsetDb_username(Stringdb_username)this.db_username=db_username;publicStringgetDb_password()returndb_password;publicvoidsetDb_password(Stringdb_password)this.db_password=db_password;publicStringgetDb_driver()returndb_driver;publicvoidsetDb_driver(Stringdb_driver)this.db_driver=db_driver;publicStringgetDb_connection()returndb_connection;publicvoidsetDb_connection(Stringdb_connection)this.db_connection=db_connection;,4.3在JavaBean(doa)的基礎(chǔ)上,建立實(shí)現(xiàn)對(duì)用戶數(shù)據(jù)庫進(jìn)行操作的java類-db_op.java,publicclassdb_oppublicConnectiondb_getConnection()Connectionconn=null;Stringdb_username=null;Stringdb_password=null;Stringdb_driver=null;Stringdb_connection=null;Propertiespro=newProperties();Filefile=newFile("H:web_15Login_Projsrcdb.properties");trypro.load(newFileInputStream(file);catch(Exceptione)e.printStackTrace();db_username=pro.getProperty("db_username","");db_password=pro.getProperty("db_password","");db_driver=pro.getProperty("db_driver",db_driver);db_connection=pro.getProperty("db_connection",db_connection);tryClass.forName(db_driver).newInstance();conn=DriverManager.getConnection(db_connection,db_username,db_password);returnconn;catch(Exceptione)System.out.println(e);returnnull;,實(shí)現(xiàn)數(shù)據(jù)庫的連接,publicbooleanselect_1(useru)/查詢用戶是否已經(jīng)注冊Connectionconn=null;ResultSetrs=null;Statementps=null;Stringxm=u.getUsername();Stringpass=u.getPassword();conn=db_getConnection();Strings1="select*fromT_userInfowhereusername="+xm+"andpassword="+pass+""tryps=conn.createStatement();rs=ps.executeQuery(s1);if(rs.next()rs.close();ps.close();conn.close();returntrue;elsers.close();ps.close();conn.close();returnfalse;catch(SQLExceptione)returnfalse;,publicbooleanselect_2(Stringu)/在注冊時(shí),查詢是否有重名的用戶已經(jīng)注冊Connectionconn=null;ResultSetrs=null;Statementps=null;conn=db_getConnection();Strings1="select*fromT_userInfowhereusername="+u+""tryps=conn.createStatement();rs=ps.executeQuery(s1);if(rs.next()rs.close();ps.close();conn.close();returntrue;elsers.close();ps.close();conn.close();returnfalse;catch(SQLExceptione)returnfalse;,publicvoidappend(useru)/注冊時(shí),添加注冊用戶信息Connectionconn=null;Statementps=null;conn=db_getConnection();Stringxm=u.getUsername();Stringpass=u.getPassword();Strings1="insertintoT_userInfo(username,password)values("+xm+","+pass+")"tryps=conn.createStatement();ps.executeUpdate(s1);ps.close();conn.close();catch(SQLExceptione)System.out.println(e);,(5)構(gòu)建控制層組件(第5步):5.1一個(gè)servlet(LoginServlet.java)->實(shí)現(xiàn)登錄的控制5.2一個(gè)servlet(RegisterServlet.Java)實(shí)現(xiàn)注冊的驗(yàn)證控制5.3web.xml配置文件的解讀,5.2構(gòu)建控制層組件:一個(gè)servlet(registerServlet.java,publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOExceptionStringxm=(String)request.getParameter("username");Stringmm=(String)request.getParameter("password");Stringmm2=(String)request.getParameter("repassword");Stringtype_err=""db_opb=newdb_op();if(b.select_2(xm)type_err=xm+":該用戶已經(jīng)注冊!"HttpSessions=request.getSession(true);s.setAttribute("type_err",type_err);response.sendRedirect("Register_err.jsp");elseif(!mm.equals(mm2)type_err="兩次密碼不一致錯(cuò)!"HttpSessions=request.getSession(true);s.setAttribute("type_err",type_err);response.sendRedirect("Register_err.jsp");elseHttpSessions=request.getSession(true);s.setAttribute("username",xm);s.setAttribute("password",mm);useru=newuser();u.setUsername(xm);u.setPassword(mm);db_opd=newdb_op();d.append(u);response.sendRedirect("Register_succ.jsp");,5.1構(gòu)建控制層組件:一個(gè)servlet(LoginServlet.java),publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOExceptionuseru=newuser();Stringxm=""Stringps=""xm=request.getParameter("username");ps=request.getParameter("password");u.setUsername(xm);u.setPassword(ps);HttpSessions=request.getSession(true);s.setAttribute("username",xm);db_opd=newdb_op();booleantf=d.select_1(u);if(tf)response.sendRedirect("main2.jsp");elseresponse.sendRedirect("register2.jsp");,5.3web.xml配置文件的解讀和配置,提示:必須要學(xué)會(huì)自己修改和配置,這對(duì)于我們了解servlet的工作原理和實(shí)用有著重要的作用。,JavaWeb應(yīng)用通過一個(gè)基于XML的發(fā)布描述符文件來配置其發(fā)布信息,這個(gè)文件名為web.xml,它存放于WEB-INF子目錄下。在web.xml文件中可主要包含如下配置信息:(1)Servlet的定義。(2)Servlet的初始化參數(shù)。(3)Servlet以及JSP的映射。(4)Filter的定義。(5)安全域配置參數(shù)。(6)welcome文件清單。(7)資源引用。(8)環(huán)境變量的定義。,(6)部署該程序到服務(wù)器Tomcat中,然后運(yùn)行另外,必須對(duì)系統(tǒng)進(jìn)行測試和調(diào)試,總結(jié),該程序的設(shè)計(jì)關(guān)鍵:(1)了解系統(tǒng)流程,給出系統(tǒng)分析,并給出圖形描述;(2)數(shù)據(jù)庫模型的設(shè)計(jì):為了使對(duì)數(shù)據(jù)庫的操作,具有通用性,采用屬性文件,存放數(shù)據(jù)庫連接的有關(guān)信息,通過對(duì)數(shù)據(jù)文件的讀,獲取該信息,實(shí)現(xiàn)連接;(3)網(wǎng)頁之間是如何傳遞信息的?(4)jsp網(wǎng)頁與servlet之間是如何傳遞信息的:信息由jspservlet如何實(shí)現(xiàn);信息由servletjsp如何實(shí)現(xiàn);(5)應(yīng)該自己逐步設(shè)計(jì),絕不能找一個(gè)類似的程序修該一下。,

注意事項(xiàng)

本文(用Eclipse開發(fā)java web應(yīng)用程序.ppt)為本站會(huì)員(zhu****ei)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!