web 项目无法访问html,但是可以访问jsp

问题简述:可以访问以.jsp为后缀的页面,不能访问.html为后缀的页面

检查web.xml中的【url-pattern】的设置

  <servlet>
  	<servlet-name>spring-mvc</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<!-- 指定路径 -->
  	<init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>classpath:spring-mvc.xml</param-value>
  	</init-param>
  	<!-- 随spring启动而启动 -->
  	<load-on-startup>1</load-on-startup>
  </servlet>
  
 
  <!-- Servlet Mapping -->
    <servlet-mapping>
        <servlet-name>spring-mvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

原因:【/】:它会拦截所有的url,如:/test,/test1.html,/1.jpg……,但是除了以jsp结尾的url不会交给前端控制器。所以导致了不能访问html文件。对于*.jsp,由于servlet容器中内置了jspServlet,所以不会被/拦截

解决方法:

在上述代码前插入以下代码,那么符合相应的【url-pattern】规则的访问,就会由默认servlet处理。

<servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.css</url-pattern>
    </servlet-mapping>
 
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.png</url-pattern>
    </servlet-mapping>
 
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.jpg</url-pattern>
    </servlet-mapping>
 
    <servlet-mapping>
        <servlet-name>default</servlet-name>
        <url-pattern>*.gif</url-pattern>
    </servlet-mapping>
        <servlet-mapping> 
            <servlet-name>default</servlet-name> 
            <url-pattern>*.html</url-pattern> 
    </servlet-mapping>

猜你喜欢

转载自blog.csdn.net/Henry_Lin_Wind/article/details/81110635
今日推荐