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

正文內(nèi)容

javaweb程序設(shè)計資料教案-資料下載頁

2025-04-16 12:31本頁面
  

【正文】 pecification Request,Java規(guī)范請求,指向JCP提出增加一個標準化技術(shù)規(guī)范請求)定義了Servlet ,JSR 154提出了Servlet ,直到2010年3月,推出了現(xiàn)行Servlet 。 獲取客戶端數(shù)據(jù)并寫入數(shù)據(jù)庫 任務(wù)描述與實現(xiàn)當前Web應(yīng)用程序,用戶信息注冊時最為廣泛的功能之一,下面以用戶信息注冊并寫入數(shù)據(jù)庫為例介紹使用JSP和Servlet結(jié)合完成信息注冊并保存在數(shù)據(jù)庫中,如圖6 6所示。3.創(chuàng)建Servlet。在Eclipse中添加Servlet,其中包名chapter6,類名為:RegistToDb,僅選擇doPost方法,在doPost方法中輸入代碼,詳細代碼見程序64所示。4.注意事項在這里要注意, 以上版本,@WebServlet(/chapter6/RegistToDb)修改Servlet訪問路徑,這里的路徑為/chapter6/RegistToDb。,servletmapping節(jié)中的urlpattern,修改為/chapter6/RegistToDb。 新知識點——Java Servlet工作過程1.Servlet的工作過程 Servlet為客戶端和服務(wù)器端信息的處理提供了一種“請求/應(yīng)答”模式機制。同時,Java的Servlet API 為客戶端和服務(wù)器之間的請求和應(yīng)答信息定義了標準接口。圖68描述了一個Servlet的工作過程:客戶端發(fā)送請求給服務(wù)器端; 服務(wù)器將請求信息發(fā)送至Servlet。Servlet生成響應(yīng)內(nèi)容并將其傳給服務(wù)器。響應(yīng)內(nèi)容動態(tài)生成,通常取決于客戶端的請求。服務(wù)器將應(yīng)答返回給客戶端。 Servlet看起來像是通常的Java程序,Servlet導(dǎo)入特定的屬于Java Servlet API的包。因為是對象字節(jié)碼,可動態(tài)地從網(wǎng)絡(luò)加載,可以說Servlet對Server就如同Applet對Client一樣,但是,由于Servlet運行于Server中,它們并不需要一個圖形用戶界面。從這個角度講,Servlet也被稱為FacelessObject。一個Servlet就是Java編程語言中的一個類,它被用來擴展服務(wù)器的性能,服務(wù)器上駐留著可以通過“請求響應(yīng)”編程模型來訪問的應(yīng)用程序。雖然Servlet可以對任何類型的請求產(chǎn)生響應(yīng),但通常只用來擴展Web服務(wù)器的應(yīng)用程序。2.Servlet的生命周期通過Servlet的工作過程,我們可以看出, 客戶端的程序并不是直接與Servlet進行通信,而是通過Web服務(wù)器和其他應(yīng)用服務(wù)器來完成的。,類似一個Java ,只不過Servlet運行在服務(wù)器端而已,需要支持Servlet的服務(wù)器完成對Servlet的初始化,Servlet生命周期如圖69所示。Servlet的生命周期由Servlet容器來控制,主要有初始化、運行和銷毀三個過程來完成, (1)初始化Servlet,Servlet第一次被請求加載時,服務(wù)器創(chuàng)建一個Servlet對象,Servlet容器調(diào)用Servlet對象的init方法進行初始化。(2)運行Servlet,創(chuàng)建的Servlet對象根據(jù)客戶端的請求,調(diào)用 Service 方法響應(yīng)客戶端的請求。(3)銷毀Servlet,當Web應(yīng)用被終止時,Servlet容器會先調(diào)用Servlet對象的destrory方法,然后再銷毀Servlet對象,釋放Servlet對象占用的資源。在Servlet生命周期中,Servlet的初始化和和銷毀階段只會發(fā)生一次,而service方法執(zhí)行的次數(shù)則取決于客戶端的請求次數(shù)。3.Servlet核心類HTTP Servlet 使用一個HTML 表單來發(fā)送和接收數(shù)據(jù)。要創(chuàng)建一個 HTTP Servlet,請擴展HttpServlet 類,該類是用專門的方法來處理 HTML 表單的 GenericServlet 的一個子類。 HTML 表單是由 form 和 /form 標記定義的。表單中典型地包含輸入字段(如文本輸入字段、復(fù)選框、單選按鈕和選擇列表)和用于提交數(shù)據(jù)的按鈕。當提交信息時,它們還指定服務(wù)器應(yīng)執(zhí)行哪一個Servlet(或其它的程序)。 HttpServlet 類包含 init()、destroy()、service() 等方法。其中 init() 和 destroy() 方法是繼承的。(1)GenericServlet類GetnericServlet類定義了一個普通的、依賴于協(xié)議的Servlet,如果要寫一個用于Web的HTTP Servlet,擴展HpptServlet。一個Servlet可以直接擴展GenericServlet類(擴展一個指定協(xié)議的子類(如HttpServlet)更為普遍)。GenericServlet類使編寫Servlets變得更容易。它提供了一般版本的生命周期方法:inin(),destroy()和來自ServletConfig接口的方法。GenericServlet類也實現(xiàn)了log()方法,這是一個在ServletContext類中定義的方法。 擴展——JavaServlet接口1.Servlet接口,所有的Servlet都必須實現(xiàn)這一接口。在Servlet接口中定義了5個方法。這些方法的功能及使用方法如下: (1) init() 方法在 Servlet 的生命期中,僅執(zhí)行一次 init() 方法。它是在服務(wù)器裝入 Servlet 時執(zhí)行的??梢耘渲梅?wù)器,以在啟動服務(wù)器或客戶機首次訪問 Servlet時裝入Servlet。無論有多少客戶機訪問Servlet,都不會重復(fù)執(zhí)行init()。缺省的 init() 方法通常是符合要求的,但也可以用定制 init() 方法來覆蓋它,典型的是管理服務(wù)器端資源。例如,可能編寫一個定制 init() 來只用于一次裝入 GIF 圖像,改進 Servlet 返回 GIF 圖像和含有多個客戶機請求的性能。另一個示例是初始化數(shù)據(jù)庫連接。缺省的 init() 方法設(shè)置了Servlet 的初始化參數(shù),并用它的 ServletConfig 對象參數(shù)來啟動配置, 因此所有覆蓋 init() 方法的Servlet 應(yīng)調(diào)用 () 以確保仍然執(zhí)行這些任務(wù)。在調(diào)用 service() 方法之前,應(yīng)確保已完成了init() 方法。(2) service() 方法service() 方法是 Servlet 的核心。每當一個客戶請求一個HttpServlet 對象,該對象的service() 方法就要被調(diào)用,而且傳遞給這個方法一個“請求”(ServletRequest)對象和一個“響應(yīng)”(ServletResponse)對象作為參數(shù)。在 HttpServlet 中已存在 service() 方法。缺省的服務(wù)功能是調(diào)用與 HTTP 請求的方法相應(yīng)的 do 功能。例如, 如果 HTTP 請求方法為 GET,則缺省情況下就調(diào)用 doGet() 。Servlet 應(yīng)該為 Servlet 支持的 HTTP 方法覆蓋 do 功能。因為 () 方法會檢查請求方法是否調(diào)用了適當?shù)奶幚矸椒?,不必要覆蓋 service() 方法。只需覆蓋相應(yīng)的 do 方法就可以了。Servlet的響應(yīng)可以是下列幾種類型: 一個輸出流,瀏覽器根據(jù)它的內(nèi)容類型(如text/HTML)進行解釋。一個HTTP錯誤響應(yīng), 重定向到另一個URL、servlet、JSP。(3)doGet()方法當一個客戶通過HTML 表單發(fā)出一個HTTP GET請求或直接請求一個URL時,doGet()方法被調(diào)用。與GET請求相關(guān)的參數(shù)添加到URL的后面,并與這個請求一起發(fā)送。當不會修改服務(wù)器端的數(shù)據(jù)時,應(yīng)該使用doGet()方法。(4)doPost()方法當一個客戶通過HTML 表單發(fā)出一個HTTP POST請求時,doPost()方法被調(diào)用。與POST請求相關(guān)的參數(shù)作為一個單獨的HTTP 請求從瀏覽器發(fā)送到服務(wù)器。當需要修改服務(wù)器端的數(shù)據(jù)時,應(yīng)該使用doPost()方法。 (5) destroy() 方法destroy() 方法僅執(zhí)行一次,即在服務(wù)器停止且卸裝Servlet 時執(zhí)行該方法。將 Servlet 作為服務(wù)器進程的一部分來關(guān)閉。缺省的 destroy() 方法通常是符合要求的,但也可以覆蓋它,典型的是管理服務(wù)器端資源。例如,如果 Servlet 在運行時會累計統(tǒng)計數(shù)據(jù),則可以編寫一個 destroy() 方法,該方法用于在未裝入 Servlet 時將統(tǒng)計數(shù)字保存在文件中。另一個示例是關(guān)閉數(shù)據(jù)庫連接。當服務(wù)器卸裝 Servlet 時,將在所有 service() 方法調(diào)用完成后,或在指定的時間間隔過后調(diào)用destroy() 方法。一個Servlet 在運行service() 方法時可能會產(chǎn)生其它的線程,因此請確認在調(diào)用destroy() 方法時,這些線程已終止或完成。(6) GetServletConfig()方法GetServletConfig()方法返回一個 ServletConfig 對象,該對象用來返回初始化參數(shù)和ServletContext。ServletContext 接口提供有關(guān)servlet 的環(huán)境信息。(7) GetServletInfo()方法GetServletInfo()方法是一個可選的方法,它提供有關(guān)servlet 的信息,如作者、版本、版權(quán)。當服務(wù)器調(diào)用Servlet 的Service()、doGet()和doPost()這三個方法時,均需要“請求”和“響應(yīng)”對象作為參數(shù)?!罢埱蟆睂ο筇峁┯嘘P(guān)請求的信息,而“響應(yīng)”對象提供了一個將響應(yīng)信息返回給瀏覽器的一個通信途徑。2.ServletRequest接口ServletRequest接口封裝了客戶端請求的細節(jié)。它與協(xié)議無關(guān),并有一個指定HTTP的子接口。ServletRequest主要處理: 找到客戶端的主機名和IP地址檢索請求參數(shù) 取得和設(shè)置屬性 取得輸入和輸出流 處理服務(wù)器響應(yīng) 任務(wù)描述與實現(xiàn)用戶登錄是Web應(yīng)用程序開發(fā)最常見的功能之一,登錄過程為:首先獲取用戶輸入的用戶名或密碼,然后在數(shù)據(jù)庫中比對,查找相匹配用戶信息,成功則保存會話,并跳轉(zhuǎn)到對應(yīng)頁面,否則提示用戶名密碼錯誤。 新知識點——Servlet中會話存儲、重定向到JSP頁面1.會話跟蹤Servlet API提供了一種簡單而又高效的模型來跟蹤會話信息。在Web服務(wù)器看來,一個會話是由在一次瀏覽過程中所發(fā)出的全部HTML請求組成的。換句話說,一次會話是從你打開瀏覽器開始到你關(guān)閉瀏覽器結(jié)束。會話跟蹤的第一個障礙就是如何惟一標識每一個客戶會話。這只能通過為每一個客戶分配一個某種標識,并將這些標識保存在客戶端上,以后客戶端發(fā)給服務(wù)器的每一個HTML請求都提供這些標識來實現(xiàn)。Servlet中使用HttpservletRequest對象的getSession方法來取得當前的用戶會話。getSession的 參數(shù)決定了如果會話尚不存在,getSession是否創(chuàng)建一個新會話。還有一個版本的getSession沒有任何參數(shù),它將缺省地創(chuàng)建一個新會話。當一個新用戶第一次調(diào)用Servlet引擎時,這將會強制產(chǎn)生一個新的會話。請注意,我是說Servlet引擎而不是某一個Servlet。所有的會話數(shù)據(jù)都是由Servlet引擎來維護的,并且在Servlet之間共享。這樣你就可以使用一組Servlet一起為一個客戶會話服務(wù)了。另外,Servlet API規(guī)范上指出:“為了確保會話被正確維護,Servlet的開發(fā)都必須在提交應(yīng)答之前調(diào)用getSession方法。”這正是說,在向應(yīng)答的輸出流中寫入之前,你一定要調(diào)用getSession方法。一旦你獲得了會話對象,它工作起來就像標準Java的哈希表或字典一樣。使用一個惟一的鍵,你可以在會話對象中加入或者獲取任何對象。由于會話數(shù)據(jù)是由Servlet引擎維護存儲的,你在為這些鍵賦值時一定要注意維護它的惟一性。我建議將Servlet的名字甚至它的包名作為鍵的一部分,這樣你就不會不小心修改其他Servlet設(shè)置的鍵值了。2.Servlet中會話存儲我們知道Web應(yīng)用是基于HTTP協(xié)議的,而HTTP協(xié)議恰恰是一種無狀態(tài)協(xié)議,為解決這個矛盾,Session由此產(chǎn)生。既然Web應(yīng)用并不了解有關(guān)同一用戶以前請求的信息,那么解決這個問題的一個辦法是使用Servlet/JSP容器提供的會話跟蹤功能,Servlet API規(guī)范定義了一個簡單的HttpSession接口,通過它我們可以方便地實現(xiàn)會話跟蹤。HttpSession接口提供了存儲和返回標準會話屬性的方法。標準會話屬性如會話標識符、應(yīng)用數(shù)據(jù)等,都以“名字值”對的形式保存。簡而言之,HttpSession接口提供了一種把對象保存到內(nèi)存、在同一用戶的后繼請求中提取這些對象的標準辦法。在會話中保存數(shù)據(jù)的方法是setAttribute(String s, Object o),從會話提取原來所保存對象的方法是getAttribute(String s)。在服務(wù)器端,每當新用戶請求一個使用了HttpSession對象的JSP頁面,Servlet/JSP容器除了發(fā)回應(yīng)答頁面之外,它還要向瀏覽器發(fā)送一個特殊的數(shù)字。這個特殊的數(shù)字稱為“會話標識符”,它是一個唯一的用戶標識符。此后,HttpSession對象就駐留在內(nèi)存之中(這當然是在服務(wù)器端),等待同一用戶返回時再次調(diào)用它的方法。在客戶端,瀏覽器保存會話標識符,并在每一個后繼請求中把這個會話標識符發(fā)送給服務(wù)器。會話標識符告訴JSP容器當前請求不是用戶發(fā)出的第一個請求,服務(wù)器以前已經(jīng)為該用戶創(chuàng)建了HttpSession對象。此時,JSP容器不再為用戶創(chuàng)建新的HttpSession對象,而是尋找具有相同會話標識符的HttpSession對象,然后建立該HttpSession對象和當前請求的關(guān)聯(lián)。3.Servlet重定向到JSP頁面重定向技術(shù)可以分為兩類,一類是客戶端重定向,一類是服務(wù)器端重定向??蛻舳酥囟ㄏ蚩梢酝ㄟ^設(shè)置特定的HTTP頭,或者寫JavaScript腳本實現(xiàn)。 擴展——J
點擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1