gpt4 book ai didi

java - Spring MVC 中的过滤器映射不适用于某些 URL

转载 作者:太空宇宙 更新时间:2023-11-04 14:05:21 25 4
gpt4 key购买 nike

我正在使用 HTML 过滤器从 jsp 页面和 servlet 的输出中删除空格。我正在学习使用 Spring MVC 进行 JSP 开发。所以我将过滤器映射和错误页面与 web.xml 文件一起使用,我的 web.xml 代码是

<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

<error-page>
<error-code>404</error-code>
<location>/error404</location>
</error-page>

<filter>
<filter-name>whitespaceFilter</filter-name>
<filter-class>test.web.htmlminify.HTMLMinifyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>whitespaceFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

我有三个 Controller ,没有方法,但只返回页面

HomeController, TestController, Error404Controller

其中有 homePage()、testPage() 和 errorPage() 方法,它们返回以下内容,

return "home";
return "test";
return "error";

我在 WEB-INF 文件夹之外确实有一个名为 abc.jsp 文件的 jsp 文件。

所以情况是,当我访问 localhost、localhost/abc.jsp、localhost/testpagelocalhost/error404

过滤器映射正在工作,因为当我在浏览器中看到 html 网页的源代码时,其中没有空格,但是当我尝试访问 localhost/ashhjblocalhost/kjdhvid/sdvfdjiu 类似的内容时,过滤器映射不起作用。这意味着当 servlet 调用“错误”页面而不是浏览器中的直接错误 Controller 方法时,我在 html 页面中看到空格。 localhost/error404 是直接调用错误页面servlet。那么有人可以帮助我并建议我应该做什么吗?

感谢您提前提供帮助。

最佳答案

正如@fzzfzzfzz所说,我需要添加这两个调度程序

<dispatcher>REQUEST</dispatcher>
<dispatcher>Error</dispatcher>

并且成功了。再次感谢@fzzfzzfzz

关于java - Spring MVC 中的过滤器映射不适用于某些 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28919183/

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