大战熟女丰满人妻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的講解",希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為您服務。

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 成人爽a毛片在线视频网站 成人爽视频 | 999国产精品999久久久久久 | 久久久久久青草大香综合精品 | 国产一级影视 | 欧美人成人亚洲专区中文字幕 | 久草视频网址 | 亚洲国产欧美精品一区二区三区 | 天啪天干在线视频 | 91国在线| 久热这里只精品热在线观看 | 真人午夜a一级毛片 | 免费久久 | 久久综合久久久 | 日日操天天 | 在线观看日韩欧美 | 你懂的91 | porno xxxx日本| 欧美ⅹxxxx18性欧美 | 亚洲久久久久 | 99热久久精品首页 | 国产精品成在线观看 | 5252色欧美在线男人的天堂 | 曰本女人一级毛片看一级毛 | 福利一区在线视频 | 国产成人午夜片在线观看 | 可以免费观看一级毛片黄a 可以直接看的毛片 | 国产激情一区二区三区在线观看 | 亚洲福利社 | 天天狠狠色综合图片区 | 特级黄aaaaaaaaa毛片 | 国产伦精品一区二区三区免费迷 | 国产一区不卡 | 国产成人啪午夜精品网站 | 中国大陆一级毛片 | 伊人国产精品 | 成人性一级视频在线观看 | 99精品国产综合久久久久 | 国产福利不卡 | 久色阁| 亚洲日本高清 | 欧美日韩一级黄色片 |