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

下載本文檔

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

文檔簡介

1、JSP應(yīng)用優(yōu)化第五章回顧及作業(yè)點評請描述什么是JSP內(nèi)置對象?列舉你知道的JSP內(nèi)置對象并說明其作用請描述一下Cookie與session的區(qū)別?請描述實現(xiàn)頁面訪問控制的工作流程?預(yù)習(xí)檢查什么是連接池?為什么要使用連接池?什么是JNDI?JNDI可以作什么?什么是JavaBean?在JSP中如何使用JavaBean?使用JNDI獲取數(shù)據(jù)源理解數(shù)據(jù)庫連接池使用JavaBean封裝業(yè)務(wù)邏輯本章任務(wù)會使用JNDI查找服務(wù)掌握數(shù)據(jù)庫連接池原理掌握J(rèn)avaBean的實際應(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的簡單應(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對象調(diào)用lookup()方法演示示例

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

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

5、aSource接口負(fù)責(zé)建立與數(shù)據(jù)庫的連接從Tomcat的數(shù)據(jù)源獲得連接把連接保存在連接池中應(yīng)用程序Connection1Connection2Connection3數(shù) 據(jù) 庫想要獲得連接返回一個連接連接池連接池中的連接對象是由誰創(chuàng)建的呢?訪問數(shù)據(jù)源4-1 如何獲得DataSource對象數(shù)據(jù)源由Tomcat提供,不能在程序中創(chuàng)建實例使用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對象的屬性賦值,并添加到titlesList中 catch (SQLException exception) exception.printStackTrace(); catch (NamingException namingException) namingException.printStackTrace(); finally closeConn(); 使用JNDI和數(shù)據(jù)源要導(dǎo)入的包通過Context

8、、DataSource獲取Connection對象分為兩部分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中的配置屬性名稱說明name指定Resource的JNDI名稱auth指定管理Resource的Manager(Container:由容器創(chuàng)建和管理|Application:由Web應(yīng)用創(chuàng)建和管理)type指定Resource所屬的Java類maxActive指定連接池中處于活動狀態(tài)的數(shù)據(jù)庫連接的最大數(shù)目maxIdle指定連接池

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

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

11、目環(huán)境操作演示:創(chuàng)建Web工程Web項目的目錄結(jié)構(gòu)Web項目目錄結(jié)構(gòu)項目名稱存放項目源文件項目應(yīng)用的環(huán)境項目訪問的根目錄使用MyEclipse開發(fā)創(chuàng)建JSP頁面在“WebRoot”下右鍵“新建” “JSP”修改JSP頁面名稱修改頁面名稱JSP模板自帶內(nèi)容Web項目部署Web項目的部署啟動部署選擇部署項目選擇服務(wù)器部署成功啟動部署選擇項目選擇服務(wù)器指定部署項目的服務(wù)器發(fā)布成功運行Web項目啟動服務(wù)器控制臺信息啟動服務(wù)器相關(guān)信息顯示生活中的組件開發(fā)小孩的積木 積木塊組裝成品JavaEE組件組件間協(xié)作應(yīng)用程序為什么需要JavaBean2-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ù)過多,且為對象屬性如何按照OO設(shè)計參數(shù)?使用JavaBean進(jìn)行參數(shù)的傳遞傳統(tǒng)處理處理的業(yè)務(wù)的弊端為什么需要JavaBean2-2JavaBean的優(yōu)勢解決代碼重復(fù)編寫,減少代碼冗余功能區(qū)分明確,避免業(yè)務(wù)邏輯處理與頁面顯示處理集中在一起造成混亂提高了代碼的維護(hù)性JavaBean及其分類符合規(guī)范的Java類都是JavaBeanJavaBean的分類封裝數(shù)據(jù)按照OO原則,屬性與數(shù)據(jù)庫表字段相對應(yīng)

14、屬性私有具有public的set/get方法封裝業(yè)務(wù)具有實現(xiàn)特定功能的方法和方法實現(xiàn)通常與一個封裝數(shù)據(jù)的JavaBean對應(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、法將屬性聲明為私有屬性無參的公有構(gòu)造方法公有的設(shè)置屬性值方法setXxx( )公有的獲取屬性值方法getXxx( )封裝數(shù)據(jù)的JavaBean封裝數(shù)據(jù)的JavaBean2-2 使用Eclipse工具自動生成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頁面中導(dǎo)入JavaBeanJavaBean就像在Java程序中編

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論