丨實(shí)戰(zhàn)純手工打造和運(yùn)行一個(gè)servlet_第1頁(yè)
丨實(shí)戰(zhàn)純手工打造和運(yùn)行一個(gè)servlet_第2頁(yè)
丨實(shí)戰(zhàn)純手工打造和運(yùn)行一個(gè)servlet_第3頁(yè)
丨實(shí)戰(zhàn)純手工打造和運(yùn)行一個(gè)servlet_第4頁(yè)
丨實(shí)戰(zhàn)純手工打造和運(yùn)行一個(gè)servlet_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論