urlParrern配置
【摘要】 urlParrern配置之前我们采用注解的方式配置这个访问路径,只设置了一个访问路径。其实还可以配置多个访问路径。就像这样。@WebServlet(urlPatterns = {"/demo7","/demo07"})其实我们这样的配置就是一种路径匹配规则或者说是项目匹配访问规则。下面我们介绍几种匹配规则1:精确匹配我们在注解中这样写的话,将来我们访问的化需要通过这个完整的路径来访问项目。...
urlParrern配置
之前我们采用注解的方式配置这个访问路径,只设置了一个访问路径。其实还可以配置多个访问路径。就像这样。
@WebServlet(urlPatterns = {"/demo7","/demo07"})
其实我们这样的配置就是一种路径匹配规则或者说是项目匹配访问规则。
下面我们介绍几种匹配规则
1:精确匹配
我们在注解中这样写的话,将来我们访问的化需要通过这个完整的路径来访问项目。
eg:
@WebServlet("/jgdabc/666")
2:目录匹配
eg:
/@WebServlet(urlPatterns = "/user/*") 目录匹配
将来我们访问的时候首先需要输入user,然后后面可以跟上任何路径。
3:扩展名匹配
@WebServlet("*.do")
将来访问的时候前面可以加上任何路径,但是后面需要加上do的扩展名。
4:任意匹配
//@WebServlet("/")
//@WebServlet("/*")
任意匹配不建议使用
- 当我们的项目中的Servlet配置了 “/”,会覆盖掉tomcat中的DefaultServlet,当其他的url-pattern都匹配不上时都会走这个Servlet
- 当我们的项目中配置了"/*",意味着匹配任意访问路径
- DefaultServlet是用来处理静态资源,如果配置了"/"会把默认的覆盖掉,就会引发请求静态资源的时候没有走默认的而是走了自定义的Servlet类,最终导致静态资源不能被访问
测试用例
package jgd;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/jgdabc/666")
//可配置多个访问路径,这是精确匹配
//@WebServlet(urlPatterns = {"/demo7","/demo07"})
//@WebServlet(urlPatterns = "/user/*") 目录匹配
//当精确匹配和目录匹配同时都满足的时候,精确匹配优先级别更高
//@WebServlet("*.do") 扩展名匹配
//任意匹配
// /* 的优先级高于/
//@WebServlet("/")
//@WebServlet("/*")
public class ServletDemo7 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("demo7get...");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// super.doPost(req, resp);
}
}
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)