大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 配置SpringMVC的講解

配置SpringMVC的講解

更新時間:2021-06-11 15:47:33 來源:動力節點 瀏覽1118次

SpringMVC默認就是以轉發的形式響應JSP,也就是說直接返回視圖名稱的方式就是轉發

重定向:需要使用redirect:+視圖路徑,當然也可以重定向到指定url再次進行處理,比如:redirect:/user/list

需要注意的是業務方法中,設置重定向不能像轉發一樣寫邏輯視圖,必須寫明目標資源的物理路徑,如"redirect:/index.jsp"

    @RequestMapping("redirectTest")
    public String redirectTest(){
        return "redirect:/index.jsp";
    }

中文亂碼配置

如果是get請求帶中文參數,后臺接收到亂碼,需要修改tomcat的配置(或者Maven項目中修改tomcat插件配置)

    <!-- 1.tomcat 修改配置文件server.xml,添加URIEncoding -->
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding ="UTF-8"/>
    <!-- Maven項目中修改tomcat插件編碼 -->
    <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
            <uriEncoding>UTF-8</uriEncoding>
        </configuration>
    </plugin>

如果請求中接收到參數沒有亂碼,但是返回json字符串時候亂碼了,可以添加produce解決

每個方法加produce解決未免過于麻煩,那么可以修改轉換器的編碼處理,這里處理String的轉換器為StringHttpMessageConverter,查看源碼發現默認的編碼是ISO-8859-1

所以在springmvc配置文件中統一修改

    <!-- 注解驅動 -->
    <mvc:annotation-driven>
        <!-- 處理請求返回json字符串的中文亂碼問題 -->
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <constructor-arg value="UTF-8" />
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

針對POST表單提交,我們還需要配置過濾器進行統一編碼處理(最好都配上),該過濾器就是springmvc自帶CharacterEncodingFilter,查看源碼可知,配置forceEncoding將會強制使用這里配置的編碼,而不管請求響應有沒有設置編碼

     <filter>  
        <filter-name>encodingFilter</filter-name>  
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
        <init-param>  
            <param-name>encoding</param-name>  
            <param-value>UTF-8</param-value>  
        </init-param>  
        <init-param>  <!--強制使用Encoding設置的編碼格式-->
           <param-name>forceEncoding</param-name>
           <param-value>true</param-value>
       </init-param>
    </filter>  
    <filter-mapping>  
        <filter-name>encodingFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>

加入Spring的配置

真正的應用肯定少不了Spring,所以這里將spring配置加上

    <!-- spring應用上下文 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/configs/spring/applicationContext*.xml</param-value>
    </context-param>
    
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

springmvc的上下文層級,理解層次化的ApplicationContext

配置springmvc

帶小s的loaderlistener所加載形成的上下文,可以有多個,為我們提供了所有應用公共所使用的組件和服務,如sevice、dao,這些服務應該被整個應用所共享,而不應該被局限在某個dispatcherServlet上下文之中

不帶小s的,就是與我們的dispatcherServlet相關的上下文。dispatcherservlet可以有多個,因為在現在的互聯網中,一個應用可能需要提供多種服務,而讓dispatcherservlet針對不同的服務請求去分發。因為有些服務是完全不同于其他服務的,所以需要作區分,根據配置的url-pattern進行攔截。

spring配置文件

    <context:component-scan base-package="com.rxy.mvcdemo">
        <!-- 不需要管理controller -->
        <context:exclude-filter type="annotation"
            expression="org.springframework.stereotype.Controller" />
    </context:component-scan>

&lt;MVC:annotation-driven/&gt;

該配置作用是注冊RequestMappingHandlerMapping與RequestMappingHandlerAdapter兩個Bean,這是Spring MVC為 Controller分發請求所必需的,并且提供了數據綁定支持, NumberFormatannotation支持, DateTimeFormat支持, Valid支持讀寫XML的支持(JAXB)和讀寫JSON的支持(默認Jackson)等功能

靜態資源映射

location:指location指定的目錄不要攔截,直接請求

mapping:指在static目錄下的所有文件(**代表所有文件)

cache-period:設置靜態資源在客戶端瀏覽器中的緩存有效時間

該配置意思就是在根目錄下static的所有文件不會被DispatcherServlet攔截,直接訪問,當做靜態資源交給Servlet處理

<!-- 靜態資源映射 -->
<mvc:resources mapping="/static/**" location="/static/" cache-period="31536000"/>

配置ViewResolver

可以配置多個ViewResolver。使用order屬性排序。InternalResourceViewResolver需要放在最后。

    <bean
        class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">
        <property name="order" value="1" />
        <property name="mediaTypes">
            <map>
                <entry key="json" value="application/json" />
                <entry key="xml" value="application/xml" />
                <entry key="htm" value="text/html" />
            </map>
        </property>

        <property name="defaultViews">
            <list>
                <!-- JSON View -->
                <bean
                    class="org.springframework.web.servlet.view.json.MappingJackson2JsonView">
                </bean>
            </list>
        </property>
        <property name="ignoreAcceptHeader" value="true" />
    </bean>

    <bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass"
            value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix" value="/WEB-INF/jsps/" />
        <property name="suffix" value=".jsp" />
    </bean>

使用Servlet相關對象

如果想在方法中直接使用HttpServletRequest、HttpServletResponseHttpSession等對象,需要引入servlet的依賴包

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
        <!-- 編譯測試有效,必須設置,否則運行tomcat容器會報錯 -->
        <scope>provided</scope>
    </dependency>

以上就是動力節點小編介紹的"配置SpringMVC的講解",希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為您服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 综合久久一区二区三区 | 一级毛片特级毛片免费的 | 九九热精品国产 | 日韩精品一区二区三区视频 | 久久久久久久综合日本亚洲 | 黄视频在线观看www 黄视频在线观看网站 | 九月丁香婷婷亚洲综合色 | 亚洲精品美女国产一区 | 福利视频二区 | 国产 日韩 欧美 亚洲 | 免费99精品国产自在现线观看 | 香蕉tv亚洲专区在线观看 | 国产第二区 | 日韩精品另类天天更新影院 | 免费观看成人毛片 | 免费国产成人午夜在线观看 | 日本黄色录象 | 九色国产在视频线精品视频 | 国产91在线精品福利 | 一级片按摩 | 一区二区日韩 | 亚欧在线视频 | 香蕉免费一区二区三区在线观看 | 欧美一级高清在线观看 | 亚洲免费在线 | 日本高清h色视频在线观看 日本高清不卡二区 | 日本一级毛片a免费播放 | 亚洲综合伊人色一区 | 色综合色狠狠天天综合色hd | 亚洲国产精品久久精品成人 | 四虎影视永久地址www成人 | 免费一级毛片在线播放泰国 | 久久精品一区二区三区日韩 | 亚洲国产精品久久精品成人 | 亚洲欧美日韩在线观看二区 | 91久久线看在观草草青青 | 国产女人嗷嗷叫 | 一区二区三区在线观看免费 | 国产成人精品午夜二三区 | 色花堂国产精品第二页 | 国产中文欧美 |