* 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方法)