一个 Servlet 如何处理多种请求?
1.使用后缀匹配模式
2.在 service 方法中获取请求资源路径,分析资源路径来决定作何处理
示例代码如下:
package priv.lwx.javaex.web_demo_02.web.servlet;import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;/*** 使用Servlet处理多种请求** @author liaowenxiong* @date 2021/12/23 12:00*/public class ServletDemo02 extends HttpServlet {public void service(HttpServletRequest request, HttpServletResponse response) {String uri = request.getRequestURI();String path = uri.substring(uri.lastIndexOf("/"), uri.lastIndexOf("."));System.out.println("uri: " + uri);System.out.println("path: " + path);if (path.equals("/list")) {System.out.println("list...");} else if (path.equals("/del")) {System.out.println("del...");} else if (path.equals("/add")) {System.out.println("add...");}}
}
web.xml 的配置如下:
<?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"><servlet><servlet-name>demo02</servlet-name><servlet-class>priv.lwx.javaex.web_demo_02.web.servlet.ServletDemo02</servlet-class></servlet><servlet-mapping><servlet-name>demo02</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>
</web-app>