JavaWeb——urlPattern配置和XML配置Servlet

1.一个Servlet配置多个访问路径 

在WebServlet的配置里面urlPattern的类型是一个String数组 ,因此注解里面的参数设置可以如下

@WebServlet(urlPatterns = {"/demo7","/demo8"})
public class ServletDemo7 extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        System.out.println("demo7 get...");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {


    }
}

 2.urlPattern配置规则​​​​​​​

4种匹配的优先级

精确路径>目录路径>扩展名路径> /* > /

 2.1精确匹配

这种方式必须必须全部都一样

/**
 * urlPattern:
 *  * 精确匹配
 */

@WebServlet(urlPatterns = "/user/select")
public class ServletDemo8 extends HttpServlet {
    
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        System.out.println("demo8 get...");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    }
}

 2.2目录匹配

这个匹配不管user后面写什么都会匹配到这个页面,这个匹配不会和精确上匹配相冲突,

/**
 * urlPattern:
 *  * 目录匹配:/user/*
 */

@WebServlet(urlPatterns = "/user/*")
public class ServletDemo9 extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        System.out.println("demo9 get...");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    }
}

2.3扩展名匹配

这个如果写成@WebServlet(urlPatterns = "*.do")项目启动就会报错

/**
 * urlPattern:
 *  * 扩展名匹配: *.do
 */

@WebServlet(urlPatterns = "*.do")
public class ServletDemo10 extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        System.out.println("demo10 get...");
    }
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    }
}

 2.4任意匹配(不要使用这两种)

/*优先级高于/

 使用/会导致静态资源无法访问也就是会覆盖默认servlet 

/**
 * urlPattern:
 *  * 任意匹配:/或者/*
 */

//@WebServlet(urlPatterns = "/")
//@WebServlet(urlPatterns = "/*")
public class ServletDemo11 extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        System.out.println("demo11 get...");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    }
}

XML配置Servlet

这里需要在web.xml配置servlet的全类名和servlet的映射 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值