使用jspservletajax技術(shù)開發(fā)新聞發(fā)布系統(tǒng)tp_第1頁(yè)
使用jspservletajax技術(shù)開發(fā)新聞發(fā)布系統(tǒng)tp_第2頁(yè)
使用jspservletajax技術(shù)開發(fā)新聞發(fā)布系統(tǒng)tp_第3頁(yè)
使用jspservletajax技術(shù)開發(fā)新聞發(fā)布系統(tǒng)tp_第4頁(yè)
使用jspservletajax技術(shù)開發(fā)新聞發(fā)布系統(tǒng)tp_第5頁(yè)
已閱讀5頁(yè),還剩39頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、JSP應(yīng)用優(yōu)化第五章回顧及作業(yè)點(diǎn)評(píng)請(qǐng)描述什么是JSP內(nèi)置對(duì)象?列舉你知道的JSP內(nèi)置對(duì)象并說(shuō)明其作用請(qǐng)描述一下Cookie與session的區(qū)別?請(qǐng)描述實(shí)現(xiàn)頁(yè)面訪問控制的工作流程?預(yù)習(xí)檢查什么是連接池?為什么要使用連接池?什么是JNDI?JNDI可以作什么?什么是JavaBean?在JSP中如何使用JavaBean?使用JNDI獲取數(shù)據(jù)源理解數(shù)據(jù)庫(kù)連接池使用JavaBean封裝業(yè)務(wù)邏輯本章任務(wù)會(huì)使用JNDI查找服務(wù)掌握數(shù)據(jù)庫(kù)連接池原理掌握J(rèn)avaBean的實(shí)際應(yīng)用掌握集成工具M(jìn)yEclipse的使用本章目標(biāo)JNDI介紹什么是JNDIJNDI(Java Naming and Directory

2、Interface,Java命名和目錄接口)是一組在Java應(yīng)用中訪問命名和目錄服務(wù)的API通過名稱將資源與服務(wù)進(jìn)行關(guān)聯(lián)JNDI的簡(jiǎn)單應(yīng)用應(yīng)用步驟修改Tomcatconfcontext.xml文件使用lookup()進(jìn)行查找 /javax.naming.Context提供了查找JNDI 的接口Context ctx = new InitialContext(); p/env/為前綴String testjndi = (String)ctx.lookup( p/env/tjndi);out.println(JNDI: +testjndi);初始化Context對(duì)象調(diào)用lookup()方法演示示例

3、:JNDI查找JNDI查找的名稱生活中的連接池普通電話 建立連接,等待回應(yīng)熱線電話 已建立連接連接已連接開始通話開始通話已連接,直接通話連接中傳統(tǒng)數(shù)據(jù)庫(kù)連接方式的不足每一次請(qǐng)求時(shí)均需要與數(shù)據(jù)庫(kù)進(jìn)行連接,資源占用較多當(dāng)并發(fā)訪問數(shù)量較大時(shí),網(wǎng)站速度收到極大影響在訪問結(jié)束后必須要關(guān)閉連接釋放資源系統(tǒng)的安全性和穩(wěn)定性相對(duì)較差為什么使用連接池2-1為什么使用連接池2-2 企業(yè)級(jí)開發(fā)需要穩(wěn)健和高效的數(shù)據(jù)訪問層完成對(duì)數(shù)據(jù)庫(kù)的CRUD操作能夠處理數(shù)據(jù)庫(kù)發(fā)生的各種錯(cuò)誤可以靈活的修改配置提供方便使用的工具高性能數(shù) 據(jù) 庫(kù)請(qǐng)求響應(yīng)操作結(jié)果要求高效、穩(wěn)健的數(shù)據(jù)訪問層打開連接,操作數(shù)據(jù)庫(kù),關(guān)閉連接多次重復(fù)操作傳統(tǒng)的JD

4、BC已經(jīng)無(wú)法滿足需求,那怎么辦呢?什么是連接池技術(shù)連接池 連接池是在內(nèi)存中預(yù)設(shè)好一定數(shù)量的連接對(duì)象,以備用戶在進(jìn)行數(shù)據(jù)庫(kù)操作時(shí)直接使用性能數(shù)據(jù)庫(kù)連接的建立、斷開均由管理池統(tǒng)一管理連接池技術(shù)與傳統(tǒng)數(shù)據(jù)庫(kù)連接的比較數(shù)據(jù)庫(kù)操作性能得到提升通過連接池管理數(shù)據(jù)庫(kù)的連接與釋放、提高了系統(tǒng)資源的使用效率連接池技術(shù)工作原理 連接池中的連接數(shù) 據(jù) 庫(kù)想要獲得連接返回一個(gè)連接返回一個(gè)已連接好的空閑連接應(yīng)用程序從連接池中獲得連接連接池是由容器提供的,用來(lái)管理池中連接對(duì)象應(yīng)用程序連接池Connection1Connection2Connection3數(shù)據(jù)源簡(jiǎn)介 數(shù)據(jù)源(DataSource)javax.sql.Dat

5、aSource接口負(fù)責(zé)建立與數(shù)據(jù)庫(kù)的連接從Tomcat的數(shù)據(jù)源獲得連接把連接保存在連接池中應(yīng)用程序Connection1Connection2Connection3數(shù) 據(jù) 庫(kù)想要獲得連接返回一個(gè)連接連接池連接池中的連接對(duì)象是由誰(shuí)創(chuàng)建的呢?訪問數(shù)據(jù)源4-1 如何獲得DataSource對(duì)象數(shù)據(jù)源由Tomcat提供,不能在程序中創(chuàng)建實(shí)例使用JNDI獲得DataSource引用應(yīng)用程序jdbc/s1jdbc/s2數(shù)據(jù)源數(shù)據(jù)源名稱Connectioncontext.lookup( jdbc/s1 ) import javax.naming.Context;import javax.naming.Ini

6、tialContext;import javax.naming.NamingException;import javax.sql.DataSource;public class TitlesBean public List getTitles() try Context ic = new InitialContext(); DataSource source = (DataSource)ic.lookup( p/env/jdbc/news); Connection connection = source.getConnection(); titlesQuery = connection.pre

7、pareStatement(SELECT * FROM titles ); ResultSet results = titlesQuery.executeQuery(); /為BookBean對(duì)象的屬性賦值,并添加到titlesList中 catch (SQLException exception) exception.printStackTrace(); catch (NamingException namingException) namingException.printStackTrace(); finally closeConn(); 使用JNDI和數(shù)據(jù)源要導(dǎo)入的包通過Context

8、、DataSource獲取Connection對(duì)象分為兩部分java:comp/env為JavaEE默認(rèn)路徑j(luò)dbc/news為DataSource名定義JNDI異常訪問數(shù)據(jù)源4-2演示示例:如何獲取數(shù)據(jù)源訪問數(shù)據(jù)源4-3 Tomcat的conf/context.xml中的配置屬性名稱說(shuō)明name指定Resource的JNDI名稱auth指定管理Resource的Manager(Container:由容器創(chuàng)建和管理|Application:由Web應(yīng)用創(chuàng)建和管理)type指定Resource所屬的Java類maxActive指定連接池中處于活動(dòng)狀態(tài)的數(shù)據(jù)庫(kù)連接的最大數(shù)目maxIdle指定連接池

9、中處于空閑狀態(tài)的數(shù)據(jù)庫(kù)連接的最大數(shù)目maxWait指定連接池中的連接處于空閑的最長(zhǎng)時(shí)間,超過這個(gè)時(shí)間會(huì)拋出異常,取值為-1,表示可以無(wú)限期等待 訪問數(shù)據(jù)源4-4 加入數(shù)據(jù)庫(kù)驅(qū)動(dòng)文件把數(shù)據(jù)庫(kù)驅(qū)動(dòng)的.jar文件,加入到Tomcat的commonlib中應(yīng)用程序的web.xml文件的配置在web.xml中配置 jdbc/news javax.sql.DataSource Container 指定JNDI的名字,與元素中的name一致指定引用資源的類名,與元素中的type一致指定管理所引用資源的Manager與元素中的auth一致指導(dǎo)使用連接池實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接 完成時(shí)間:20分鐘訓(xùn)練要點(diǎn):連接池的配置通

10、過JNDI查找數(shù)據(jù)源需求說(shuō)明:通過連接池方式訪問數(shù)據(jù)庫(kù)實(shí)現(xiàn)思路及關(guān)鍵代碼:配置context.xml文件配置web.xml文件編碼實(shí)現(xiàn)查找數(shù)據(jù)源獲取連接集成開發(fā)工具M(jìn)yEclipseMyEclipse簡(jiǎn)介Eclispe開發(fā)工具的擴(kuò)展豐富的JavaEE開發(fā)環(huán)境支持編碼、調(diào)試、測(cè)試、發(fā)布 創(chuàng)建Web項(xiàng)目步驟3-1創(chuàng)建項(xiàng)目選擇“菜單” “新建” “新建項(xiàng)目”創(chuàng)建Web項(xiàng)目步驟3-2創(chuàng)建Web工程在“新建項(xiàng)目” “MyEclipse” “Java Enterprise Project” “Web Project” MyEclipse應(yīng)用3-3創(chuàng)建Web工程確定項(xiàng)目名稱及項(xiàng)目根目錄項(xiàng)目名稱設(shè)置目錄指定項(xiàng)

11、目環(huán)境操作演示:創(chuàng)建Web工程Web項(xiàng)目的目錄結(jié)構(gòu)Web項(xiàng)目目錄結(jié)構(gòu)項(xiàng)目名稱存放項(xiàng)目源文件項(xiàng)目應(yīng)用的環(huán)境項(xiàng)目訪問的根目錄使用MyEclipse開發(fā)創(chuàng)建JSP頁(yè)面在“WebRoot”下右鍵“新建” “JSP”修改JSP頁(yè)面名稱修改頁(yè)面名稱JSP模板自帶內(nèi)容Web項(xiàng)目部署Web項(xiàng)目的部署啟動(dòng)部署選擇部署項(xiàng)目選擇服務(wù)器部署成功啟動(dòng)部署選擇項(xiàng)目選擇服務(wù)器指定部署項(xiàng)目的服務(wù)器發(fā)布成功運(yùn)行Web項(xiàng)目啟動(dòng)服務(wù)器控制臺(tái)信息啟動(dòng)服務(wù)器相關(guān)信息顯示生活中的組件開發(fā)小孩的積木 積木塊組裝成品JavaEE組件組件間協(xié)作應(yīng)用程序?yàn)槭裁葱枰狫avaBean2-1public int saveOrder(String us

12、ername,String zipcode,String phone, String creditcard,double total) try con = ConnectionManager.getConnction(); String strSql = insert into BookOrder(username,zipcode,phone, + creditcard,total) values(?,?,?,?,?); pStatement = con.prepareStatement(strSql); pStatement.setString(1, username); /設(shè)置其它參數(shù)值

13、result = pStatement.executeUpdate(); catch (SQLException sqlE) sqlE.printStackTrace(); return result;參數(shù)過多,且為對(duì)象屬性如何按照OO設(shè)計(jì)參數(shù)?使用JavaBean進(jìn)行參數(shù)的傳遞傳統(tǒng)處理處理的業(yè)務(wù)的弊端為什么需要JavaBean2-2JavaBean的優(yōu)勢(shì)解決代碼重復(fù)編寫,減少代碼冗余功能區(qū)分明確,避免業(yè)務(wù)邏輯處理與頁(yè)面顯示處理集中在一起造成混亂提高了代碼的維護(hù)性JavaBean及其分類符合規(guī)范的Java類都是JavaBeanJavaBean的分類封裝數(shù)據(jù)按照OO原則,屬性與數(shù)據(jù)庫(kù)表字段相對(duì)應(yīng)

14、屬性私有具有public的set/get方法封裝業(yè)務(wù)具有實(shí)現(xiàn)特定功能的方法和方法實(shí)現(xiàn)通常與一個(gè)封裝數(shù)據(jù)的JavaBean對(duì)應(yīng)封裝數(shù)據(jù)的JavaBean2-1public class Comment private String cid; / 用戶名 private String cnid; / 郵編 private String ccontent;/ 電話 public Comment () public void setCid(String cid) this. cid= cid; public String getCid() return cid; /其它屬性的setter、getter方

15、法將屬性聲明為私有屬性無(wú)參的公有構(gòu)造方法公有的設(shè)置屬性值方法setXxx( )公有的獲取屬性值方法getXxx( )封裝數(shù)據(jù)的JavaBean封裝數(shù)據(jù)的JavaBean2-2 使用Eclipse工具自動(dòng)生成getter/setter方法封裝業(yè)務(wù)的JavaBeanpublic class CommentControl public int getMaxId() int result = 0; try Connection con = ConnectionManager.getConnction(); String strSql = select max(cid) from comment ; P

16、reparedStatement pStatement = con.prepareStatement(strSql); ResultSet rs = pStatement.executeUpdate(); if(rs.next() result = rs.getInt(1)+1; catch (SQLException sqlE) sqlE.printStackTrace(); return result; 封裝獲取最大ID的方法 封裝業(yè)務(wù)的JavaBeanJavaBean的應(yīng)用/引入JavaBean/使用JavaBean在JSP頁(yè)面中導(dǎo)入JavaBeanJavaBean就像在Java程序中編

17、寫類,實(shí)例化后就可以使用其中的屬性和方法 指導(dǎo)實(shí)現(xiàn)首頁(yè)新聞列表顯示2-1訓(xùn)練要點(diǎn):使用JavaBean封裝業(yè)務(wù)邏輯使用JavaBean封裝業(yè)務(wù)數(shù)據(jù)JavaBean+JSP實(shí)現(xiàn)業(yè)務(wù)處理需求說(shuō)明:讀取新聞,在首頁(yè)列表顯示指導(dǎo)實(shí)現(xiàn)首頁(yè)新聞列表顯示2-2完成時(shí)間:20分鐘實(shí)現(xiàn)思路編寫業(yè)務(wù)Bean實(shí)現(xiàn)新聞查詢的方法在JSP頁(yè)面中調(diào)用JavaBean的方法共性問題集中講解常見調(diào)試問題及解決辦法代碼規(guī)范問題共性問題集中講解練習(xí)實(shí)現(xiàn)讀取單條新聞完成時(shí)間:20分鐘需求說(shuō)明:根據(jù)新聞編號(hào)讀取單條新聞并顯示實(shí)現(xiàn)思路獲取新聞的編號(hào)編寫按照編號(hào)查詢新聞的方法在JSP頁(yè)面中調(diào)用查詢方法練習(xí)實(shí)現(xiàn)對(duì)新聞發(fā)表評(píng)論完成時(shí)間:20分鐘需求說(shuō)明:瀏覽新聞時(shí)可以對(duì)新聞發(fā)表評(píng)論練習(xí)實(shí)現(xiàn)對(duì)新聞發(fā)表評(píng)論完成時(shí)間:20分鐘實(shí)現(xiàn)思路:瀏覽用戶如果以匿

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論