1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      Tomcat中的servlet配置理解

      剛開始使用Servlet時,因為web.xml的url-pattern和html中form表單的action的訪問路徑配置不對,總是出現(xiàn)404頁面不存在的錯誤。根本原因是對Tomcat處理Http請求的過程理解不深。

      子長網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)成立與2013年到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。

      Tomcat處理Http請求過程:

      1) 請求被發(fā)送到本機端口8080,被在那里偵聽的Coyote HTTP/1.1 Connector獲得
      2) Connector把該請求交給它所在的Service的Engine來處理,并等待來自Engine的回應(yīng)
      3) Engine獲得請求localhost/TestTomcat/loginSucceed,匹配它所擁有的所有虛擬主機Host
      4) Engine匹配到名為localhost的Host
      5) localhost Host獲得請求/TestTomcat/loginSucceed,匹配它所擁有的所有Context
      6) Host匹配到路徑為/TestTomcat的Context
      7) path="/TestTomcat"的Context獲得請求/loginSucceed,在它的mapping table中尋找對應(yīng)的servlet
      8) Context匹配到URL PATTERN為/loginSucceed的servlet,對應(yīng)于HelloServlet類
      9) 構(gòu)造HttpServletRequest對象和HttpServletResponse對象,作為參數(shù)調(diào)用HelloServlet的doGet或doPost方法
      10)Context把執(zhí)行完了之后的HttpServletResponse對象返回給Host
      11)Host把HttpServletResponse對象返回給Engine
      12)Engine把HttpServletResponse對象返回給Connector
      13)Connector把HttpServletResponse對象返回給客戶browser

      對以上過程不理解的可以查看我轉(zhuǎn)載的博文:Tomcat工作原理詳解

      從以上過程可以看出:一個完整的Http URL在Tomcat中被層層剝離,首先通過域名(上面的localhost)匹配虛擬主機,并將/TestTomcat/loginSucceed傳給對應(yīng)主機;然后主機通過/TestTomcat匹配Context的path,將/loginSucceed傳給特定的Context(其實就是web應(yīng)用,因為一臺主機上可以同時運行多個web應(yīng)用,即為多個web應(yīng)用提供服務(wù)器的功能);Context根據(jù)/loginSucceed來匹配Servlet,通過和url-pattern來匹配。所以我們在web.xml中的url-pattern中不能帶項目名。而form表單中的action指向的URL是主機名后的部分,如上面的/TestTomcat/loginSucceed,所以此處一定要加上項目名(用來匹配哪個Context,即web應(yīng)用)

      以下是類似實踐:

      我建了個TestTomcat項目,建包com.heyujun.servlet,包下建類HelloServlet

      HelloServlet類:

      注意:在類中的URL路徑配置有兩種方法:

      1、response.sendRedirt("/TestTomcat/loginSucceed1.html");
      //此處如果想讓瀏覽器訪問longinSucceed.html文件,一定要加上項目名,和.html;而且這會使瀏覽器顯示的URL改變

      2、response.sendRedirt("loginSucceed1.html");如果不想帶上項目名,就直接寫HTML、JSP等文件的名字,一定不要加"/",不要寫成response.sendRedirt("/loginSucceed1.html");

      猜測源碼是根據(jù)URL前是否有"/",如果有就將緊跟"/"的文件名作為項目名。如果過寫成response.sendRedirt("/loginSucceed1.html");可能會把loginSucceed1.html作為項目名,而機器上并不存在該項目,所以報404錯誤

      public class HelloWorld extends HttpServlet { private String message; public void init() throws ServletException { // 執(zhí)行必需的初始化 message = "Hello World"; } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.sendRedirt("/TestTomcat/loginSucceed1.html"); // response.sendRedirt("loginSucceed1.html"); } public void destroy() { // 什么也不做 } }

      web.xml:

      /loginSucceed//注意此處一定不要再加上項目路徑即Context的path,而且前面一定要加"/",否則啟動失敗

      welcome.html welcome.htm welcome.jsp HelloServlet com.heyujun.servlet.HelloServlet HelloServlet /loginSucceed//注意此處一定不要再加上項目路徑即Context的path

      welcome.html:

      下面提交表單的action="/TestTomcat/loginSucceed",我覺得這里的路徑配置也是和上面一樣有兩種方法,理由同HelloServlet類中所述

      1、action="/TestTomcat/loginSucceed"

      2、action="loginSucceed"

      login page

      //注意:此處一定要加上項目路徑即Context的path,用來找特定的webapp,后面的/loginSucceed才是Servlet對應(yīng)的url //而web.xml中的 url-pattern就是此處的/loginSucceed First name:
      Last name:


      網(wǎng)頁標(biāo)題:Tomcat中的servlet配置理解
      本文URL:http://www.ef60e0e.cn/article/chojss.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        庆安县| 元阳县| 紫云| 武宁县| 屯昌县| 申扎县| 阿克陶县| 福建省| 永胜县| 五莲县| 怀化市| 南澳县| 固安县| 西乌| 司法| 鲁甸县| 华蓥市| 镶黄旗| 临清市| 亚东县| 嘉峪关市| 清流县| 读书| 岢岚县| 吉木萨尔县| 康平县| 务川| 中山市| 宁南县| 顺平县| 澄城县| 西青区| 广饶县| 黑山县| 宁强县| 新郑市| 临城县| 梅州市| 旬阳县| 股票| 乐平市|