Java Web應(yīng)用開發(fā)任務(wù)式教程(慕課版)課件全套 1-8 單元1 Java Web應(yīng)用開發(fā)入門 - 單元8 某商城系統(tǒng)的設(shè)計與實現(xiàn)_第1頁
Java Web應(yīng)用開發(fā)任務(wù)式教程(慕課版)課件全套 1-8 單元1 Java Web應(yīng)用開發(fā)入門 - 單元8 某商城系統(tǒng)的設(shè)計與實現(xiàn)_第2頁
Java Web應(yīng)用開發(fā)任務(wù)式教程(慕課版)課件全套 1-8 單元1 Java Web應(yīng)用開發(fā)入門 - 單元8 某商城系統(tǒng)的設(shè)計與實現(xiàn)_第3頁
Java Web應(yīng)用開發(fā)任務(wù)式教程(慕課版)課件全套 1-8 單元1 Java Web應(yīng)用開發(fā)入門 - 單元8 某商城系統(tǒng)的設(shè)計與實現(xiàn)_第4頁
Java Web應(yīng)用開發(fā)任務(wù)式教程(慕課版)課件全套 1-8 單元1 Java Web應(yīng)用開發(fā)入門 - 單元8 某商城系統(tǒng)的設(shè)計與實現(xiàn)_第5頁
已閱讀5頁,還剩468頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

單元1

JavaWeb應(yīng)用開發(fā)入門《JavaWeb應(yīng)用開發(fā)》單元4EL表達(dá)式和JSTL標(biāo)簽庫《JavaWeb應(yīng)用開發(fā)》了解C/S和B/S架構(gòu)的區(qū)別了解HTTP協(xié)議以及HTTP與TCP/IP的關(guān)系掌握XML的基本語法熟悉Tomcat目錄結(jié)構(gòu)熟悉軟件項目開發(fā)的流程知識目標(biāo)能夠下載、安裝、配置Tomcat能夠使用Eclipse搭建Web開發(fā)環(huán)境能夠熟練使用IDEA搭建Web開發(fā)環(huán)境能夠正確安裝、配置Maven,并使用Maven創(chuàng)建Web項目能夠?qū)δ成坛窍到y(tǒng)的功能模塊進行分析能夠?qū)δ成坛窍到y(tǒng)的數(shù)據(jù)庫進行設(shè)計并繪制E-R圖能力目標(biāo)培養(yǎng)學(xué)生自主學(xué)習(xí)的能力培養(yǎng)學(xué)生具備良好的職業(yè)道德培養(yǎng)學(xué)生較強的社會責(zé)任心和使命感素質(zhì)目標(biāo)學(xué)習(xí)目標(biāo)Web開發(fā)基礎(chǔ)知識任務(wù)1.1任務(wù)描述和技術(shù)分析5技術(shù)分析任務(wù)描述web.xml是JavaWeb應(yīng)用程序中用于配置應(yīng)用程序的重要文件,它位于Web應(yīng)用程序的WEB-INF目錄下,并且包含了用于初始化應(yīng)用程序的參數(shù)和設(shè)置,以及部署描述符等信息。本任務(wù)將完成某商城系統(tǒng)的web.xml配置文件的編寫。首先了解常見的軟件系統(tǒng)體系結(jié)構(gòu)以及用于規(guī)范瀏覽器與服務(wù)器交互的HTTP協(xié)議,在Web應(yīng)用的發(fā)展歷程中所扮演的重要角色。有了Web應(yīng)用開發(fā)的基礎(chǔ)知識后,再來熟悉XML文件的基本格式和語法規(guī)范,最后熟悉web.xml中各個元素的含義,并能正確編寫某商城系統(tǒng)的配置文件web.xml。支撐知識--C/S與B/S/01

C/S(Client/Server)架構(gòu)指的是客戶端/服務(wù)器體系架構(gòu),是計算機軟件協(xié)同工作的一種模式。C/S架構(gòu)中的服務(wù)器是多個用戶共享的信息與功能,執(zhí)行后臺服務(wù),負(fù)責(zé)數(shù)據(jù)的管理,如控制共享數(shù)據(jù)庫的操作等;客戶端是用戶運行應(yīng)用程序的PC端或工作站,負(fù)責(zé)執(zhí)行前臺功能,完成與用戶的交互任務(wù)。C/S架構(gòu)客戶端進程包含特定于解決方案的邏輯,并提供用戶與應(yīng)用程序系統(tǒng)其余部分之間的接口。服務(wù)器進程充當(dāng)管理共享資源(如數(shù)據(jù)庫、打印機、調(diào)制解調(diào)器或高性能處理器)的軟件引擎。01客戶端和服務(wù)器的硬件平臺和操作系統(tǒng)通常不相同。客戶端和服務(wù)器進程通過一組明確定義的標(biāo)準(zhǔn)應(yīng)用程序接口(API)和RPC進行通信。03前端任務(wù)和后端任務(wù)對計算資源有著根本不同的要求,例如處理器速度、內(nèi)存、磁盤速度和容量及輸入/輸出設(shè)備。02可擴展性,可以水平或垂直縮放。水平擴展意味著添加或刪除客戶端、工作站,只會對性能產(chǎn)生輕微影響。垂直擴展意味著遷移到更大更快的服務(wù)器或多服務(wù)器中。04C/S架構(gòu)-特點C/S架構(gòu)-類型12兩層架構(gòu)兩層架構(gòu)的前端是客戶端,主要完成用戶界面顯示,接受數(shù)據(jù)輸入,校驗數(shù)據(jù)有效性,向后臺數(shù)據(jù)庫發(fā)請求,接受返回結(jié)果,處理應(yīng)用邏輯;后端是服務(wù)器,數(shù)據(jù)庫存儲在服務(wù)器上,運行DBMS(數(shù)據(jù)庫管理系統(tǒng)),提供數(shù)據(jù)庫的查詢和管理。三層架構(gòu)三層架構(gòu)利用中間件將應(yīng)用分為表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)存儲層等3個層次??蛻舳苏埱笸ㄟ^中間層進入服務(wù)器,服務(wù)器的響應(yīng)首先由中間件接收,再返回到客戶端。中間件存儲所有業(yè)務(wù)邏輯和數(shù)據(jù)通道邏輯,中間件提高了靈活性并提供了最佳性能。B/S(Browser/Server,瀏覽器/服務(wù)器)架構(gòu),是對C/S架構(gòu)的一種改進,客戶端不需要開發(fā)專門的用戶界面,也無須安裝專門的客戶端程序,是Web興起后的一種網(wǎng)絡(luò)結(jié)構(gòu)模式。

在B/S架構(gòu)中,Web瀏覽器是客戶端最主要的應(yīng)用軟件,這種模式統(tǒng)一了客戶端,將系統(tǒng)功能實現(xiàn)的核心部分集中到服務(wù)器上,客戶機上只需要安裝一個瀏覽器,服務(wù)器上安裝SQLServer、Oracle、MySQL等數(shù)據(jù)庫,通過Web瀏覽器向Web服務(wù)器發(fā)送請求,服務(wù)器接受用戶請求并做出響應(yīng),并將處理結(jié)果傳回至用戶的瀏覽器。

與C/S架構(gòu)相比,B/S架構(gòu)中用戶操作的界面是由Web服務(wù)器創(chuàng)建的,當(dāng)需要修改用戶界面時,只修改服務(wù)器端相應(yīng)的網(wǎng)頁文檔即可。B/S架構(gòu)支撐知識—HTTP協(xié)議/02HTTP(HyperTextTransferProtocol,超文本傳輸協(xié)議)是瀏覽器與服務(wù)器的交互要遵循的通信規(guī)則。它定義了瀏覽器向服務(wù)器請求文檔、服務(wù)器將文檔傳送給瀏覽器的通信規(guī)則,是Web數(shù)據(jù)通信的重要基礎(chǔ)。HTTP是一種基于請求與響應(yīng),無狀態(tài)的,應(yīng)用層的協(xié)議。當(dāng)客戶端與服務(wù)器建立TCP連接后,就可以利用HTTP向服務(wù)器發(fā)送請求(稱為HTTP請求),服務(wù)器在接收到請求后會做出響應(yīng)(稱為HTTP響應(yīng))。HTTP協(xié)議HTTP協(xié)議請求方式HTTP協(xié)議定義了一系列的請求方法,如GET、POST、PUT、DELETE等,用于告知服務(wù)器進行何種操作。請求和響應(yīng)格式HTTP協(xié)議規(guī)定了請求消息和響應(yīng)消息的格式。請求消息由請求行、請求頭部和請求正文組成,而響應(yīng)消息由狀態(tài)行、響應(yīng)頭部和響應(yīng)正文組成。狀態(tài)碼HTTP協(xié)議定義了一系列的狀態(tài)碼,用于表示服務(wù)器對請求的處理結(jié)果。例如,200表示成功、404表示資源未找到、500表示服務(wù)器內(nèi)部錯誤等。頭部信息HTTP協(xié)議通過頭部字段來攜帶各種元數(shù)據(jù),例如Content-Type用于指示請求或響應(yīng)的數(shù)據(jù)類型,Content-Length表示消息正文的長度等。HTTP協(xié)議與TCP/IP的區(qū)別

TCP/IP(TransmissionControlProtocol/InternetProtocol,傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議)是互聯(lián)網(wǎng)協(xié)議集合,瀏覽器和服務(wù)器均使用其來連接因特網(wǎng)。TCP/IP層次模型分為4層:應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、網(wǎng)絡(luò)接口層。HTTP

是基于TCP/IP的應(yīng)用層協(xié)議,是Web中的核心協(xié)議。TCP/IPHTTP支撐知識—XML基礎(chǔ)/03XML(eXtensibleMarkupLanguage,可擴展的標(biāo)記語言)用于提供數(shù)據(jù)描述格式,適用于不同應(yīng)用程序之間的數(shù)據(jù)交換,沒有規(guī)定的標(biāo)簽體,需要自定義標(biāo)簽,也是一種自我描述的語言,可以存儲數(shù)據(jù)和共享數(shù)據(jù)。在JavaWeb應(yīng)用程序中,XML主要用于描述配置信息。XML基礎(chǔ)定義一個用戶的基本信息,包括姓名、年齡、性別、地址、職業(yè)等內(nèi)容。<?xmlversion="1.0"encoding="UTF-8"?><user> <name>張華</name> <age>25</age> <sex>女</sex> <address>江蘇省常州市</address> <occupation>軟件工程師</occupation></user> XML基礎(chǔ)-例1-1<?xmlversion="1.0"encoding="UTF-8"?><user> <propertyname="name"value="張華"/> <propertyage="age"value=25/> <propertysex="sex"value="女"/> <propertyaddress="address"value="江蘇省常州市"/> <propertyoccupation="occupation"value="軟件工程師"/></user> XML基礎(chǔ)-文檔基本結(jié)構(gòu)18數(shù)據(jù)主體前導(dǎo)聲明(1)version標(biāo)識XML版本號(2)encoding表示文檔使用的字符編碼格式(3)standalone表示文檔是否依賴外部文件,若為獨立運行,則設(shè)置值為"yes",若要引入其他文件則設(shè)置值為"no"。<?xmlversion="XML版本編號"encoding="中文編碼"standalone="是否獨立運行"?>(1)數(shù)據(jù)可以通過元素和屬性兩種形式描述。(2)數(shù)據(jù)主體必須有且只有一個根節(jié)點,其他的數(shù)據(jù)要在根節(jié)點之中進行定義。(3)每一個元素可以包含若干屬性定義,多個屬性使用空格分隔,屬性值通常用雙引號括起來數(shù)據(jù)主體用于描述具體的數(shù)據(jù)內(nèi)容,可以由開發(fā)者根據(jù)需要動態(tài)擴充元素。示例:<?xmlversion="1.0"encoding="UTF-8"?>定義兩個用戶<?xmlversion="1.0"encoding="UTF-8"?><users><!--定義根元素--> <user

id="101"> <!--定義子元素,可定義屬性--> <name>張華</name> <age>25</age> <sex>女</sex> <address>江蘇省常州市</address> <occupation>軟件工程師</occupation> </user><!--子元素結(jié)束--><user

id="102"> <name>周立軍</name> <age>31</age> <sex>男</sex> <address>上海市</address> <occupation>系統(tǒng)分析師</occupation> </user></users> XML基礎(chǔ)-例1-2XML元素是指成對標(biāo)簽出現(xiàn)的內(nèi)容,且每個元素之間有層級關(guān)系。元素的命名規(guī)則如下:01可以含字母、數(shù)字以及其他字符02不能以數(shù)字或者標(biāo)點符號開頭,不能包含空格03不能以xml開頭,包括其大小寫,例如XML、Xml等都是不合法的04可使用任何名稱,沒有保留的字詞,但盡量做到見名知義05盡量避免使用“-”“,”和“:”,可以使用下劃線XML基礎(chǔ)-XML元素示例:<3note><xmlName><stu

No><.sex>等名稱都是不合法的。XML基礎(chǔ)-根元素<?xmlversion="1.0"encoding="UTF-8"?><根元素>

<子元素1>內(nèi)容</子元素1> <子元素2attribute="value">內(nèi)容</子元素2></根元素>每個有效的XML文檔有且只有一個根元素來定義整個文檔,根元素是整個XML文檔的起始和終止標(biāo)簽,完全包含文檔中的其他所有元素,根元素的開始標(biāo)簽放在所有其他元素的開始標(biāo)簽之前,而結(jié)束標(biāo)簽放在所有其他元素的結(jié)束標(biāo)簽之后。XML基礎(chǔ)-XML屬性XML元素可以在開始標(biāo)簽中包含屬性,屬性提供關(guān)于元素的附加信息,它被定義在XML元素的標(biāo)簽中,由名稱和值組成,名稱和值之間使用“=”賦值,且值本身通常用雙引號括起來,屬性的命名規(guī)則與元素的命名規(guī)則一致。如:<userid="101">,id是一個屬性,其值為101XML基礎(chǔ)-注釋

注釋可以提高代碼的可讀性和可維護性。注釋可以包含任何文本,包括特殊字符和標(biāo)簽。<!--單行注釋-->或<!--多行注釋-->注釋格式XML基礎(chǔ)-文檔使用規(guī)則XML文檔對大小寫是敏感的,包括其標(biāo)簽名稱、屬性名和屬性值等。例如,<age>和<AGE>是不同的。元素的嵌套必須合理,不能有相互交叉和重疊,如以下嵌套是不合理的:<age>25<sex></age>女</sex>除XML前導(dǎo)聲明外,所有元素都必須有結(jié)束標(biāo)識,如:<age>25</age>。若XML元素沒有數(shù)據(jù)內(nèi)容時,則必須采用自閉合的方式關(guān)閉節(jié)點,如:<note/>。大小寫敏感標(biāo)記須閉合嵌套須合理為了保持XML文檔的可讀性和可維護性,建議遵循以下規(guī)則。01使用有意義的元素名稱:為每個元素選擇有意義的名稱,以便于理解和解釋02保持元素名稱的一致性:在文檔中使用一致的命名約定,以提高可讀性03避免不必要的嵌套:盡量減少不必要的嵌套,使文檔結(jié)構(gòu)更加簡潔明了04使用注釋和文檔:為XML文檔添加注釋和文檔,以幫助理解和維護XML基礎(chǔ)-文檔使用規(guī)則任務(wù)實現(xiàn)任務(wù)web.xml是JavaWeb應(yīng)用程序中用于配置應(yīng)用程序的重要文件,它位于Web應(yīng)用程序的WEB-INF目錄下。某商城系統(tǒng)的web.xml任務(wù)實現(xiàn)-web.xml配置項Servlet配置可以指定Servlet的初始化參數(shù)、Servlet映射路徑等。01上下文參數(shù)可以在web.xml中設(shè)置應(yīng)用程序的上下文參數(shù),這些參數(shù)可以在整個應(yīng)用程序中使用。05Listener配置監(jiān)聽器Listener用于監(jiān)聽特定的事件,可以指定監(jiān)聽器的類名和事件類型。03Filter配置過濾器Filter用于攔截請求和響應(yīng),可以在web.xml中配置Filter的初始化參數(shù)和過濾路徑。02錯誤頁面配置可以指定應(yīng)用程序中發(fā)生錯誤時顯示的頁面。04安全配置通過在web.xml中配置安全相關(guān)的元素,可以指定安全約束、安全角色和安全設(shè)置等。06任務(wù)實現(xiàn)-web.xml加載過程ServletContext①啟動Web應(yīng)用時,Tomcat容器讀取web.xml文件中的<listener>和<context-param>兩個節(jié)點;②容器創(chuàng)建一個ServletContext(Servlet上下文);③容器以<context-param>的name作為鍵,value作為值,將其轉(zhuǎn)化為鍵值對,存入ServletContext;④容器創(chuàng)建<listener>中的類實例,根據(jù)配置的class類路徑<listener-class>來創(chuàng)建監(jiān)聽,在監(jiān)聽中會有contextInitialized(ServletContextEventargs)初始化方法,啟動Web應(yīng)用時,系統(tǒng)調(diào)用listener的該方法;⑤容器初始化<filter>,web.xml中可以定義多個filter,按照filter配置節(jié)出現(xiàn)的順序來初始化各個filter,當(dāng)請求資源匹配多個filter-mapping時,filter攔截資源是按照filter-mapping配置節(jié)出現(xiàn)的順序來依次調(diào)用doFilter方法的;⑥容器初始化<servlet>,servlet同filter類似。context-paramlistenerservletfilter任務(wù)實現(xiàn)-web.xml的根元素web.xml的模式文件是由Sun公司定義的,每個web.xml文件的根元素為<web-app>,在根元素中必須標(biāo)明此web.xml使用的是哪個模式文件。<?xmlversion="1.0"encoding="UTF-8"?><web-appxmlns=/xml/ns/javaeexmlns:xsi=/2001/XMLSchema-instancexsi:schemaLocation=/xml/ns/javaee/xml/ns/javaee/web-app_4_0.xsdversion="4.0"></web-app>xmlns以及xmlns:xsi后?引進的鏈接是表明web.xml引進的模式?件,引進后即可擁有該模式的相關(guān)功能。<display-name>xmall</display-name><description>JavaWebProject</description><icon> <small-icon>/images/small.gif</small-icon> <large-icon>/images/large.gif</large-icon></icon> <description>元素對項目做出描述。<description><display-name><icon>元素<display-name>元素定義項目的名稱。<icon>元素包含small-icon和large-icon兩個子元素,用來指定Web網(wǎng)站中小圖標(biāo)和大圖標(biāo)的路徑。<small-icon>元素指向Web網(wǎng)站中某個小圖標(biāo)的路徑,大小為16×16像素,必須為GIF或JPEG格式。<large-icon>元素指向Web網(wǎng)站中某個大圖標(biāo)的路徑,大小為32×32像素,必須為GIF或JPEG格式。任務(wù)實現(xiàn)-web.xml的元素<context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/applicationContext.xml</param-value></context-param><context-param>元素含有一對參數(shù)名和參數(shù)值,用作應(yīng)用的Servlet上下文初始化參數(shù),參數(shù)名在整個Web應(yīng)用中必須是唯一的。<context-param>元素<context-param>元素包含兩個子元素:<param-name>和<param-value>,<param-name>用于設(shè)定Context名稱,<param-value>用于設(shè)定Context名稱的值。<context-param>中設(shè)定的參數(shù),JSP網(wǎng)頁中通過EL表達(dá)式${initParam.param_name}獲取,在Servlet中通過ServletContext對象的getInitParamter("param_name")方法獲取。任務(wù)實現(xiàn)-web.xml的元素<filter>元素用于指定Web容器中的過濾器,主要用于對用戶請求request進行預(yù)處理,也可以對用戶響應(yīng)response進行后處理,是個典型的處理鏈。包含的子元素有:<filter-name>元素用來定義過濾器的名稱,該名稱在整個應(yīng)用中都必須是唯一的。<filter-class>元素指定過濾器類的完全限定名稱。<init-param>元素與<context-param>元素具有相同的元素描述符,用于初始化參數(shù)的配置。<filter>元素包含的子元素有:<filter-name>元素指定想映射的過濾器名字,取<filter>元素中的<filter-name>值。<url-pattern>元素用來定義filter所對應(yīng)的URL,若要對所有路徑生效,則設(shè)置為“/*”。<filter-mapping>元素

任務(wù)實現(xiàn)-web.xml的元素<filter>元素<filter>

<filter-name>setCharacterEncoding</filter-name>

<filter-class>com.myTest.setCharacterEncodingFilter</filter-class>

<init-param>

<param-name>encoding</param-name>

<param-value>UTF-8</param-value>

</init-param></filter><filter-mapping>

<filter-name>setCharacterEncoding</filter-name>

<url-pattern>/*</url-pattern></filter-mapping><servlet>元素對Servlet或JSP頁面給出名稱和定制的URL用<servlet>元素分配名稱,使用<servlet-mapping>元素將定制的URL與剛分配的名稱相關(guān)聯(lián)。包含的子元素有:<servlet-name>元素用來定義servlet的名稱,該名稱在整個應(yīng)用中都必須是唯一的。<servlet-class>元素用于表示servlet映射到的類的全限定名稱。<servlet>元素包含的子元素有:<servlet-name>元素指定Servlet的名字,與<servlet>元素中聲明的名字一致。<url-pattern>元素指定相對于Servlet的URL的路徑,該路徑相對于web應(yīng)用程序上下文的根路徑,是訪問Servlet的名稱。<servlet-mapping>元素任務(wù)實現(xiàn)-web.xml的元素<servlet>元素<servlet><servlet-name>xmall</servlet-name><servlet-class>com.example.XmallServlet</servlet-class></servlet><servlet-mapping><servlet-name>xmall</servlet-name><url-pattern>/xmall</url-pattern></servlet-mapping>任務(wù)實現(xiàn)-web.xml的元素<listener>元素用來注冊一個監(jiān)聽器類,用來監(jiān)聽各種事件,如Application和Session事件,其中有兩個比較重要的Web應(yīng)用事件:Application的啟動和停止和Session的創(chuàng)建和失效。所有的監(jiān)聽器按照相同的方式定義,功能取決去它們各自實現(xiàn)的接口。<listener><listerner-class>com.listener.SessionListener</listener-class></listener>搭建Web開發(fā)環(huán)境任務(wù)1.2任務(wù)描述和技術(shù)分析36技術(shù)分析任務(wù)描述為某商城系統(tǒng)完成JavaWeb環(huán)境搭建,包括下載相關(guān)軟件和開發(fā)工具,安裝和配置JDK、JRE、Tomcat,并安裝集成開發(fā)環(huán)境。JavaWeb應(yīng)用開發(fā)需要Web服務(wù)器和應(yīng)用服務(wù)器。因此進行Web的基礎(chǔ)開發(fā)需要以下運行環(huán)境:JDKJREWeb服務(wù)器(如:ApacheTomcat、Jetty等)集成開發(fā)環(huán)境(如:Eclispe、MyEclispe、IntelliJIDEA等)支撐知識—Tomcat基礎(chǔ)/01Tomcat是由Apache軟件基金會維護的一款開源的符合JavaEE運行標(biāo)準(zhǔn)的Web服務(wù)器,不僅可以滿足JavaWeb程序的運行,同時也提供良好的網(wǎng)絡(luò)I/O處理性能,屬于輕量級應(yīng)用服務(wù)器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選。Tomcat基礎(chǔ)下載Tomcat直接登錄Apache官網(wǎng)(/),在左側(cè)的Download列表中先擇需要下載的相應(yīng)版本。安裝Tomcat下載的安裝文件是一個zip格式的壓縮包,將其解壓縮即可使用,Tomcat解壓縮完成后會有若干目錄。序號目錄作用描述1bin保存所有的二進制可執(zhí)行程序文件(啟動和監(jiān)控Tomcat命令),例如:startup.bat用于啟動Tomcat2conf保存所有的配置文件,其中server.xml是Tomcat服務(wù)器配置文件,web.xml是被所有Web應(yīng)用共享的配置文件3lib保存項目運行所需要的JAR包文件,可理解為一個Tomcat內(nèi)部支持的ClassPath4logs保存所有的日志數(shù)據(jù)文件5temp保存臨時文件6webapps進行項目招熱部署目錄,可以直接配置發(fā)布項目7work臨時的工作目錄,保存所有編譯后的.class文件安裝Tomcat在Windows系統(tǒng)中直接雙擊“${CATALINA_HOME}\bin\startup.bat”命令啟動Tomcat,啟動成功后會出現(xiàn)一個命令行窗口Tomcat服務(wù)啟動成功后,可直接在瀏覽器輸入“http://localhost:8080/”進行訪問配置Tomcat監(jiān)聽端口若要修改當(dāng)前Tomcat端口配置為80,可通過修改Tomcat主目錄的conf文件夾下的server.xml文件來實現(xiàn)。<!--Tomcat服務(wù)監(jiān)聽端口,默認(rèn)為8080,修改為80--><Connectorport="80"protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"maxParameterCount="1000"/>部署Web應(yīng)用首先需要將

Web應(yīng)用文件夾復(fù)制到Tomcat目錄的

webapps文件夾中,然后啟動Tomcat服務(wù)器,再打開瀏覽器,并在瀏覽器地址欄中輸入“http://服務(wù)器IP:端口/應(yīng)用程序名稱”形式的URL地址,即可運行JavaWeb應(yīng)用程序。方法一方法二首先打開Tomcat目錄中的conf文件夾下的server.xml文件,然后在<Host></Host>元素中添加<Context>元素。如要配置F盤根目錄下的Web應(yīng)用xmall,則可使用以下代碼。

<Contextpath="/xmall"docBase="F:/xmall"/> 最后保存修改的server.xml文件,并重啟Tomcat服務(wù)器,在瀏覽器地址欄中輸入URL地址“http://localhost/xmall”也可訪問該應(yīng)用。支撐知識—使用Eclipse搭建Web開發(fā)環(huán)境/02創(chuàng)建一個Web項目啟動Eclipse,并選擇一個工作空間,進入Eclipse的開發(fā)界面。第一次啟動時可單擊左側(cè)“ProjectExplorer”列表中的“CreateaDynamicWebproject”選項創(chuàng)建JSP文件在Eclipse工作界面左側(cè)的項目資源管理器中,選擇webDemo節(jié)點下的src/main/webapp節(jié)點,在其上單擊鼠標(biāo)右鍵,彈出的快捷菜單中選擇“New”→“JSPFile”命令,打開“NewJSPFile”對話框,在對話框的“FileName”文本框中輸入文件名index.jsp,單擊Finish按鈕完成創(chuàng)建。<%@pagelanguage="java"contentType="text/html;charset=UTF8"pageEncoding="UTF8"%><!DOCTYPEhtml><html> <head> <metacharset="UTF8"> <title>第一個JavaWeb項目</title> </head><body> <center>這是第一個JSP程序</center></body></html>配置Web服務(wù)器單擊Next按鈕,在打開的窗口中單擊Browse,選擇Tomcat主目錄,JRE配置成本地計算機安裝的JRE在Eclipse工作界面的其他視圖中,選擇Servers視圖,單擊視圖列表中的“Noserversareavailable.Clickthislinktocreateanewserver...”,打開“NewServer”窗口,展開窗口中的Apache節(jié)點,選擇“Tomcatv9.0Server”部署并運行項目啟動Tomcat服務(wù)器,在瀏覽器地址欄中輸入URL“http://localhost/webDemo/index.jsp”即可訪問創(chuàng)建好的項目右擊配置好的Tomcat服務(wù)器,選擇“AddandRemove...”命令,將webDemo發(fā)布到Tomcat服務(wù)器上,支撐知識—使用IDEA搭建Web開發(fā)環(huán)境/03IntelliJIDEA是一款由JetBrains公司開發(fā)的集成開發(fā)環(huán)境,是公認(rèn)為最好的Java開發(fā)工具之一,尤其在智能代碼助手、代碼自動提示、重構(gòu)、JavaEE支持、版本工具(如git、svn等)、JUnit、CVS整合、代碼分析、創(chuàng)新的GUI設(shè)計等方面表現(xiàn)出色。創(chuàng)建一個Web項目啟動IDEA,首次打開IDEA,一般會進入歡迎頁,單擊“NewProject”按鈕創(chuàng)建新項目,或在已經(jīng)打開的IDEA工作界面,單擊菜單欄“File→New→Project”命令,一樣可以打開“NewProject”對話框用來創(chuàng)建新工程。創(chuàng)建一個Web項目在工程名上單擊右鍵,在彈出菜單中選擇“AddFrameworkSupport…”左側(cè)JavaEE下勾選“WebApplication”,右側(cè)默認(rèn)版本為4.0,勾選“Createweb.xml”創(chuàng)建JSP文件Index.jsp<%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><title>我的第一個Web項目</title></head><body>

歡迎登錄我的第一個Web應(yīng)用程序!</body></html>創(chuàng)建JSP文件,直接右擊web,選擇New→JSP/JSPX,在彈出的“CreateJSP/JSPXpage”對話框中輸入文件名即可。配置Tomcat部署項目在發(fā)布和運行項目之前,需要先配置Tomcat。點擊窗口右上角“Run...”,打開“Run/DebugConfigurations”對話框,單擊左上角的“+”,在彈出的“AddNewConfiguration”菜單中單擊“TomcatServer”下的“Local”。左側(cè)顯示添加的相應(yīng)版本的TomcatServer,在右側(cè)選擇要配置的Tomcat、訪問的URL、使用的JRE部署并運行項目Tomcat啟動后在瀏覽器中輸入:“http://localhost:8080/demo”即可訪問應(yīng)用若“Deployattheserverstartup”下沒有部署的項目,則單擊“+”,添加“Artifact…”即可添加當(dāng)前項目。任務(wù)實現(xiàn)任務(wù)本任務(wù)采用Tomcat9.0.58,建議配置JDK1.8及以上版本,下載并安裝JDK后,再配置JDK的環(huán)境變量。采用Maven來創(chuàng)建并管理JavaWeb項目:某商城系統(tǒng)xmall,Maven是一個軟件項目管理工具,基于項目對象模型的理念,通過一段核心描述信息來管理項目的構(gòu)建、報告和文檔信息。搭建Web開發(fā)環(huán)境任務(wù)實現(xiàn)-安裝及配置Maven下載安裝Maven官網(wǎng)(/)直接下載壓縮包01配置Maven(1)新建環(huán)境變量MAVEN_HOME,設(shè)置變量值為Maven解壓縮之后的主目錄(2)編輯系統(tǒng)環(huán)境變量PATH,新建并添加“%MAVEN_HOME%\bin”02任務(wù)實現(xiàn)-使用Maven創(chuàng)建Web項目單擊菜單欄“File→New→Project”命令,打開“NewProject”對話框單擊左側(cè)的“MavenArchetype”Name中輸入“xmall”Loaction中設(shè)置項目放置的位置JDK中選擇本機安裝的JavaArchetype中在下拉列表中選擇“maven-archetype-webapp”模板配置GroupId、ArtifactId、Version任務(wù)實現(xiàn)-使用Maven創(chuàng)建Web項目在main上單擊右鍵,在彈出的菜單中選擇“Directory”在Name位置輸入java再單擊下側(cè)的“java”,或直接單擊java,即可創(chuàng)建java目錄任務(wù)實現(xiàn)-使用Maven創(chuàng)建Web項目若要使用本地Maven,則選擇“File→Setting”,打開IDEA的Settings對話框配置本地Maven所在的主目錄,選擇settings.xml配置文件和本地倉庫位置任務(wù)實現(xiàn)-編寫頁面代碼修改index.jsp文件中的默認(rèn)代碼<%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head> <title>我的商城</title></head><body> <h2>歡迎來到我的商城!</h2></body></html>任務(wù)實現(xiàn)-配置Tomcat并部署項目任務(wù)實現(xiàn)-配置Tomcat并部署項目部署完成后,啟動Tomcat服務(wù),窗口的左上角顯示服務(wù)啟動成功,左側(cè)目錄結(jié)構(gòu)會出現(xiàn)一個target目錄,其中放置項目編譯后的文件,下方的“Services”中顯示服務(wù)啟動成功。某商城系統(tǒng)分析與設(shè)計任務(wù)1.3任務(wù)描述和技術(shù)分析71技術(shù)分析任務(wù)描述隨著互聯(lián)網(wǎng)的發(fā)展,電子商城已經(jīng)成為21世紀(jì)網(wǎng)絡(luò)發(fā)展的主流,網(wǎng)絡(luò)購物成為一種購物時尚。在商城項目的開發(fā)中,涉及到用戶登錄以及驗證,系統(tǒng)相關(guān)內(nèi)容展示等,在此任務(wù)中我們通過系統(tǒng)分析與設(shè)計來學(xué)習(xí)商城系統(tǒng)的功能模塊設(shè)計和數(shù)據(jù)庫設(shè)計的相關(guān)知識以及需要遵守的設(shè)計原則。在系統(tǒng)分析和設(shè)計的過程中,通過自頂向下的設(shè)計模式將整體系統(tǒng)的功能清晰化的表示,通過E-R圖,可以幫助我們理清業(yè)務(wù)對象關(guān)系,并簡化業(yè)務(wù)對象關(guān)系。通過PowerDesign設(shè)計工具,可以快速的將系統(tǒng)整體的數(shù)據(jù)庫表設(shè)計出來。支撐知識—系統(tǒng)功能模塊分析與設(shè)計/01電子商城網(wǎng)站分為前臺和后臺。根據(jù)電子商城前臺的特點,可以將其分為用戶管理、商品管理、購物車管理、收貨地址管理和訂單管理5個部分系統(tǒng)功能結(jié)構(gòu)根據(jù)電子商城后臺的特點,可以將其分為用戶管理、商品管理和訂單管理3個部分。系統(tǒng)功能結(jié)構(gòu)業(yè)務(wù)流程圖面向用戶的系統(tǒng)流程圖業(yè)務(wù)流程圖面向管理員的系統(tǒng)流程圖系統(tǒng)預(yù)覽支撐知識—數(shù)據(jù)庫設(shè)計/02數(shù)據(jù)庫需求設(shè)計線商城系統(tǒng)主要涉及到用戶、商品、購物車、訂單等相關(guān)內(nèi)容,一個用戶可能會有多個收貨地址,所以需要對用戶、商品、購物車、收貨地址和訂單進行數(shù)據(jù)設(shè)計。主要創(chuàng)建的表有:用戶信息表、商品信息表、購物車信息表、收貨地址表、訂單信息和訂單明細(xì)信息表。根據(jù)數(shù)據(jù)庫需求設(shè)計分析,當(dāng)前系統(tǒng)涉及到的數(shù)據(jù)庫實體分別為用戶實體、商品實體、購物車實體、收貨地址實體、訂單實體和訂單明細(xì)實體。數(shù)據(jù)庫概念設(shè)計用戶實體主要有用戶ID、用戶名、用戶密碼、用戶郵箱、用戶手機號商品實體主要有商品ID、商品名稱、商品描述、商品價格、商品詳情信息、商品剩余數(shù)量、商品圖片、商品分類、商品狀態(tài)數(shù)據(jù)庫概念設(shè)計購物車實體的屬性有用戶ID、商品ID、商品數(shù)量收貨地址實體屬性有收貨地址ID、用戶ID、收件人、收件人手機、收貨地址數(shù)據(jù)庫概念設(shè)計訂單實體屬性包括訂單編號、用戶ID、訂單狀態(tài)、訂單總價、收貨地址ID、訂單創(chuàng)建時間、訂單支付時間、訂單發(fā)貨時間、訂單收貨時間訂單明細(xì)實體屬性主要有訂單明細(xì)ID、訂單編號、商品ID、商品數(shù)量數(shù)據(jù)庫概念設(shè)計一個用戶可以下多個訂單,用戶實體和訂單實體之間是一對多的關(guān)系;一個訂單可以含多件商品及有多個訂單明細(xì),訂單實體和訂單明細(xì)之間是一對多的關(guān)系;一個訂單明細(xì)對應(yīng)了一個商品,訂單明細(xì)和商品之間是一對一的關(guān)系;用戶實體和購物車實體之間是一對多的關(guān)系;購物車實體和商品實體之間是一對一的關(guān)系。數(shù)據(jù)庫邏輯設(shè)計數(shù)據(jù)庫邏輯設(shè)計字段名數(shù)據(jù)類型是否為空是否主鍵默認(rèn)值描述userIdintNoYes

ID(自增)userNamevarchar(255)No

用戶名userPwdvarchar(255)No

用戶密碼phonevarchar(255)

用戶手機號emailvarchar(255)

用戶郵箱字段名數(shù)據(jù)類型是否為空是否主鍵默認(rèn)值描述productIdintNoYes

ID(自增)productNamevarchar(255)No

商品名descvarchar(255)

商品描述pricedouble(255,0)

商品價格detaillongtext

商品詳情numint

商品數(shù)量imgvarchar(255)

商品圖片categoryvarchar(255)

商品分類statusint

商品狀態(tài)user(用戶信息表)product(商品信息表)數(shù)據(jù)庫邏輯設(shè)計字段名數(shù)據(jù)類型是否為空是否主鍵默認(rèn)值描述userIdintNo是

用戶IDproductIdintNo是

商品IDquantityintNo

商品數(shù)量字段名數(shù)據(jù)類型是否為空是否主鍵默認(rèn)值描述idintNo是

ID(自增)userIdintNo

用戶IDreceiverNamevarchar(45)No

收件人receiverPhonevarchar(45)No

收件人手機receiverAddressvarchar(255)No

收件人地址creationTimedatetime

創(chuàng)建時間shopping_car(購物車信息表)receiver_info(收貨地址信息表)數(shù)據(jù)庫邏輯設(shè)計字段名數(shù)據(jù)類型是否為空是否主鍵默認(rèn)值描述orderIdvarchar(255)No是

后臺自動生成userIdintNo

用戶IDstatusintNo

0訂單狀態(tài)totalPricedecimal(10,2)No

訂單總價addressvarchar(255)No

收件地址creationTimevarchar(255)No

當(dāng)前時間創(chuàng)建時間payTimedatetime

支付時間shipTimedatetime

發(fā)貨時間receiptTimedatetime

收件時間receiverInfoIdint

收貨信息ID字段名數(shù)據(jù)類型是否為空是否主鍵默認(rèn)值描述idintNo是

ID(自增)orderIdvarchar(255)No

訂單IDproductIdintNo

商品IDquantityintYes

商品數(shù)量order(訂單表)order_detail(訂單明細(xì)信息表)任務(wù)實現(xiàn)任務(wù)商城系統(tǒng)的實現(xiàn)需要基于MySQL數(shù)據(jù)庫和JavaWeb相關(guān)知識,本任務(wù)實現(xiàn)主要給出數(shù)據(jù)庫的實現(xiàn)部分,給出數(shù)據(jù)庫及數(shù)據(jù)表的實現(xiàn)代碼,功能實現(xiàn)的相關(guān)代碼在本書后續(xù)章節(jié)會陸續(xù)介紹。某商城系統(tǒng)分析與設(shè)計任務(wù)實現(xiàn)-創(chuàng)建數(shù)據(jù)庫CREATEDATABASEIFNOTEXISTS`x_mall`;USE`x_mall`;首先需要創(chuàng)建數(shù)據(jù)庫,創(chuàng)建數(shù)據(jù)庫的SQL語句如下:任務(wù)實現(xiàn)-創(chuàng)建數(shù)據(jù)表USE`x_mall`;DROPTABLEIFEXISTS`user`;/*!40101SET@saved_cs_client=@@character_set_client*/;/*!50503SETcharacter_set_client=utf8mb4*/;CREATETABLE`user`(`userId`intNOTNULLAUTO_INCREMENT,`userName`varchar(255)NOTNULL,`userPwd`varchar(255)NOTNULL,`phone`varchar(255)DEFAULTNULL,`email`varchar(255)DEFAULTNULL,PRIMARYKEY(`userId`),UNIQUEKEY`userName_UNIQUE`(`userName`))ENGINE=InnoDBAUTO_INCREMENT=8DEFAULTCHARSET=utf8mb3創(chuàng)建用戶數(shù)據(jù)表USE`x_mall`;LOCKTABLES`user`WRITE;INSERTINTO`user`VALUES(1,'admin','admin123','187518727223','243727172@'),(2,'wujy','admin123',,'247131603@');UNLOCKTABLES;用戶數(shù)據(jù)表中插入數(shù)據(jù)加載部署運行商城系統(tǒng)任務(wù)描述:在IDEA開發(fā)工具中加載商城系統(tǒng)的源碼,在MySQL中導(dǎo)入數(shù)據(jù)庫文件,將系統(tǒng)在開發(fā)環(huán)境中部署并運行,熟悉整個項目的實現(xiàn)效果。拓展實踐單元小結(jié)下載、安裝、配置Tomcat使用Eclipse集成開發(fā)環(huán)境搭建JavaWeb項目使用IDEA集成開發(fā)環(huán)境來搭建JavaWeb項目某商城系統(tǒng)的功能模塊分析、數(shù)據(jù)庫設(shè)計XML的基本語法C/S和B/S兩種不同的軟件系統(tǒng)體系架構(gòu)HTTP協(xié)議相關(guān)謝謝觀看常州信息職業(yè)技術(shù)學(xué)院202506單元2Servlet基礎(chǔ)《JavaWeb應(yīng)用開發(fā)》了解Servlet技術(shù)的基本概念、Servlet運行原理熟悉Servlet技術(shù)相關(guān)的接口及實現(xiàn)類熟悉Servlet的生命周期熟悉Servlet技術(shù)中的請求對象與響應(yīng)對象熟悉并理解會話對象知識目標(biāo)能夠熟練使用Servlet的相關(guān)接口及實現(xiàn)類熟悉基于Servlet的開發(fā)方式能熟練使用請求、響應(yīng)、會話對象能使用Servlet技術(shù)進行Web程序開發(fā)能力目標(biāo)培養(yǎng)團隊合作的精神培養(yǎng)認(rèn)真工作的態(tài)度培養(yǎng)吃苦耐勞的優(yōu)良作風(fēng)素質(zhì)目標(biāo)學(xué)習(xí)目標(biāo)商城系統(tǒng)中的用戶管理任務(wù)2.1任務(wù)描述和技術(shù)分析97技術(shù)分析任務(wù)描述商城系統(tǒng)面向普通用戶開放,用戶注冊后,管理員可以通過后臺管理系統(tǒng),對用戶信息進行查詢、修改等管理。本項目主要使用Servlet相關(guān)技術(shù),實現(xiàn)后臺管理中對用戶信息的查詢、修改等功能。用戶管理功能的開發(fā)中,可以編寫多個Servlet,分別實現(xiàn)對用戶信息的查詢、修改。其中涉及到Servlet的定義、Servlet地址映射、通過HttpServletRequest對象獲取來自頁面的請求數(shù)據(jù)、處理完請求后的頁面跳轉(zhuǎn)等內(nèi)容。支撐知識--Servlet概述/011、什么是ServletServlet是一種獨立于平臺和協(xié)議的服務(wù)器端的Java應(yīng)用程序,可以生成動態(tài)的Web頁面。它充當(dāng)Web瀏覽器或其他HTTP客戶端程序發(fā)出的請求與HTTP服務(wù)器上的數(shù)據(jù)庫或應(yīng)用程序之間的中間件。Servlet是位于Web服務(wù)器內(nèi)部的Java應(yīng)用程序,與傳統(tǒng)的從命令行啟動的Java應(yīng)用程序不同,Servlet由Web服務(wù)器進行加載,該Web服務(wù)器必須包含支持Servlet的Java虛擬機。2、Servlet運行原理3、Servlet技術(shù)特點(1)可移植性ServletAPI符合Java開發(fā)規(guī)范,Java與平臺無關(guān),Servlet類文件和Servlet打成的包文件都可在不同的操作系統(tǒng)和不同的應(yīng)用服務(wù)器上布置運行。(2)安全高效Servlet使用Java的安全框架,Servlet容器也保證Servlet的安全,Servlet載入內(nèi)存并使用多線程,效率很高,加快響應(yīng)速度。(3)模塊化每個Servlet可完成一定任務(wù),不同Servlet可互相交流數(shù)據(jù)。(4)可擴展性Servlet接口設(shè)計非常精簡,便于擴展。(5)功能強大Servlet除了支持HTTP訪問,還支持圖像處理、數(shù)據(jù)壓縮、多線程、JDBC、序列化等功能。支撐知識—

Servlet接口及實現(xiàn)類/02Servlet接口及實現(xiàn)類(1)init方法Servlet第一次加載時,服務(wù)器初始化一個Servlet,即創(chuàng)建一個Servlet對象。這個對象調(diào)用init完成初始化工作。(2)service方法當(dāng)Servlet創(chuàng)建成功和初始化之后,Servlet就調(diào)用service方法來處理用戶的請求并返回響應(yīng)。(3)destroy方法當(dāng)Servlet實例即將被銷毀時,會調(diào)用destroy方法。destroy方法通常用于釋放Servlet實例持有的資源,例如關(guān)閉數(shù)據(jù)庫連接、停止后臺線程等。(4)GenericServlet

接口GenericServlet是Servlet接口的一個通用的實現(xiàn)。它提供了Servlet接口中方法的默認(rèn)實現(xiàn),這樣開發(fā)者就不必自己實現(xiàn)這些方法

。(5)HttpServlet

類HttpServlet是更具體的實現(xiàn),專門針對HTTP協(xié)議。它已經(jīng)為HTTP請求和響應(yīng)提供了許多方法,例如doGet和doPost,這些方法直接對應(yīng)于HTTP協(xié)議的操作。支撐知識—Servlet入門程序

/03Servlet入門程序HttpServlet抽象類用于開發(fā)基于HTTP協(xié)議的Servlet程序,由于Servlet主要用來處理HTTP請求和響應(yīng),所以通常情況下,開發(fā)Servlet時都繼承自HttpServlet。Servlet應(yīng)用支持兩種配置方式,一種是基于web.xml配置文件,另一種是基于注解。下面以一個簡單的入門程序,來介紹如何使用兩種方式創(chuàng)建Servlet應(yīng)用。1、基于Web.xml文件配置Servlet(1)首先,在IDEA開發(fā)環(huán)境中,新建一個名為Unit2_task1的空項目。1、基于Web.xml文件配置Servlet(2)在項目的src/main/java目錄下創(chuàng)建一個包com.example.unit2-1,包中創(chuàng)建一個名為HelloServlet的類,繼承HttpServlet類。packagecom.example.unit2_1;

importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.IOException;importjava.io.PrintWriter;

publicclassHelloServletextendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException{//Hello

PrintWriterout=response.getWriter();

out.println("<html><body>");

out.println("<h1>HelloWorld!</h1>");

out.println("</body></html>");}}1、基于Web.xml文件配置Servlet(3)web.xml文件是整個應(yīng)用程序的配置文件,我們需要在web.xml中對HelloServlet進行基礎(chǔ)配置。

<?xmlversion="1.0"encoding="UTF-8"?><web-appxmlns="http:///xml/ns/javaee"

xmlns:xsi="/2001/XMLSchema-instance"

xsi:schemaLocation="http:///xml/ns/javaeehttp:///xml/ns/javaee/web-app_4_0.xsd"version="4.0"><!--聲明Servlet--><servlet><servlet-name>HelloServlet</servlet-name><servlet-class>com.example.unit2_1.HelloServlet</servlet-class></servlet>

<!--地址映射--><servlet-mapping><servlet-name>HelloServlet</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping></web-app>1、基于Web.xml文件配置Servlet(4)將上面的項目部署到Tomcat中,設(shè)置應(yīng)用的上下文(ApplicationContex)為“/Unit2_1”,我們就可以在瀏覽器中訪問資源。輸入地址“http://localhost:8080/Unit2_1/hello”,即可訪問HelloServlet,瀏覽器中訪問顯示結(jié)果如圖所示。2、基于注解配置Servlet除了使用web.xml文件配置Servlet之外,我們還可以使用注解進行配置,servlet3.0之后引入了注解,使用注解可以極大簡化我們的代碼。(1)使用注解,首先要引入Servlet的依賴,在pom.xml文件中添加以下依賴代碼。<dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version><scope>provided</scope></dependency>2、基于注解配置Servlet(2)在HelloServlet類的聲明語句上,添加名為@WebServlet的注解,并設(shè)置value屬性值為“/hello”。packagecom.example.unit2_1;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjava.io.IOException;importjava.io.PrintWriter;@WebServlet("/hello")publicclassHelloServletextendsHttpServlet{publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsIOException{//Hello

PrintWriterout=response.getWriter();

out.println("<html><body>");

out.println("<h1>HelloWorld!</h1>");

out.println("</body></html>");}}2、基于注解配置Servlet(3)重新部署運行項目,再次瀏覽資源同樣可以瀏覽如圖2-3所示的內(nèi)容。支撐知識—Servlet的生命周期/04Servlet的生命周期Servlet的生命周期主要有三個過程組成

。首先,當(dāng)創(chuàng)建Servlet請求時,Web應(yīng)用服務(wù)器能動態(tài)的裝載和實例化Servlet。即服務(wù)器會創(chuàng)建Servlet的一個實例,并調(diào)用Servlet的init方法初始化。其次,一旦初始化了Servlet,Servlet就能隨時等候處理請求。通常是調(diào)用service方法,service方法會根據(jù)HTTP請求的類型自動調(diào)用doGet或doPost方法。最后,當(dāng)Web服務(wù)器卸載Servlet時,調(diào)用destory方法,Servlet會釋放它使用的所有資源。Servlet的生命周期Servlet生命周期

支撐知識—

HttpServletRequest對象/05HttpServletRequest對象HttpServletRequest是JavaServletAPI中的一個核心接口,它代表了一個來自客戶端的HTTP請求。在Servlet容器中,當(dāng)客戶端(例如網(wǎng)頁瀏覽器)發(fā)送HTTP請求到Servlet容器時,Servlet容器會創(chuàng)建一個實現(xiàn)了HttpServletRequest接口的對象,并將這個對象作為參數(shù)傳遞給Servlet的service方法。這樣Servlet就可以通過這個對象來訪問關(guān)于HTTP請求的所有信息。HttpServletRequest對象提供了許多方法來獲取HTTP請求的不同部分,包括請求行信息、請求頭信息、請求參數(shù)信息等。HttpServletRequest對象還允許你設(shè)置屬性,這些屬性可以在后續(xù)的請求處理過程中被其它組件(如過濾器或其他Servlet)訪問。1、獲取請求行信息

HttpServletRequest接口中常用的獲取請求行信息的方法如下表所示。方法名描述StringgetMethod()該方法用于獲取HTTP請求消息中的請求方式(如GET、POST等)StringgetRequestURI()該方法用于獲取請求行中資源名稱部分,即位于URL的主機和端口之后、參數(shù)部分之前的部分StringgetQueryString()該方法用于獲取請求行中的參數(shù)部分,也就是資源路徑后面問號以后的所有內(nèi)容StringgetProtocol()該方法用于獲取請求行中的協(xié)議名和版本,例如,HTTP/1.0或HTTP/1.1StringgetContextPath()該方法用于獲取請求URL中屬于WEB應(yīng)用程序的路徑,這個路徑以"/"開頭,表示相對于整個WEB站點的根目錄,路幾個結(jié)尾不含“/”。如果請求URL屬于web站點的根目錄,那么返回結(jié)果為空字符串“”StringgetServletPath()該方法用于獲取Servlet的名稱或Servlet所映射的路徑StringgetRemoteAddr()該方法用于獲取請求客戶端的IP地址,其格式類似于""StringgetRemoteHost()該方法用于獲取請求客戶端的完整主機名,其格式類似于""。需要注意的是,如果無intgetRemotePort()該方法用于獲取請求客戶端網(wǎng)絡(luò)連接的端口號StringgetLocalAddr()該方法用于獲取Web服務(wù)器上接收當(dāng)前請求網(wǎng)絡(luò)連接的IP地址StringgetLocalName()該方法用于獲取Web服務(wù)器上接收當(dāng)前網(wǎng)絡(luò)連接IP所對應(yīng)的主機名intgetLocalPort()該方法用于獲取Web服務(wù)器上接收當(dāng)前網(wǎng)絡(luò)連接的端口號StringgetServerName()該方法用于獲取當(dāng)前請求所指向的主機名,即HTTP請求消息中HOST頭字段所對應(yīng)的主機名部分intgetServerPort()該方法用于獲取當(dāng)前請求所連接的服務(wù)器端口號,即如果HTTP請求消息中HOST頭字段所對應(yīng)的端口號部分StringgetScheme()該方法用于獲取請求的協(xié)議名,例如http、https或ftpStringBuffergetRequestURL()該方法用于獲取客戶端發(fā)出請求時的完整URL,包括協(xié)議、服務(wù)器名、端口號、資源路徑等信息,但不包括后面的查詢參數(shù)部分。注意,getRequestRUL()方法返回的時StringBuffer類型,而不是String類型。1、獲取請求行信息(1)下面通過示例程序,介紹如何使用HttpServletRequest對象獲取請求行信息。在Unit2_task1項目中,創(chuàng)建一個包com.example.unit2_2,包中創(chuàng)建類RequestLineServlet繼承HttpServlet。

@WebServlet("/RequestLineServlet")publicclassRequestLineServletextendsHttpServlet{@OverrideprotectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{

PrintWriterout=resp.getWriter();//打印請求行信息

out.println("getMethod:"+req.getMethod()+"<br/>");

out.println("getRequestURI:"+req.getRequestURI()+"<br/>");。。。。。。

out.println("getScheme:"+req.getScheme()+"<br/>");

out.println("getRequestURL:"+req.getRequestURL()+"<br/>");}}1、獲取請求行信息(2)瀏覽請求“http://localhost:8080/Unit2_1/RequestLineServlet”,運行結(jié)果如圖2-5所示。

2、獲取請求頭信息

HttpServletRequest接口中同樣提供了常用的方法,用來獲取請求頭信息,如下表所示。方法名描述StringgetHeader(Stringname)獲取一個指定頭字段的值EnumerationgetHeaders(Stringname)返回一個Enumeration集合對象,該集合對象由請求消息中出現(xiàn)的某個指定名稱的所有頭字段值組成EnumerationgetheaderNames()獲取一個包含所有請求頭字段的Enumeration對象intgetIntHeader(Stringname)獲取指定名稱的頭字段,并且將其值轉(zhuǎn)換為int類型StringgetContentType()獲取Content-Type頭字段的值intgetContentLength()獲取Content-Length頭字段的值,結(jié)果為int類型StringgetCharacterEncoding()返回請求消息的實體部分的字符集編碼,通常是從Content-Type頭字段中進行提取,結(jié)果為String類型2、獲取請求頭信息(1)在Unit2_task1項目中,創(chuàng)建包com.example.unit2-3,包中創(chuàng)建一個名為RequestHeaderServlet的類。

@WebServlet("/RequestHeaderServlet")publicclassRequestHeaderServletextendsHttpServlet{

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論