springmvc配置文件

 1.springmvc 接受請求訪問的流程以下所示:html

即:前端

DispatcherServlet是前置控制器,配置在web.xml文件中的。攔截匹配的請求,Servlet攔截匹配規則要本身定義,把攔截下來的請求,依據相應的規則分發到目標Controller來處理,是配置spring MVC的第一步。 
可是,咱們在搭建SpringMVC框架時,每每老是把DispatcherServlet的配置文件放錯位置。網上有的說:springDispatcherServletMVC-servlet.xml(暫且命名這麼一個springDispatcherServletMVC的dispatchservlet配置文件)應該放在WEB-INF下面(與web.xml放一塊兒);有的說:應該直接把springDispatcherServletMVC-servlet.xml放在src文件夾下面;有的說:在java resources下面新建一個config的resource folder,把配置文件都放在這個資源文件夾下面。那麼到底哪一種是正確的呢? 

答案是:這個要根據web.xml中DispatcherServlet的配置聲明有關係。

  

 

關於url-pattern的配置
url-pattern配置有三種:
1.*.do 訪問以.do結尾的由DispatcherServlet進行解析.

/(斜槓) 全部訪問的地址都由DispatcherServlet進行解析,對於靜態的文件解析須要配置,不讓DispatcherServlet進行解析.
注意:使用此種方式能夠實現 RESTful風格的url.
/* 這樣配置不對,使用這種配置,最終要轉發到一個jsp頁面時,仍然會由DispatcherServlet進行解析,可是不能根據這個jsp頁面找到handler因此會報錯.


注意:當你配置了Spring MVC,一樣仍是須要在web.xml中配置ContextLoaderListener監聽器的,雖然Spring MVC是Spring的一個模塊,能夠作到無縫整合,可是他們的配置是獨立的.

springmvc的配置文件通常都是在web.xml裏面指定位置的。其實,springmvc的配置文件有默認位置。所以,存在兩種配置方式:java

(1)採用指定位置配置方式,即在web.xml配置文件中指定springmvc配置文件的位置。web

當web.xml中DispatcherServlet配置聲明中,已經明確DispatcherServlet前端控制器配置文件的位置時,則必須將前端控制器的配置文件放在src下面,不能放在webcontent(webapp)下了,固然,在src的各級子文件夾中也是能夠的。通常放在java resources下面,或者在resources下新建一個config的文件夾專門用來存放配置文件,把配置文件都放在這個資源文件夾下面。 這種方式也是用的最多的一種。
文件結構以下: 

 

<!-- springmvc 前端控制器 -->
    <servlet>
        <servlet-name>dispatcherSerlet</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>dispatcherSerlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

 上面代碼中,明確了contextConfigLocation的地址爲:classpath:(即在classess文件夾下面),並且命名爲springmvc.xml(或者其餘名稱均可以),指定配置文件位置時,這個配置文件的名字能夠隨便取。 spring

(2)採用默認位置配置方式express

當web.xml中DispatcherServlet配置聲明中,沒有明確DispatcherServlet前端控制器配置文件的位置時,則系統默認DispatcherServlet前端控制器配置文件放在WEB-INF文件夾下。json

文檔結構以下:spring-mvc

 

<!--  Spring MVC 的Servlet,它將加載WEB-INF/springDispatcherServlet-servlet.xml 的配置文件,以啓動Spring MVC模塊-->    
    <servlet>
        <servlet-name>springDispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>springDispatcherServlet</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping> 

上面代碼聲明瞭一個命名爲springDispatcherServlet的前端控制器(DispatcherServlet),而且沒有指定該servlet配置文件的路徑,那麼系統將以默認名字springDispatcherServlet-servlet.xml在默認路徑/WEB-INF下尋找它,位置不正確,名字不正確,都會報錯。(這種命名是規定好的,前端控制器的名字-servlet這種形式。)websocket

 下面是spring-servlet.xml的配置cookie

 1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3        xmlns:context="http://www.springframework.org/schema/context"
 4        xmlns:mvc="http://www.springframework.org/schema/mvc"
 5        xmlns:p="http://www.springframework.org/schema/p"
 6        xmlns:websocket="http://www.springframework.org/schema/websocket"
 7        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 8        xsi:schemaLocation="http://www.springframework.org/schema/beans
 9        http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
10        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
11        http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
12        http://www.springframework.org/schema/websocket http://www.springframework.org/schema/websocket/spring-websocket-4.0.xsd">
13     <!-- <mvc:annotation-driven /> 會自動註冊DefaultAnnotationHandlerMapping與AnnotationMethodHandlerAdapter 兩個bean,是spring MVC爲@Controllers分發請求所必須的。它提供了數據綁定支持,讀取json的支持 -->
14     <mvc:annotation-driven />  
15     
16     <!-- 設置自動注入bean的掃描範圍,use-default-filters默認爲true,會掃描全部的java類進行注入 ,-->    
17     <!-- Use-dafault-filters=」false」的狀況下:<context:exclude-filter>指定的不掃描,<context:include-filter>指定的掃描 -->
18     <!-- springmvc和application文件都須要配置,但mvc文件只掃描controller類,application掃描不是controller類 -->    
19     <context:component-scan base-package="mytest.*" use-default-filters="false">
20         <context:include-filter expression="org.springframework.stereotype.Controller" type="annotation"/>
21     </context:component-scan>
22     
23     <!-- 文件上傳功能需該配置 -->
24     <bean class="org.springframework.web.multipart.commons.CommonsMultipartResolver" id="multipartResolver">
25     <property name="defaultEncoding" value="UTF-8"/>
26     </bean>
27     
28     <!-- ResourceBundleThemeSource是ThemeSource接口默認實現類-->
29     <bean class="org.springframework.ui.context.support.ResourceBundleThemeSource" id="themeSource"/>
30     
31     <!-- 用於實現用戶所選的主題,以Cookie的方式存放在客戶端的機器上-->
32     <bean class="org.springframework.web.servlet.theme.CookieThemeResolver" id="themeResolver" p:cookieName="theme" p:defaultThemeName="standard"/>
33     
34     <!-- 因爲web.xml文件中進行了請求攔截
35         <servlet-mapping> 
36             <servlet-name>dispatcher</servlet-name> 
37             <url-pattern>/</url-pattern> 
38         </servlet-mapping> 
39     這樣會影響到靜態資源文件的獲取,mvc:resources的做用是幫你分類完成獲取靜態資源的責任
40     -->
41     <mvc:resources mapping="/resources/**" location="/WEB-INF/resources/" />
42     
43     <!-- 配置使用 SimpleMappingExceptionResolver 來映射異常 -->
44     <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver" >
45     
46     <!-- 定義默認的異常處理頁面 -->  
47     <property name="defaultErrorView" value="error"/> 
48          <!-- 配置異常的屬性值爲ex,那麼在錯誤頁面中能夠經過 ${exception} 來獲取異常的信息若是不配置這個屬性,它的默認值爲exception-->
49         <property name="exceptionAttribute" value="exception"></property>
50         <property name="exceptionMappings">
51             <props>
52             <!-- 映射特殊異常對應error.jsp這個頁面 -->
53                 <prop key=".DataAccessException">error</prop>
54                 <prop key=".NoSuchRequestHandlingMethodException">error</prop>
55                 <prop key=".TypeMismatchException">error</prop>
56                 <prop key=".MissingServletRequestParameterException">error</prop>
57             </props>
58         </property>
59     </bean>
60     
61     <!-- 配置jsp視圖解析器 -->
62     <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="jspViewResolver">
63         <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
64         <property name="prefix" value=""/>
65         <property name="suffix" value=".jsp"/>
66     </bean>
67 </beans>

 

參考連接:

https://blog.csdn.net/qq_36324685/article/details/79928766

https://www.jianshu.com/p/9575e95a4eda

https://www.jianshu.com/p/6587555a7123

https://blog.csdn.net/zwl18210851801/article/details/78489021

http://www.cnblogs.com/ioufev/p/9950768.html

https://blog.csdn.net/sinat_25318461/article/details/60962122

https://www.cnblogs.com/Jason-Xiang/p/6544188.html

相關文章
相關標籤/搜索