You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tomcat运行时为何会渲染JSP?Vue+Spring架构无需JSP渲染该如何配置?

关闭Tomcat/Spring JSP渲染的配置方案

分两种常用场景配置:

1. 普通Spring MVC + 外置Tomcat 场景

  • 第一步:移除Spring MVC配置里的JSP视图解析器
    如果你之前的Spring配置(XML或JavaConfig)里声明了InternalResourceViewResolver,直接删除该Bean的配置即可,示例的待删除配置参考:
    // JavaConfig 待删除代码
    @Bean
    public InternalResourceViewResolver jspViewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/jsp/");
        resolver.setSuffix(".jsp");
        return resolver;
    }
    
    <!-- XML配置 待删除代码 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
    </bean>
    
  • 第二步:配置Tomcat禁止处理JSP请求
    修改WEB-INF/web.xml,添加如下配置覆盖Tomcat默认的JSP Servlet映射:
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.jsp</url-pattern>
    </servlet-mapping>
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>blockJSP</web-resource-name>
            <url-pattern>*.jsp</url-pattern>
        </web-resource-collection>
        <auth-constraint /> <!-- 空权限约束,所有JSP请求直接返回403 -->
    </security-constraint>
    
    也可以根据需求配置直接返回404,把上面的安全约束替换成自定义的错误页映射即可。

2. Spring Boot 内置Tomcat 场景

  • 直接在application.properties/application.yml添加如下配置:
    # 禁用JSP视图解析
    spring.mvc.view.prefix=
    spring.mvc.view.suffix=
    # 禁止Tomcat处理JSP
    server.tomcat.additional-tld-skip-patterns=*.jsp
    # 也可以直接排除JSP自动配置类,启动类上增加注解:
    # @SpringBootApplication(exclude = {JspAutoConfiguration.class})
    
  • 如果不需要处理任何静态资源以外的页面请求,直接配置所有请求走静态资源处理器即可,Spring Boot默认会把static目录下的Vue打包产物直接返回,不会走JSP渲染逻辑。

内容的提问来源于stack exchange,提问作者Captain_Bongcheon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 07:15:03