• Servlet urlPatterns配置


    * Servlet 想要被访问,必须配置其访问路径(urlPatterns)

    1.一个Servlet,可以配置多个urlPatterns

       例如:@WebServlet(urlPatterns = {"/demo7","/demo8"}) 

    2.urlPatterns配置规则

    (1)精确匹配(通过WebServlet对Servlet 配置的这个路径,和你浏览器访问的这个路径是一致的,就是精确匹配)

         配置路径:@WebServlet("/user/select") 

         访问路径:localhost:8080//web-demo/user/select

    示例代码:

    1. package itheima.web;
    2. import javax.servlet.ServletException;
    3. import javax.servlet.annotation.WebServlet;
    4. import javax.servlet.http.HttpServlet;
    5. import javax.servlet.http.HttpServletRequest;
    6. import javax.servlet.http.HttpServletResponse;
    7. import java.io.IOException;
    8. /**
    9. * urlPatterns匹配规则
    10. * 1.精确匹配
    11. */
    12. @WebServlet(urlPatterns = "/user/select")
    13. public class ServletDemo8 extends HttpServlet {
    14. @Override
    15. protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    16. System.out.println("你现在使用的是method为post.demo8");
    17. }
    18. @Override
    19. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    20. System.out.println("你现在使用的是method为get.demo8");
    21. }
    22. }

     浏览器访问示例

     控制台示例  (调用doGET方法)

    (2)目录匹配

     配置路径:@WebServlet(" /user/* ") 

     访问路径:

                    localhost:8080//web-demo/user/aaa

                    localhost:8080//web-demo/user/bbb

     示例代码:

    1. package itheima.web;
    2. import javax.servlet.ServletException;
    3. import javax.servlet.annotation.WebServlet;
    4. import javax.servlet.http.HttpServlet;
    5. import javax.servlet.http.HttpServletRequest;
    6. import javax.servlet.http.HttpServletResponse;
    7. import java.io.IOException;
    8. /**
    9. * urlPatterns匹配规则
    10. * 2.目录匹配
    11. */
    12. @WebServlet(urlPatterns = "/user/*")
    13. public class ServletDemo9 extends HttpServlet {
    14. @Override
    15. protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    16. System.out.println("你现在使用的是method为post.demo8");
    17. }
    18. @Override
    19. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    20. System.out.println("你现在使用的是method为get.demo9");
    21. }
    22. }

     浏览器访问示例:

     控制台示例 :调用doGET方法)

    (3)扩展名匹配

     配置路径:@WebServlet(" *.do ") 

     访问路径:

                    localhost:8080//web-demo/aaa.do

                    localhost:8080//web-demo/bbb.do

     示例代码: 

    1. package itheima.web;
    2. import javax.servlet.ServletException;
    3. import javax.servlet.annotation.WebServlet;
    4. import javax.servlet.http.HttpServlet;
    5. import javax.servlet.http.HttpServletRequest;
    6. import javax.servlet.http.HttpServletResponse;
    7. import java.io.IOException;
    8. /**
    9. * urlPatterns匹配规则
    10. * 2.扩展名匹配匹配
    11. */
    12. @WebServlet(urlPatterns = "*.do")
    13. public class ServletDemo10 extends HttpServlet {
    14. @Override
    15. protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    16. System.out.println("你现在使用的是method为post.demo8");
    17. }
    18. @Override
    19. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    20. System.out.println("你现在使用的是method为get.demo10");
    21. }
    22. }

     浏览器访问示例:

    控制台示例 :调用doGET方法)

    (4)任意匹配

     配置路径:

                    @WebServlet("/") 

                    @WebServlet(" /* ")  

     访问路径:

                    localhost:8080//web-demo/haha

                    localhost:8080//web-demo/hehe

    /*与/的区别:

           *如果项目中部署了”/“,会覆盖掉tomcat中的DefaultServlet,当其他的urlPatterns斗匹配不上时,就会走这个servlet

           *如果项目中部署了”/*“,意味着可以匹配任意访问路径

     示例代码: 

    1. package itheima.web;
    2. import javax.servlet.ServletException;
    3. import javax.servlet.annotation.WebServlet;
    4. import javax.servlet.http.HttpServlet;
    5. import javax.servlet.http.HttpServletRequest;
    6. import javax.servlet.http.HttpServletResponse;
    7. import java.io.IOException;
    8. /**
    9. * urlPatterns匹配规则
    10. * 2.扩展名匹配匹配
    11. */
    12. @WebServlet(urlPatterns = "/")
    13. public class ServletDemo11 extends HttpServlet {
    14. @Override
    15. protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    16. System.out.println("你现在使用的是method为post.demo8");
    17. }
    18. @Override
    19. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    20. System.out.println("你现在使用的是method为get.demo11");
    21. }
    22. }

     浏览器访问示例:

     

    控制台示例 :调用doGET方法)

     

     

  • 相关阅读:
    [论文笔记]E5
    信息系统项目管理师---第十七章 战略管理 第十八章 组织级项目管理 第十九章 流程管理
    咖啡屋时光书城【原创】
    Python飞机大战项目终篇(一步一步实现---最全笔记)
    Django REST项目实战:在线中文字符识别
    Word处理控件Aspose.Words功能演示:在 Python 中将 Word 文档转换为 EPUB
    最小均方算法(lsm)-python代码实现
    Centos7 查看磁盘i/o, 定位占用i/o读写高的进程
    【学习方法】学得差分数低?你掉进了这个学习陷阱!这个跳坑指南,让你高效学习,学习效率超级加倍!
    Windows自带硬盘测试工具使用教程
  • 原文地址:https://blog.csdn.net/qq_51272114/article/details/125998250