J2EE Servlet基礎(chǔ)在瀏覽器上運(yùn)行HelloServlet的方法
Servlet
servlet本身不能獨(dú)立運(yùn)行,需要在一個(gè)web應(yīng)用中運(yùn)行的
而一個(gè)web應(yīng)用是部署在tomcat中。開(kāi)發(fā)一個(gè)servlet需要
- 創(chuàng)建web應(yīng)用項(xiàng)目
- 編寫servlet代碼
- 部署到tomcat中
IDEA操作具體流程
1.創(chuàng)建名為j2ee的項(xiàng)目
2.導(dǎo)入servlet-api.jar包(Servlet需要用到包中的相關(guān)類)
附上下載鏈接
鏈接: https://pan.baidu.com/s/1cb5BqQ1TrKcPiaf6zuPLFQ 提取碼: xtq6
導(dǎo)入:
右鍵項(xiàng)目 open module setting
3.編寫HelloServlet類。HelloServlet繼承了 HttpServlet
并且提供了一個(gè)doGet方法。在瀏覽器中輸入地址提交數(shù)據(jù)的方式是GET。所以該Servlet需要提供一個(gè)對(duì)應(yīng)的doGet方法
import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Date; public class HelloServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp){ try { resp.getWriter().println("<h1>Hello Servlet!</h1>"); resp.getWriter().println(new Date()); } catch (IOException e) { e.printStackTrace(); } } }
- get與post的區(qū)別
- get 訪問(wèn)某個(gè)地址是get方式,提交的數(shù)據(jù)會(huì)在瀏覽器顯示出來(lái)。不可以提交二進(jìn)制數(shù)據(jù),比如上傳文件
- post 在form中通過(guò) method=“post” 顯示指定??梢蕴峤欢M(jìn)制文件
4.配置web.xml 目錄web/WEB-INF下創(chuàng)建web.xml文件。
servlet-mapping下建立了映射關(guān)系。使得/hello路徑映射到HelloServlet這個(gè)類
<?xml version="1.0" encoding="UTF-8"?> <web-app> <servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app>
5.配置tomcat的server.xml。在host標(biāo)簽下加入Context標(biāo)簽。其中path="/" 就表示直接通過(guò)localhost/hello就可以訪問(wèn)網(wǎng)頁(yè)。因?yàn)榕渲昧?“/” ,會(huì)與root目錄沖突。所以在配置完成后啟動(dòng)會(huì)發(fā)現(xiàn)root目錄消失。
在host標(biāo)簽下加入(mac使用/分隔,windows使用\,path使用/)
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Context path="/" docBase="http://Users//ryu//Desktop//working//github-project//j2ee//web" debug="0" reloadable="false" /> </Host>
重啟tomcat。docBase是j2ee的路徑,appBase不需要變,雖然項(xiàng)目沒(méi)有搭建在在tomcat的webapps下,但是docBase指向了我們應(yīng)用的目錄。
一些知識(shí)點(diǎn)
關(guān)于tomcat\work\下的Catalina
當(dāng)tomcat啟動(dòng)的時(shí)候,就會(huì)把webapps這個(gè)文件夾下的項(xiàng)目,進(jìn)行編譯,然后存放到Catalina目錄下
目錄結(jié)構(gòu)
jsp或html等文件是直屬于Webcontent,與【META-INF】【W(wǎng)EB-INF】平級(jí),不要將jsp文件放置到【W(wǎng)EB-INF】下面,WEB-INF是Java的WEB應(yīng)用的安全目錄。所謂安全就是客戶端無(wú)法訪問(wèn),只有服務(wù)端可以訪問(wèn)的目錄。放錯(cuò)會(huì)引起404錯(cuò)誤
關(guān)于啟動(dòng)
在IDEA中啟動(dòng),會(huì)將項(xiàng)目中的java文件(HelloServlet)編譯為class文件。所以如果是在控制臺(tái)下運(yùn)行tomcat的bin目錄下的startup文件啟動(dòng)tomcat,會(huì)因?yàn)槿鄙倬幾g過(guò)程導(dǎo)致運(yùn)行失敗【HTTP狀態(tài) 500 - 內(nèi)部服務(wù)器錯(cuò)誤】
在idea中運(yùn)行
到此這篇關(guān)于J2EE Servlet基礎(chǔ)在瀏覽器上運(yùn)行HelloServlet的文章就介紹到這了,更多相關(guān)J2EE Servlet瀏覽器上運(yùn)行HelloServlet內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java異常區(qū)分和處理的一些經(jīng)驗(yàn)分享
這篇文章介紹了Java異常區(qū)分和處理的一些經(jīng)驗(yàn)分享,主要是異常選擇和使用中的一些誤區(qū)總結(jié)與歸納,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11Open-Feign整合hystrix降級(jí)熔斷實(shí)戰(zhàn)記錄
這篇文章主要介紹了Open-Feign整合hystrix降級(jí)熔斷實(shí)戰(zhàn)記錄,本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09Java?Apache?common-pool對(duì)象池介紹
這篇文章主要介紹了Java Apache?common-pool對(duì)象池介紹,文章通過(guò)圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下2022-09-09maven <repositories>標(biāo)簽和<pluginRepositories>標(biāo)簽的使用
這篇文章主要介紹了maven <repositories>標(biāo)簽和<pluginRepositories>標(biāo)簽的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07java volatile關(guān)鍵字使用方法及注意事項(xiàng)
這篇文章主要介紹了java volatile關(guān)鍵字使用方法及注意事項(xiàng)的相關(guān)資料,當(dāng)一個(gè)變量被聲明為 volatile 后,java 內(nèi)存模型確保所有使用該變量的線程能看到相同的、一致的值。,需要的朋友可以參考下2017-07-07PowerJob的DesignateServer工作流程源碼解讀
這篇文章主要介紹了PowerJob的DesignateServer工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01