版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 第2頁版權(quán)所有者 西南財經(jīng)大學(xué)天府學(xué)院 楊大友 第3頁版權(quán)所有者 西南財經(jīng)大學(xué)天府學(xué)院 楊大友 Servlet是運行于J2EE平臺是Servlet容器中的一個小程序。它本質(zhì)上是一個擴展了J2EE Servlet接口一個類。Servlet對象的包括創(chuàng)建、請求處理、銷毀在內(nèi)的整個生命周期都由Servlet容器進(jìn)行管理。 請看生成第一個Servlet的整個過程。 第4頁版權(quán)所有者 西南財經(jīng)大學(xué)天府學(xué)院 楊大友 不存在完成實例化不可用提供服務(wù)初始化準(zhǔn)備接收請求銷毀第一次請求或容器啟動初始化響應(yīng)HTTP請求初始化失敗臨時或永久性失敗到期或容器關(guān)閉釋放實例引用 第5頁版權(quán)所有者 西南財經(jīng)大學(xué)天府學(xué)院 楊
2、大友 Servlet實例化生成Servlet類的一個實例,它完全由容器完成,不需要Servlet設(shè)計者干預(yù)。 初始化由容器調(diào)用Servlet的init方法完成,設(shè)計者可在此對Servlet設(shè)置初始狀態(tài)和分配相關(guān)的資源,如獲取數(shù)據(jù)庫連接等。 服務(wù)由容調(diào)用servlet service()方法或者doXXX()方法完成,容器將傳遞給它們兩個封裝好對象,用于和請求方交換信息。 銷毀時,容器會調(diào)用servlet destroy()方法完成,設(shè)計者可在此方法中做資源釋放和相關(guān)清理工作。 Servlet本身釋放和垃圾回收完全由容器進(jìn)行完成。 請看Servlet生命周期演示程序:ServletLifeCyc
3、le 第6頁版權(quán)所有者 西南財經(jīng)大學(xué)天府學(xué)院 楊大友 第7頁版權(quán)所有者 西南財經(jīng)大學(xué)天府學(xué)院 楊大友 用戶的請求參數(shù)可以從容器封裝好的HttpServletRequst對象中獲取用戶的請求參數(shù)。 獲取參數(shù)的方法常用的有:getParameter(String name);getParameterValues(String key);getParameterNames();getParameterMap() 使用方法請參考:ServletGetReqPara 可用ServletReqTest.htm測試ServletGetReqPara 第8頁版權(quán)所有者 西南財經(jīng)大學(xué)天府學(xué)院 楊大友 通過get
4、Parameter及類似的方法可以獲取客戶的請求參數(shù)。大部分業(yè)務(wù)處理依賴這些參數(shù)。 在某些特殊的情況下,我們需要知道請求的詳細(xì)信息,以下的方法可以幫助我們完成這些任務(wù)。 getPathInfo(); getPathTranslated(); getRequestURI(); getRequestURL(); getSerletPath(); getMethod(); 使用方法參考ServletReqOther 第9頁版權(quán)所有者 西南財經(jīng)大學(xué)天府學(xué)院 楊大友 可以用request對象的以下方法獲取用戶相關(guān)信息:getRemoteUser(); getRemoteAddr(); getRemote
5、Host(); 使用方法參考ServletReqUserInfo 第10頁版權(quán)所有者 西南財經(jīng)大學(xué)天府學(xué)院 楊大友 Servlet規(guī)范(什么是Java規(guī)范?其意義是什么?)為請求和檢索請求屬性提供了三種方法;它們是為請求對象附帶屬性;使用HttpSession; 和使用ServletContext。 操作Servlet屬性常用以下方法: public Object getAttribute(String name); public void setAttribute(String name, Object attr); public void removeAttribute(String na
6、me); public Enumeration getAttributeNames();使用方法見: ServletAttribue設(shè)置請求屬性的意義在于將請求傳遞給其它業(yè)務(wù)處理對象前增加新的參數(shù)(以后會進(jìn)一步討論)。 第11頁版權(quán)所有者 西南財經(jīng)大學(xué)天府學(xué)院 楊大友 第12頁版權(quán)所有者 西南財經(jīng)大學(xué)天府學(xué)院 楊大友 Import JDBC Packages Register the JDBC Drivers Open a Connection to a Database Create a Statement Object Execute a Query and Return a Result
7、 Set Object Process the Result Set Close the Result Set and Statement Objects Make Changes to the Database Commit Changes Close the Connection 第13頁版權(quán)所有者 西南財經(jīng)大學(xué)天府學(xué)院 楊大友 1. 3. Connection conn = DriverManager.getConnection (jdbc:oracle:thin:, , ); / open a connection4. Statement stmt = conn.createState
8、ment (); /create a statement object 5. ResultSet rset = stmt.executeQuery (SELECT ename FROM emp); /excute a SQL 6. rset.close(); stmt.close(); conn.close(); / Perform clearance 第14頁版權(quán)所有者 西南財經(jīng)大學(xué)天府學(xué)院 楊大友 從數(shù)據(jù)庫中取值: JDBCRetriveDB 直接書寫連接字符串會損害程序的可移植性和可維護(hù)性, 最好使用數(shù)據(jù)源的方式。數(shù)據(jù)源由容器管理,可以共享,維護(hù)相當(dāng)簡單。主要內(nèi)容包括定義數(shù)據(jù)源,檢索數(shù)據(jù)
9、源,使用數(shù)據(jù)源。定義數(shù)據(jù)源一般用開發(fā)工具進(jìn)行,也可以編輯相應(yīng)的定義文件。請看定義過程演示。數(shù)據(jù)源檢索與使用請參考JDBCDBSource. 第15頁版權(quán)所有者 西南財經(jīng)大學(xué)天府學(xué)院 楊大友 獲取數(shù)據(jù)表結(jié)構(gòu)信息:JDBCRetrieveMeta 向數(shù)據(jù)表中插入數(shù)據(jù):JDBCInsertData 刪除數(shù)據(jù):JDBCDeleteData 修改數(shù)據(jù):JDBCUpdateData 第16頁版權(quán)所有者 西南財經(jīng)大學(xué)天府學(xué)院 楊大友 第17頁版權(quán)所有者 西南財經(jīng)大學(xué)天府學(xué)院 楊大友 在“電子商務(wù)”或“電子政務(wù)”應(yīng)用系統(tǒng)中,保持用戶的狀態(tài)信息十分重要。 Http協(xié)議本身是一個非連接的協(xié)議,其自身不保持客戶狀態(tài)
10、信息。 Servlet一般采用HttpSession對象保持狀態(tài)信息。ServletLogin演示用戶登錄驗證和保持驗證結(jié)果的基本邏輯。ServletResource演示重要資源要求用戶登錄驗證后才能訪問的基本邏輯。請大家體會用戶狀態(tài)信息保持的基本思路。 HttpSession對象對瀏覽器的cookie有依賴,為了消除依賴可以用response對象的encodeURL方法對含有session ID的URL進(jìn)行編碼。請看改寫后的ServletLoginV2。為了使會話有效,后續(xù)的URL都要進(jìn)行編碼。 第18頁版權(quán)所有者 西南財經(jīng)大學(xué)天府學(xué)院 楊大友 會話生成:HttpServletRequest
11、.getSession(boolean create)會根據(jù)需要自動創(chuàng)建一個會話,這個會話將容器與客戶關(guān)聯(lián)起來。 getCreateTime()可以獲取會話創(chuàng)建的時間。 getLastAccessedTime()可以獲取最后一次會話的時間信息。 getMaxInactiveInterval()可以獲取會話的失效時間間隔。 setMaxInactiveInterval()可以設(shè)置會話失效的時間間隔。 invalidate()可以使會話立即失效。 isNew()可以判斷會話是否是新建立的。 ServletSessionLifeCycle演示會話生命周期各方法的使用。 第19頁版權(quán)所有者 西南財經(jīng)大
12、學(xué)天府學(xué)院 楊大友 每個Servlet都運行在一個Web應(yīng)用程序的環(huán)境中,Servlet可以通過ServletContext接口與Web應(yīng)用程序的環(huán)境交換信息,特別是獲取初始化信息。ServletContext中的Attributes也為Servlets間交換信息提供了一個途徑。ServletContext接口有以下常用方法: getInitParameter(String); getInitParameterNames(); getAttrbute(String); getAttributeNames(); setAttribute(String, Object); removeAttrib
13、ute(String); getNamedDispatcher(String); getRequestDispatcher(String); getResource(URL); log(String); log(String,throwable); 第20頁版權(quán)所有者 西南財經(jīng)大學(xué)天府學(xué)院 楊大友 應(yīng)用程序初始參數(shù)可用作可申明性的可配置信息,初始參數(shù)在web.xml中定義,獲取方法參見:ServletCtxInitPara ServletContext中的Attribute可以用作整個應(yīng)用程序共享信息的緩沖區(qū)域,一般操作方法如:ServletCtxAttrSet, ServletCtxAttr
14、Get log是記錄應(yīng)用程序重要事件的主要方法,它對應(yīng)用程序調(diào)試跟蹤起著非常重要的作用,一般使用方法如:ServletLog 第21頁版權(quán)所有者 西南財經(jīng)大學(xué)天府學(xué)院 楊大友 ServletConfig接口給我們提供了訪問一個Servlet初始化環(huán)境的一個入口。它的常用方法有:getInitParameter(String); getInitParameterNames(); getServletContext(); getServletName(); 使用方法參見:ServletConfigExample請注意Servlet初始化參數(shù)配置的位置。容器FilterServletsUser Re
15、questResponse to userSessionServletContext 第23頁版權(quán)所有者 西南財經(jīng)大學(xué)天府學(xué)院 楊大友 和Servlets小程序一樣,過濾器也是Web應(yīng)用程序的組件。它附加于特定申明的Web資源,當(dāng)用戶請求特定的資源(Servlets小程序可JSP頁面)時作為附加邏輯發(fā)揮作用。 過濾器常用于為Web應(yīng)用程序創(chuàng)建新功能,或處理Servlets都需完成的功能。 過濾器可以在請求抵達(dá)其相應(yīng)的Web資源前對請求進(jìn)行檢查和修改,也可以在Web資源生成了輸出之后對響應(yīng)信息進(jìn)行檢查和修改。 第24頁版權(quán)所有者 西南財經(jīng)大學(xué)天府學(xué)院 楊大友 public void init(F
16、ilterConfig config) throws ServletException public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException public void destroy() 這三個方法的作用與Servlets的init(), service(), destroy()十分相似。 第25頁版權(quán)所有者 西南財經(jīng)大學(xué)天府學(xué)院 楊大友 記錄每個用戶每次請求所用的時間。如用在Servlets內(nèi)部完成此功能,每個Servlet都要寫上一段代碼。用過濾器實現(xiàn)此功能是最簡單的。具體實現(xiàn)請參見ServletFilter1. 第26頁版權(quán)所有者 西南財經(jīng)大學(xué)天府學(xué)院 楊大友 處理Web應(yīng)用程序事件參見:ContextListener 一般來說可以在contextInitialized回調(diào)方法中處理整個應(yīng)用程序所需完成的初始化工作;在contextDestroyed回調(diào)方法中做進(jì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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東科學(xué)技術(shù)職業(yè)學(xué)院《醫(yī)學(xué)生物化學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東金融學(xué)院《農(nóng)業(yè)技術(shù)經(jīng)濟學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東環(huán)境保護(hù)工程職業(yè)學(xué)院《中學(xué)語文經(jīng)典新詩解讀》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東行政職業(yè)學(xué)院《護(hù)理學(xué)基礎(chǔ)實驗(1)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東工貿(mào)職業(yè)技術(shù)學(xué)院《大數(shù)據(jù)原理與技術(shù)課程設(shè)計》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東東軟學(xué)院《儒學(xué)與傳統(tǒng)文化》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東創(chuàng)新科技職業(yè)學(xué)院《軟件工程A》2023-2024學(xué)年第一學(xué)期期末試卷
- 《口腔護(hù)理崗前培訓(xùn)》課件
- 《流程圖的排版規(guī)則》課件
- 公證書 仲裁文書
- 2024年銷售員工年度工作總結(jié)
- 2024-2025學(xué)年廣東省深圳市南山區(qū)監(jiān)測數(shù)學(xué)三年級第一學(xué)期期末學(xué)業(yè)水平測試試題含解析
- 人工智能 課件 第五章 機器學(xué)習(xí)
- 2024-2025學(xué)年上學(xué)期杭州初中英語八年級期末試卷
- 【MOOC】人因工程學(xué)-東北大學(xué) 中國大學(xué)慕課MOOC答案
- 中考數(shù)學(xué)復(fù)習(xí)第二章方程(組)與不等式(組)第三節(jié)分式方程及其應(yīng)用課件
- 中國慢性阻塞性肺疾病基層診療指南(2024年)解讀
- 水肥一體化智能種植管理技術(shù)實施方案
- 《中華人民共和國學(xué)前教育法》專題培訓(xùn)
- 現(xiàn)場生命急救知識與技能學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 成人流行性感冒抗病毒治療專家共識(2022年)解讀
評論
0/150
提交評論