Servlet-URL模式設置

請求如何與Servlet對應

通過前面學習,已初步瞭解Web容器工作過程以及Servlet的生命週期。但是請求如何與Servlet對應?

方法A:使用標註

標註?
在這裏插入圖片描述
即上圖中的 @WebServlet() 標籤。從Java EE 6的Servlet 3.0之後推出的功能。用於告訴Web容器如果請求的URI是/random_name,則由Demo的實例提供服務。

@WebServlet("/random_name")
public class Demo extends HttpServlet {
 	private static final long serialVersionUID = 1L;
 	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  		PrintWriter p = response.getWriter();
  		p.printf("<h1>hello world</h1>");
 	}
}

當URI是/random_name時,則響應“Hello world”。
在這裏插入圖片描述
換個標籤再試一次!

@WebServlet("/change")

在這裏插入圖片描述

方法B:配置web.xml文件

在Serlvet 3.0沒有標註之前,只能通過配置web.xml文件設置對應的Servlet對象。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0">
  <servlet>
      <servlet-name>demo</servlet-name>
      <servlet-class>home.Demo</servlet-class>
  </servlet>
  <servlet-mapping>
      <servlet-name>demo</servlet-name>
      <url-pattern>/random</url-pattern>
  </servlet-mapping>
</web-app>

如上述代碼所述,配置
在這裏插入圖片描述
兩對標籤,可以綁定URI與對應的servlet。
先看下效果,在解讀web.xml文件對應的標籤。
在這裏插入圖片描述
對比兩對標籤可以發現,都有servlet-name,且兩個值相同。中間的名字可以任意,但需要記住兩個值必須相同
第一對標籤裏內容。
在這裏插入圖片描述
servlet-class設置對應的servlet實例名稱。這個值不是任取的,必須與自己已定義的servlet相對應,且注意包名。如下所示:
在這裏插入圖片描述
第二對標籤裏內容:
在這裏插入圖片描述
url-pattern標籤設置url路徑名,值可以任取。
通過上述分析,是否覺得有種映射的感覺?
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章