<url-pattern>写成/和/*的区别

<url-pattern>/</url-pattern>
会匹配到/springmvc这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url。

<url-pattern>/*</url-pattern>
会匹配所有的url:路径型的和后缀型的url(包括/springmvc,.jsp,.js和*.html等)。
下面是关于这个问题在stack overflow上的解释:
原文链接:http://stackoverflow.com/questions/4140448/difference-between-and-in-servlet-mapping-url-pattern
简单的翻译如下:
<url-pattern>/*</url-pattern>
这种形式将会覆盖所有其它的servlet。不管你发出了什么样的请求,最终都会在这个servlet中结束。因此,对于servlet来说,这是一个很糟糕的URL模式。通常来讲,你只会想要在一个Filter中使用这种模式。它可以通过调用doFilter()方法来使请求继续。
<url-pattern>/</url-pattern>
这种形式不会覆盖任何其它的servlet。它仅仅替换了servlet容器中内建的默认servlet。这种形式通常只用来请求静态资源(CSS/JS/image等)和展示目录的列表。servlet容器内建的默认servlet同样可以处理HTTP cache请求、媒体(声音/视频)流以及文件的下载。通常来说,你不会想要覆盖这个默认的servlet,否则,你将不得不自己处理一些琐碎的任务。因此,对于sevlet来说,这同样是一个糟糕的URL模式。说到为什么JSP页面的请求并不会命中这个servlet,那是因为servlet容器内建的JSP servlet将会被调用,而这个容器内建的JSP servlet已经默认地映射在了*.jsp上。
<url-pattern></url-pattern>
这种空串的形式。当上下文的根被请求的时候,它将被调用。这与<welcome-file>的方式是不同的,因为这种形式在当任何子目录被请求的时候不会被调用。当你期望一个“首页servlet”的时候,这种URL模式就是适合你的。

  • 20
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
假设你要在 Servlet 中调用上述方法来删除一组新闻,可以按照以下步骤操作: 1. 在 web.xml 文件中添加 Servlet 的映射: ``` <servlet> <servlet-name>DeleteNewsServlet</servlet-name> <servlet-class>com.example.DeleteNewsServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>DeleteNewsServlet</servlet-name> <url-pattern>/deleteNews</url-pattern> </servlet-mapping> ``` 2. 编 DeleteNewsServlet 类: ``` package com.example; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class DeleteNewsServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 从请求参数中获取要删除的新闻 ID 列表 String[] idArray = request.getParameterValues("id"); if (idArray == null || idArray.length == 0) { response.getWriter().write("参数错误"); return; } // 将字符串类型的 ID 转换整数类型 List<Integer> ids = new ArrayList<>(); for (String id : idArray) { ids.add(Integer.parseInt(id)); } // 调用 deleteNews 方法删除新闻 NewsService newsService = new NewsService(); List<News> deletedNews = newsService.deleteNews(ids); // 将被删除的新闻返回给客户端 response.getWriter().write(new ObjectMapper().writeValueAsString(deletedNews)); } } ``` 以上代码仅供参考,具体实现需要根据实际业务需求进行修改。需要注意的是,这里没有进行任何的参数校验和安全措施,如果你要将其用于生产环境,需要添加相应的安全保护。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值