1. 程式人生 > >spring mvc 配置servlet 時 url-pattern 為什麼配置 /* 不可以 而配置 / 則沒問題呢

spring mvc 配置servlet 時 url-pattern 為什麼配置 /* 不可以 而配置 / 則沒問題呢



我幫忙解答下吧 

1、在tomcat\conf\web.xml中定義了 

Java程式碼  收藏程式碼
  1. <servlet>  
  2.     <servlet-name>default</servlet-name>  
  3.     <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>  
  4.     <init-param>  
  5.         <param-name>debug</param-name>  
  6.         <param-value>0
    </param-value>  
  7.     </init-param>  
  8.     <init-param>  
  9.         <param-name>listings</param-name>  
  10.         <param-value>false</param-value>  
  11.     </init-param>  
  12.     <load-on-startup>1</load-on-startup>  
  13. </servlet>  

    <!-- The mapping for the default servlet --> 

    <servlet-mapping> 
        <servlet-name>default</servlet-name> 
        <url-pattern>/</url-pattern> 
    </servlet-mapping> 

即預設的,作用是如果,其主要作用就是如果過來的請求是如html/css/js等靜態資源時 讀取流返回。 

另外還一個類似的攔截所有*.jsp的 
Java程式碼  收藏程式碼
  1. <servlet>  
  2.       <servlet-name>jsp</servlet-name>  
  3.       <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>  
  4.       <init-param>  
  5.           <param-name>fork</param-name>  
  6.           <param-value>false</param-value>  
  7.       </init-param>  
  8.       <init-param>  
  9.           <param-name>xpoweredBy</param-name>  
  10.           <param-value>false</param-value>  
  11.       </init-param>  
  12.       <load-on-startup>3</load-on-startup>  
  13.   </servlet>  

   <!-- The mapping for the JSP servlet --> 
    <servlet-mapping> 
        <servlet-name>jsp</servlet-name> 
        <url-pattern>*.jsp</url-pattern> 
    </servlet-mapping> 

    <servlet-mapping> 
        <servlet-name>jsp</servlet-name> 
        <url-pattern>*.jspx</url-pattern> 
    </servlet-mapping> 


如果springmvc攔截的是/ 即替換掉了預設的,那麼這個時候我們可以使用如 
<mvc:default-servlet-handler/>   ---->委託給那個default 
<!-- 靜態資源對映 -->  
<mvc:resources mapping="/images/**" location="/WEB-INF/images/" />  
see http://jinnianshilongnian.iteye.com/blog/1423971

進行靜態資源的隨意映射了。 

我幫忙解答下吧 

1、在tomcat\conf\web.xml中定義了 

Java程式碼  收藏程式碼
  1. <servlet>  
  2.     <servlet-name>default</servlet-name>  
  3.     <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>  
  4.     <init-param>  
  5.         <param-name>debug</param-name>  
  6.         <param-value>0</param-value>  
  7.     </init-param>  
  8.     <init-param>  
  9.         <param-name>listings</param-name>  
  10.         <param-value>false</param-value>  
  11.     </init-param>  
  12.     <load-on-startup>1</load-on-startup>  
  13. </servlet>  

    <!-- The mapping for the default servlet --> 
    <servlet-mapping> 
        <servlet-name>default</servlet-name> 
        <url-pattern>/</url-pattern> 
    </servlet-mapping> 

即預設的,作用是如果,其主要作用就是如果過來的請求是如html/css/js等靜態資源時 讀取流返回。 

另外還一個類似的攔截所有*.jsp的 
Java程式碼  收藏程式碼
  1. <servlet>  
  2.       <servlet-name>jsp</servlet-name>  
  3.       <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>  
  4.       <init-param>  
  5.           <param-name>fork</param-name>  
  6.           <param-value>false</param-value>  
  7.       </init-param>  
  8.       <init-param>  
  9.           <param-name>xpoweredBy</param-name>  
  10.           <param-value>false</param-value>  
  11.       </init-param>  
  12.       <load-on-startup>3</load-on-startup>  
  13.   </servlet>  

   <!-- The mapping for the JSP servlet --> 
    <servlet-mapping> 
        <servlet-name>jsp</servlet-name> 
        <url-pattern>*.jsp</url-pattern> 
    </servlet-mapping> 

    <servlet-mapping> 
        <servlet-name>jsp</servlet-name> 
        <url-pattern>*.jspx</url-pattern> 
    </servlet-mapping> 


如果springmvc攔截的是/ 即替換掉了預設的,那麼這個時候我們可以使用如 
<mvc:default-servlet-handler/>   ---->委託給那個default 
<!-- 靜態資源對映 -->  
<mvc:resources mapping="/images/**" location="/WEB-INF/images/" />  
see http://jinnianshilongnian.iteye.com/blog/1423971

進行靜態資源的隨意映射了。