Servlet 02 ----【javaweb-05】
阿新 • • 發佈:2020-08-01
SERVLET
1、Servlet原理
客戶端傳送請求至伺服器;伺服器啟動並呼叫 Servlet,Servlet 根據客戶端請求生成響應內容並將其傳給伺服器;伺服器將響應返回客戶端。下面就讓我用一張原理圖來展示一下吧。2、Servlet的對映
我們需要將內容響應給瀏覽器時,我們需要使用到對映。在一般的maven專案中,都會有一個web.xml的檔案,我們將在其中使用mapper對映即可響應給瀏覽器。(在Servlet 01的展示中,我們同樣也是用到了mapper,才讓瀏覽器展示出內容)
具體程式碼:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0" metadata-complete="true"> <!--註冊servlet--> <servlet> <servlet-name>hello</servlet-name> <servlet-class>com.charles.servlet.HelloServlet</servlet-class> </servlet> <!-- servlet的請求路徑--> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> </web-app>
註冊和請求路徑缺一不可,其中servlet-name 和 url-pattern是自定義的,但是請求路徑和註冊的servlet-name要一一對應。
<!--404--> <servlet> <servlet-name>error</servlet-name> <servlet-class>com.kuang.servlet.ErrorServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>error</servlet-name> <url-pattern>/*</url-pattern> <!-- 預設的請求路徑 --> </servlet-mapping>
2. 可以自定義字尾實現請求對映:
<!--注意點,*前面不能加專案對映的路徑--> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>*.charles</url-pattern> </servlet-mapping>
3.一個Servlet可以指定通用對映路徑
<servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello/*</url-pattern> </servlet-mapping>
4.一個Servlet可以指定多個對映路徑
<servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello2</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello3</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello4</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello5</url-pattern> </servlet-mapping>