java - Spring Rest 按后缀/文件扩展名过滤
问题描述
我们希望通过 Spring Boot Webapp 传递一些 HTML 文件以及其他文件。我们希望通过仅为以 .html 结尾的 URI 创建一个 REST 端点来拆分 HTML 和非 HTML 流量。我们尝试了这样的事情但没有成功:(
@GetMapping(value = "/{*html}")
public String deliverHtml(HttpServletResponse response, HttpServletRequest request) {
return doSomeMagicStuff();
}
@GetMapping(value = "{*filepaths}/{*html}")
public String deliverHtml2(HttpServletResponse response, HttpServletRequest request) {
return doSomeMagicStuff();
}
不幸的是,上面的代码和其他一些变体不起作用
解决方案
这段代码对我来说很好。请注意,出于您的目的,您可以只使用蚂蚁模式(而不是真正的正则表达式)。
@RestController
@RequestMapping("filter-content")
public class FilterController {
@PostMapping(value = "*.xml")
public void onlyXml() {
System.out.println("Xml content");
}
@PostMapping(value = "*.html")
public void onlyHtml() {
System.out.println("Html content");
}
@PostMapping(value = "*")
public void otherContent() {
System.out.println("Other content");
}
}
PS:还考虑使用 POST 请求来“传递”内容。
推荐阅读
- api - OpenAPI 与 JSON:API
- r - 用 r 中的另一个数据替换列表中的每一行
- java - java构建过程中生成源是什么意思
- javascript - JavaScript,在异步函数中返回函数回调
- java - 无法转换为 class 。. . 是 loader 的未命名模块
- ghost-blog - 如何解决错误 503 Service Unavailable (Ghost)
- c# - ASP.NET Core 使用自定义 HttpClientHandler 模拟 HttpClient
- reactjs - 使用多个(最新)第 3 方反应库反应“未捕获的不变违规:元素类型无效”
- python - 尼泊尔数字的 Python 正则表达式
- javascript - 如何在不使用 javascript 和 django 刷新页面的情况下获取数据?