2022.5.7 Mapping问题
Mapping问题
-
一个Servlet可以指定一个映射路径 http://localhost:8080/s1/hello
1 <!--ervlet的请求路径--> 2 <servlet-mapping> 3 <!--与注册的名字一致--> 4 <servlet-name>hello</servlet-name> 5 <!--路径--> 6 <url-pattern>/hello</url-pattern> 7 </servlet-mapping>
-
一个Servlet可以指定多个映射路径
http://localhost:8080/s1/hello
1 <!--Servlet的请求路径--> 2 <servlet-mapping> 3 <!--与注册的名字一致--> 4 <servlet-name>hello</servlet-name> 5 <!--路径--> 6 <url-pattern>/hello</url-pattern> 7 </servlet-mapping> 8 <!--前端请求hello就会走注册的类--> 9 10 <servlet-mapping> 11 <servlet-name>hello</servlet-name> 12 <url-pattern>/hello2</url-pattern> 13 </servlet-mapping> 14 15 <servlet-mapping> 16 <servlet-name>hello</servlet-name> 17 <url-pattern>/hello3</url-pattern> 18 </servlet-mapping>
-
一个Servlet可以指定通用映射路径 *通配符
1 <!--ervlet的请求路径--> 2 <servlet-mapping> 3 <!--与注册的名字一致--> 4 <servlet-name>hello</servlet-name> 5 <!--路径--> 6 <url-pattern>/hello/*</url-pattern> 7 </servlet-mapping>
-
默认请求路径:直接走Tomcat请求
1 <servlet-mapping> 2 <servlet-name>hello</servlet-name> 3 <url-pattern>/*</url-pattern> 4 </servlet-mapping>
-
指定一些后缀或者前缀等等.... 后缀必须是自己指定的才能进入
注意:*前不能有路径 错误: /hello/ *.xing
http://localhost:8080/s1/jkaldjflakjdlf.xing
http://localhost:8080/s1/hello/jkaldjflakjdlf.xing 后缀是xing就可以
1 <servlet-mapping> 2 <servlet-name>hello</servlet-name> 3 <url-pattern>*.xing</url-pattern> 4 </servlet-mapping>
自己设置404网页
1 package com.xing.servlet; 2 3 import javax.servlet.ServletException; 4 import javax.servlet.http.HttpServlet; 5 import javax.servlet.http.HttpServletRequest; 6 import javax.servlet.http.HttpServletResponse; 7 import java.io.IOException; 8 import java.io.PrintWriter; 9 10 public class ErrorServlet extends HttpServlet { 11 @Override 12 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 13 resp.setContentType("text/html"); 14 resp.setCharacterEncoding("utf-8"); 15 16 PrintWriter pw = resp.getWriter(); 17 pw.print("<h1>404</h1>"); 18 } 19 20 @Override 21 protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 22 doGet(req, resp); 23 } 24 }
1 <?xml version="1.0" encoding="UTF-8"?> 2 <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 5 http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" 6 version="4.0" 7 metadata-complete="true"> 8 9 <servlet> 10 <servlet-name>hello</servlet-name> 11 <servlet-class>com.xing.servlet.HelloServlet</servlet-class> 12 </servlet> 13 <servlet-mapping> 14 <servlet-name>hello</servlet-name> 15 <url-pattern>/hello</url-pattern> 16 </servlet-mapping> 17 18 <servlet> 19 <servlet-name>error</servlet-name> 20 <servlet-class>com.xing.servlet.ErrorServlet</servlet-class> 21 </servlet> 22 <servlet-mapping> 23 <servlet-name>error</servlet-name> 24 <!-- 默认网址 /* 乱输入的网址会走默认的网页--> 25 <url-pattern>/*</url-pattern> 26 </servlet-mapping> 27 28 </web-app>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?