1. 程式人生 > 其它 >JavaWeb14.1【servlet&http&request:Servlet的體系結構、相關配置】

JavaWeb14.1【servlet&http&request:Servlet的體系結構、相關配置】

 1 package com.haifei.web.servlet;
 2 
 3 import javax.servlet.*;
 4 import javax.servlet.annotation.WebServlet;
 5 import java.io.IOException;
 6 
 7 
 8 //@WebServlet("./demo1") //專案啟動是會報錯
 9 @WebServlet("/demo1") //千萬不要寫成"./demo1"
10 public class ServletDemo1 implements Servlet {
11 
12 
13     @Override
14
public void init(ServletConfig servletConfig) throws ServletException { 15 16 } 17 18 @Override 19 public ServletConfig getServletConfig() { 20 return null; 21 } 22 23 @Override 24 public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws
ServletException, IOException { 25 System.out.println("demo1...."); 26 //http://localhost/demo1 27 } 28 29 @Override 30 public String getServletInfo() { 31 return null; 32 } 33 34 @Override 35 public void destroy() { 36 37 } 38 }
 1 package com.haifei.web.servlet;
2 3 import javax.servlet.GenericServlet; 4 import javax.servlet.ServletException; 5 import javax.servlet.ServletRequest; 6 import javax.servlet.ServletResponse; 7 import javax.servlet.annotation.WebServlet; 8 import java.io.IOException; 9 10 @WebServlet("/demo2") 11 public class ServletDemo2 extends GenericServlet { 12 @Override 13 public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException { 14 System.out.println("demo2...."); 15 //http://localhost/demo2 16 } 17 }
 1 package com.haifei.web.servlet;
 2 
 3 import javax.servlet.ServletException;
 4 import javax.servlet.annotation.WebServlet;
 5 import javax.servlet.http.HttpServlet;
 6 import javax.servlet.http.HttpServletRequest;
 7 import javax.servlet.http.HttpServletResponse;
 8 import java.io.IOException;
 9 
10 @WebServlet("/demo3")
11 public class ServletDemo3 extends HttpServlet {
12     @Override
13     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
14 //        super.doGet(req, resp);
15         System.out.println("doGet.....");
16         /*
17         瀏覽器直接請求是doGet方式
18 
19         瀏覽器位址列http://localhost/demo3
20         控制檯輸出doGet.....
21          */
22     }
23 
24     @Override
25     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
26 //        super.doPost(req, resp);
27         System.out.println("doPost.....");
28         /*
29         截止目前學到的知識,只能通過表單實現doPost方式
30 
31         http://localhost/login.html
32         隨便輸入,點選提交,自動跳轉到http://localhost/demo3
33         控制檯輸出doPost.....
34          */
35     }
36 }
 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>Title</title>
 6 </head>
 7 <body>
 8     <form action="/demo3" method="post">
 9         <input name="username">
10         <input type="submit" value="提交">
11     </form>
12 </body>
13 </html>
 1 package com.haifei.web.servlet;
 2 
 3 import javax.servlet.ServletException;
 4 import javax.servlet.annotation.WebServlet;
 5 import javax.servlet.http.HttpServlet;
 6 import javax.servlet.http.HttpServletRequest;
 7 import javax.servlet.http.HttpServletResponse;
 8 import java.io.IOException;
 9 
10 /**
11  * Servlet路徑配置方式
12  */
13 //@WebServlet({"/d4","/dd4","/ddd4"})
14 //@WebServlet("/user/demo4")
15 //@WebServlet("/user/*") //*是萬用字元,寫啥都行
16 //@WebServlet("/*")
17 @WebServlet("*.do") //注意這種方式前面不要加/,並且do寫其他詞也行,隨便,比如.action等
18 public class ServletDemo4 extends HttpServlet {
19     @Override
20     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
21         System.out.println("demo4 .... doGet");
22         /*
23         瀏覽器位址列訪問
24         http://localhost/d4
25 26         http://localhost/dd4
27 28         http://localhost/ddd4
29         均可令控制檯輸出demo4 .... doGet
30          */
31 
32         //http://localhost/user/demo4
33 
34         /*
35         http://localhost/user/
36         http://localhost/user/hehe
37         http://localhost/user/heihei
38         http://localhost/user/haha
39         ...
40          */
41 
42         /*
43         http://localhost/
44         http://localhost/qdu
45         http://localhost/fuck
46         ...
47          */
48         /*
49         疑問:例如ServletDemo3類中設定了@WebServlet("/demo3")
50               此時ServletDemo4類中設定了@WebServlet("/*")
51               當瀏覽器訪問http://localhost/demo3時會怎樣
52        答案:doGet.....
53        解析:萬用字元*的優先順序最低,即其他方式都訪問不到時才會利用*訪問
54          */
55 
56         /*
57         http://localhost/.do
58         http://localhost/demo4.do
59         http://localhost/xxx.do
60         ....
61          */
62     }
63 }

tomcat8對應最大版本jdk1.8
tomcat7對應最大版本jdk1.7