gpt4 book ai didi

java - 如何在 Controller 上获取在 web.xml 上定义为默认 servlet 映射的端点的请求?

转载 作者:行者123 更新时间:2023-12-02 03:52:42 25 4
gpt4 key购买 nike

我正在开发一个服务器,我们使用第三方 API 提供商来提供特定服务。第三方发送图像端点。例如。 “/media/image/image.jpg”。该图像可在第三方基本 URL 上获取。

我需要在我们的基本网址上提供该图像。为此我有一个 Controller 。

@RequestMapping(value = "/media/movie/{imageName}", method = RequestMethod.GET)
public void getMovieImage(@PathVariable("imageName") String imageName, HttpServletResponse response) throws IOException {
String type = imageName.split(".")[imageName.split("\\.").length - 1];
String imageUrl = getBaseUrl() + imageName;
BufferedImage image = ImageIO.read(new URL(imageUrl));
response.setStatus(HttpServletResponse.SC_OK);
response.setContentType("image/" + type);
ImageIO.write(image, type, response.getOutputStream());
}

但问题是 *.jpg 被定义为 web.xml 上的默认 servlet 映射。

<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>`

因此请求无法到达 Controller 并显示 404。

如何在我的 Controller 上获取请求,或者是否有其他方法可以解决该问题?

最佳答案

您可以添加过滤器的初始化参数excludedUrls,并检查过滤器(如果它不在排除列表中)。请参阅full example

if(!excludedUrls.contains(path))

关于java - 如何在 Controller 上获取在 web.xml 上定义为默认 servlet 映射的端点的请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56768717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com