




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
并安裝TomcatHttpServlet的Java將Java類文件編譯成Class建立Web應(yīng)用 結(jié)構(gòu),并配置web.xml部署Web啟動(dòng)Tomcat查看Tomcat下面你可以跟我一起一步步操作來(lái)完成整個(gè)過(guò)程。Servlet3.0規(guī)范支持用注解的方式來(lái)部署Servlet,不需要在web.xml里配置,最后我會(huì)演示怎么用注解的方式來(lái)部署Servlet。并安裝版本的Tomcat可以直接在官網(wǎng)上,根據(jù)你的操作系統(tǒng)相應(yīng)的版本,這里我使用的是Mac系統(tǒng),完成后直接解壓,解壓后的 /bin:存放Windows或Linux平臺(tái)上啟動(dòng)和關(guān)閉Tomcat的文件/conf:存放Tomcatserver.xml/lib:存放Tomcat以及所有Web應(yīng)用都可以的JAR文件/logs:存放Tomcat/work:存放JSP編譯后產(chǎn)生的Class/webapps:Tomcat的Web應(yīng) ,默認(rèn)情況下把Web應(yīng)用放在這 HttpServlet的Java我在專欄上一期提到,javax.servlet包提供了實(shí)現(xiàn)Servlet接口的GenericServlet抽象類。這是一個(gè)比較方便的類,可以通過(guò)擴(kuò)展它來(lái)創(chuàng)建Servlet。但是大多數(shù)的Servlet都在HTTPServe規(guī)范還提供了HttpServlet來(lái)擴(kuò)展GenericServletHTTPHttpServletServlet方法:doGet和doPost。JavaHttpServletdoGetdoPost首先新建一個(gè)名為MyServlet.java的文件,敲入下面這些代碼:importimport3importimportimportimport89publicclassMyServletextendsHttpServletprotectedvoiddoGet(HttpServletRequestrequest,HttpServletResponsethrowsServletException,IOExceptionSystem.out.println("MyServlet在處理get()請(qǐng)求PrintWriterout=out.println("<strong>My protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponsethrowsServletException,IOExceptionSystem.out.println("MyServlet在處理post()請(qǐng)求PrintWriterout=out.println("<strong>My 32ServletdoGetdoPost將Java文件編譯成Class下一步我們需要把MyServlet.java文件編譯成Class文件。你需要先安裝JDK,這里我使用的是JDK10。接著你需要把Tomcatlib 下的servlet-api.jar拷貝到當(dāng)前 這是因?yàn)閟ervlet-api.jar中定義了Servlet接口,而我們的Servlet類實(shí)現(xiàn)了Servlet接口,因此編譯Servlet類需要這個(gè)JAR包。接著我們執(zhí)行編譯命令:javac-cp./servlet-api.jar編譯成功后,你會(huì)在當(dāng) 下找到一個(gè)叫MyServlet.class的文件建立Web應(yīng)用 我們?cè)谏弦黄趯W(xué)到,Servlet是放到Web應(yīng)用部署到Tomcat的,而Web應(yīng)用具有一定 結(jié)構(gòu),所有我們按照要求建立Web應(yīng)用文件夾,名字叫MyWebApp,然后在這個(gè)23MyWebApp/WEB-web.xml中配置Servlet<?xmlversion="1.0"encoding="UTF-<web-appxmlns="3"45"6789<description>ServletExample.<disy-name>MyServletExample</disy-</web-你可以看到在web.xml配置了Servlet的名字和具體的類,以及這個(gè)Servlet對(duì)應(yīng)的URL路徑。請(qǐng)你注意,servlet和servlet-map這兩個(gè)里的servlet-name要保持一部署WebTomcat應(yīng)用的部署非常簡(jiǎn)單,將這 MyWebApp拷貝到Tomcat的安 啟動(dòng)找到Tomcat安裝下的bin,根據(jù)操作系統(tǒng)的不同,執(zhí)行相應(yīng)的啟動(dòng)。如果是Windows系統(tǒng),執(zhí)行startup.bat.;如果是Linux系統(tǒng),則執(zhí)行startup.sh。在瀏覽器里這個(gè) ,你My這里需要注意,URL路徑中的MyWebApp是Web應(yīng)用的名字,myservlet是web.xmlServlet查看Tomcat打開(kāi)Tomcat的日志,也就是Tomcat安裝下的logs。Tomcat的日志信息分為兩類:一是運(yùn)行日志,它主要記錄運(yùn)行過(guò)程中的一些信息,尤其是一些異常錯(cuò)誤日志信息;二是日志,它記錄的時(shí)間、IP地址、的路徑等相關(guān)信息。TomcatJVMcatalina.out是Tomcat的標(biāo)準(zhǔn)輸出(stdout)和標(biāo)準(zhǔn)錯(cuò)誤(stderr),這是在Tomcat的啟動(dòng)里指定的,如果沒(méi)有修改的話stdout和stderr會(huì)重定向到這里。所以在這個(gè)文件里可以看到我們?cè)贛yServlet.java程序里打印出來(lái)的信息:MyServlet在處理get(WebTomcat存放Tomcat的請(qǐng)求日志,包括IP地址以及請(qǐng)求的路徑、時(shí)間、請(qǐng)求協(xié)議以及狀態(tài)碼存放Tomcat自帶的manager用注解的方式部署為了演示用注解的方式來(lái)部署Servlet,我們首先修改Java代碼,給Servletimportimport3importimportimportimportimport9publicclassAnnotationServletextendsHttpServletprotectedvoiddoGet(HttpServletRequestrequest,HttpServletResponsethrowsServletException,IOExceptionSystem.out.println("AnnotationServlet在處理get()請(qǐng)求PrintWriterout=response.setContentType("text/html;charset=utf-out.println("<strong>Annotation protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponsethrowsServletException,IOExceptionSystem.out.println("AnnotationServlet在處理post()請(qǐng)求PrintWriterout=response.setContentType("text/html;charset=utf-out.println("<strong>Annotation 35JavaServletServletURL1創(chuàng)建好Java類以后,同樣經(jīng)過(guò)編譯,并放到MyWebApp的class下。這里要注意的是,你需要?jiǎng)h除原來(lái)的web.xml,因?yàn)槲覀儾恍枰獁eb.xml來(lái)配置Servlet了。然后重啟Tomcat,接下來(lái)我們驗(yàn)證一下這個(gè)新的AnnotationServlet有沒(méi)有部署成功。在瀏覽器里 1AnnotationAnnotationServletweb.xml能,包括Servlet初始化參數(shù)以及配置Filter和Listener等。通過(guò)今天的學(xué)習(xí)和實(shí)踐,相信你掌握了如何通過(guò)擴(kuò)展HttpServlet來(lái)實(shí)現(xiàn)自己的Servlet,知道了如何編譯Servlet、如何通過(guò)web.xml來(lái)部署Servlet,同時(shí)還練習(xí)了如何啟動(dòng)Tomcat、如何查看Tomcat的各種日志,并且還掌握了如何通過(guò)注解的方式來(lái)部署Servlet。我相信通過(guò)專欄前面文章的學(xué)習(xí)加上今天的練習(xí)實(shí)踐,一定會(huì)加深你對(duì)Servlet工作原理的理解。之所以我設(shè)置今天的實(shí)戰(zhàn)練習(xí),是希望你知道IDE和Web框架在背后為我們做了哪些事情,這對(duì)于我們排查問(wèn)題非常重要,因?yàn)橹挥形覀兠靼琢薎DE和框架在我在Servlet類里同時(shí)實(shí)現(xiàn)了doGet方法和doPost方法,從瀏覽器的默認(rèn)的是doGet方法,今天的課后思考題是如何這個(gè)doPost方法。不知道今天的內(nèi)容你消化得如何?如果還有疑問(wèn),請(qǐng)大膽的在留言區(qū)提問(wèn),也歡迎你的課后思考和心得記錄下來(lái),與我和其他同學(xué)一起討論。如果你覺(jué)得今天有所收獲,歡迎你把它給你的朋友。 不得售賣(mài)。頁(yè)面已增加防盜追蹤,將依法其上一 03|你應(yīng)該知道的Servlet規(guī)范和Servlet容下一 05|Tomcat系統(tǒng)架構(gòu)(上):連接器是如何設(shè)計(jì)的 46 2、curl 作者回復(fù):1.你可以向Servlet容器多個(gè)Servlet 4今夜秋風(fēng) 老師,驗(yàn)證的時(shí)候默認(rèn)增加了super.doGet(req,resp);在http1.1寫(xiě)一下不能工作,查看httpServlet,http1.1Stringprotocol=super.doGet(reqresp);HttpServlet的doGet方法,但是這個(gè)doGet需要你去 風(fēng) 4 @Amanda所以在javacencodingUTF-8 2作者回復(fù):調(diào)下順序,像下面這樣:PrintWriterout=response.getWriter();publicPrintWritergetWriter()throwsIOException{if(usingOutputStream)thrownewIllegalStateException}if Iftheresponse'scharacterencodinghasnotbeenspecifieddescribedin<code>getCharacterEncoding</code>(i.e.,thejustreturnsthedefaultvalue<code>ISO-8859-<code>getWriter</code>updatesitto<code>ISO-8859-(withtheeffectthatasubsequentcalltogetContentType()includeacharset=ISO-8859-1componentwhichwillalsoreflectedintheContent-Typeresponseheader,therebytheServletspecrequirementthatcontainersmustcommunicatecharacterencodingusedfortheservletresponse'swriterto}usingWriter=true;if(writer==null
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 會(huì)議診斷費(fèi)用合同范例
- 企業(yè)合同范例英文
- 2手汽車購(gòu)買(mǎi)合同范例
- 321借款合同范例
- 道路翻新施工方案范本
- 家國(guó)情懷素養(yǎng)在高中歷史教學(xué)中的培養(yǎng)研究
- 人工水塔拆除施工方案
- 創(chuàng)業(yè)股權(quán)分配合同范例
- 農(nóng)村蔬菜出租合同范本
- 休閑農(nóng)莊轉(zhuǎn)讓合同范本
- 檢驗(yàn)員培訓(xùn)資料-
- 房屋市政工程施工現(xiàn)場(chǎng)安全風(fēng)險(xiǎn)分級(jí)管控與防范措施清單
- 第三方工程評(píng)估體系檢查表
- 唐僧團(tuán)隊(duì)之如何打造團(tuán)隊(duì)
- 畢業(yè)設(shè)計(jì)外文文獻(xiàn)-Spring Boot
- 六年級(jí)下冊(cè)《生命.生態(tài).安全》全冊(cè)教案(表格式)
- DB32/T 4444-2023 單位消防安全管理規(guī)范-高清版
- 《讓孩子成才的秘密》寂靜法師
- 水下作業(yè)工程監(jiān)理實(shí)施細(xì)則(工程通用版范本)
- 小學(xué)科學(xué)教育探究一研討教學(xué)法
- GB 14930.1-2022食品安全國(guó)家標(biāo)準(zhǔn)洗滌劑
評(píng)論
0/150
提交評(píng)論