jsp页面在tomcat部署后访问为源代码页面
程序员文章站
2022-03-11 19:13:46
...
今天后台跳转jsp页面,无法正常显示jsp页面显示的是源代码界面
就是这样的。
解决办法是,在web.xml里的<url-pattern>/*</url-pattern>改为<url-pattern>/</url-pattern>,即可正常显示
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springMVC.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
进一步推敲为何会这样
<url-pattern>/</url-pattern>拦截的是路径型的访问,例如/login这样的,而<url-pattern>/*</url-pattern>是对所有的路径型和后缀型的访问做拦截,如.jsp .html /login 这样的访问,这样就会出现返回jsp视图时再次进入spring的DispatcherServlet 类,导致找不到对应的controller,spring对这个的拦截和展示是源码输出,所以这就是问题所在,有其他地方看到,也可能会报404错误。
参考文章:https://blog.csdn.net/u012152037/article/details/78305789
https://blog.csdn.net/hei_chen/article/details/78909700,感谢这两位作者