Servlet urlPatterns配置

发布于:2022-07-26 ⋅ 阅读:(274) ⋅ 点赞:(0)

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

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

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

2.urlPatterns配置规则

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

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

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

示例代码:

package itheima.web;
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;

/**
 * urlPatterns匹配规则
 * 1.精确匹配
 */
@WebServlet(urlPatterns = "/user/select")
public class ServletDemo8 extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("你现在使用的是method为post.demo8");
    }
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("你现在使用的是method为get.demo8");
    }
}

 浏览器访问示例

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

(2)目录匹配

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

 访问路径:

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

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

 示例代码:

package itheima.web;
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;

/**
 * urlPatterns匹配规则
 * 2.目录匹配
 */
@WebServlet(urlPatterns = "/user/*")
public class ServletDemo9 extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("你现在使用的是method为post.demo8");
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("你现在使用的是method为get.demo9");
    }
}

 浏览器访问示例:

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

(3)扩展名匹配

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

 访问路径:

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

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

 示例代码: 

package itheima.web;
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;

/**
 * urlPatterns匹配规则
 * 2.扩展名匹配匹配
 */
@WebServlet(urlPatterns = "*.do")
public class ServletDemo10 extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("你现在使用的是method为post.demo8");
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("你现在使用的是method为get.demo10");
    }
}

 浏览器访问示例:

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

(4)任意匹配

 配置路径:

                @WebServlet("/") 

                @WebServlet(" /* ")  

 访问路径:

                localhost:8080//web-demo/haha

                localhost:8080//web-demo/hehe

 示例代码: 

package itheima.web;
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;

/**
 * urlPatterns匹配规则
 * 2.扩展名匹配匹配
 */
@WebServlet(urlPatterns = "/")
public class ServletDemo11 extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("你现在使用的是method为post.demo8");
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("你现在使用的是method为get.demo11");
    }
}

 浏览器访问示例:

 

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

 

 

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到