中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

SpringMVC配置XML

核心架構(gòu)的具體流程步驟如下下載地址

10年積累的成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營銷網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有龍安免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

1、 首先用戶發(fā)送請(qǐng)求——>DispatcherServlet,前端控制器收到請(qǐng)求后自己不進(jìn)行處理,而是委托給其他的解析器進(jìn)行處理,作為統(tǒng)一訪問點(diǎn),進(jìn)行全局的流程控制;

2、 DispatcherServlet——>HandlerMapping, HandlerMapping將會(huì)把請(qǐng)求映射為HandlerExecutionChain對(duì)象(包含一個(gè)Handler處理器(頁面控制器)對(duì)象、多個(gè)HandlerInterceptor攔截器)對(duì)象,通過這種策略模式,很容易添加新的映射策略;

3、 DispatcherServlet——>HandlerAdapter,HandlerAdapter將會(huì)把處理器包裝為適配器,從而支持多種類型的處理器,即適配器設(shè)計(jì)模式的應(yīng)用,從而很容易支持很多類型的處理器;

4、 HandlerAdapter——>處理器功能處理方法的調(diào)用,HandlerAdapter將會(huì)根據(jù)適配的結(jié)果調(diào)用真正的處理器的功能處理方法,完成功能處理;并返回一個(gè)ModelAndView對(duì)象(包含模型數(shù)據(jù)、邏輯視圖名);

5、 ModelAndView的邏輯視圖名——> ViewResolver, ViewResolver將把邏輯視圖名解析為具體的View,通過這種策略模式,很容易更換其他視圖技術(shù);

6、 View——>渲染,View會(huì)根據(jù)傳進(jìn)來的Model模型數(shù)據(jù)進(jìn)行渲染,此處的Model實(shí)際是一個(gè)Map數(shù)據(jù)結(jié)構(gòu),因此很容易支持其他視圖技術(shù);

7、返回控制權(quán)給DispatcherServlet,由DispatcherServlet返回響應(yīng)給用戶,到此一個(gè)流程結(jié)束。

 

 

1、 前端控制器DispatcherServlet;

2、 HandlerMapping

3、 HandlerAdapter

4、 ViewResolver

5、 處理器/頁面控制器

6、 視圖

 

 

配置DispatcherServlet

DispatcherServlet是SpringMVC的核心,將下面Servlet的注冊(cè)信息登記在web.xml中。
初始化 DispatcherServlet 時(shí),該框架在 web 應(yīng)用程序WEB-INF 目錄中尋找一個(gè)名為[servlet-名稱]-servlet.xml的文件,并在那里定義相關(guān)的Beans,重寫在全局中定義的任何Beans,像上面的web.xml中的代碼,對(duì)應(yīng)的是dispatcher-servlet.xml;當(dāng)然也可以使用<init-param>元素,手動(dòng)指定配置文件的路徑;load-on-startup:表示啟動(dòng)容器時(shí)初始化該Servlet;url-pattern:表示哪些請(qǐng)求交給Spring Web MVC處理, “/” 是用來定義默認(rèn)servlet映射的。也可以如“*.html”表示攔截所有以html為擴(kuò)展名的請(qǐng)求。

 

 

 

  1. <servlet>        

  2.     <servlet-name>Dispatcher</servlet-name>        

  3.     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  

  4.     <init-param>  

  5.         <description>加載/WEB-INF/spring-mvc/目錄下的所有XML作為Spring MVC的配置文件</description>  

  6.         <param-name>contextConfigLocation</param-name>  

  7.         <param-value>/WEB-INF/spring-mvc/*.xml</param-value>  

  8.     </init-param>        

  9.     <load-on-startup>1</load-on-startup>        

  10. </servlet>        

  11. <servlet-mapping>        

  12.     <servlet-name>Dispatcher</servlet-name>        

  13.     <url-pattern>"/"/"*.do"/"*.html"</url-pattern>        

  14. </servlet-mapping>   

 

[servlet-名稱]-servlet.xml 配置:

 

<?xml version="1.0"encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context-3.0.xsd
            http://www.springframework.org/schema/aop
            http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
            http://www.springframework.org/schema/tx
            http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
            http://www.springframework.org/schema/mvc
            http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context-3.0.xsd">
    <!--
        使Spring支持自動(dòng)檢測(cè)組件,如注解的Controller    
    <context:component-scan base-package="com.minx.crm.web.controller"/>
 
<context:annotation-config />     
       <!-- 把標(biāo)記了@Controller注解的類轉(zhuǎn)換為bean -->       
      <context:component-scan base-package="test.controller" />   
    <!-- 啟動(dòng)Spring MVC的注解功能,完成請(qǐng)求和注解POJO的映射 -->       
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />    

    -->
    <bean  id="viewResolver"
          class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          p:prefix="/WEB-INF/jsp/"
          p:suffix=".jsp"/>
</beans>


InternalResourceViewResolver在ModelAndView返回的視圖名前加上prefix屬性配置的前綴,再在最后加上suffix屬性配置的后綴。由于HelloController返回的ModelAndView中視圖名為welcome,所以InternalResourceViewResolver將在/WEB-INF/jsp/welcome.jsp處查找視圖。


 

1、BeanNameUrlHandlerMapping

這是Dispatcher Servlet的默認(rèn)的HandlerMapping,所以在應(yīng)用上下文配置文件中簡(jiǎn)單地用“Url樣式”來定義一個(gè)控制器Bean的名字,就可以告訴Dispatcher Servlet什么樣式的請(qǐng)求應(yīng)該由哪個(gè)控制器去處理,而不用顯式地定義一個(gè)HandlerMapping。(私下說一句,這樣做雖然簡(jiǎn)單,但這樣用URL樣式定義出來的ControllerBean,其名字顯得古怪,因?yàn)檫@個(gè)名字同時(shí)也是Controller Bean的實(shí)例名)

例:若控制器ListCoursesController的URL樣式是“l(fā)istCourses.go”,則

       <bean name="/listCourses.go"

class="com.w3cs.vlar.ListCoursesController">

        <property name="couseService">

             <ref bean="courceService"/>

        </property>

    </bean>

當(dāng)然,也可以在定義這個(gè)控制器Bean之前,顯式地聲明你所用的HandlerMapping,顯式定義如下:

<bean id="beanNameUrlMapping"

class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping">

 

2、SimpleUrlHandlerMapping

這種方式不同于BeanNameUrlHandlerMapping,SimpleUrlHandlerMapping不需定義Controller Bean的名字,而是直接把URL映射到控制器。

由于SimpleUrlHandlerMapping不是Dispatcher Servlet默認(rèn)的HandlerMapping,所以這個(gè)HandlerMapping必須得顯式定義。

下面定義了一個(gè)ID為“SimpleUrl”的HandlerMapping Bean:

<bean id="simpleUrlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">

<property name="mappings">

<props>

    <prop key="/listCourses.go">listCoursesController</prop>

    <prop key="/login.go">loginController</prop>

</props>

</property>

</bean>

3.默認(rèn)HandlerMapping 

默認(rèn)執(zhí)行Class名稱  如:這里有一個(gè)CoursesController  那么/courses 就會(huì)調(diào)用這個(gè)Controller     多方法的為/courses/方法名 

 

配置一個(gè)視圖解析器將控制器與JSP結(jié)合起來。

將解析器的配置片段加到上面的test-servlet.xml中。

<bean id="viewResolver"

    class="org.springframework.web.servlet.view.InternalResourceViewResolver">

       <property name="prefix" value="/WEB-INF/jsp/" />

       <property name="suffix" value=".jsp" />

</bean>

InternalResourceViewResolver在ModelAndView返回的視圖名前加上prefix屬性配置的前綴,再在最后加上suffix屬性配置的后綴。由于HelloController返回的ModelAndView中視圖名為welcome,所以InternalResourceViewResolver將在/WEB-INF/jsp/welcome.jsp處查找視圖。



(1) url和動(dòng)作(后端控制器)的映射。

springMVC里有個(gè)映射處理器(HandlerMapping)的概念。它實(shí)際上是一個(gè)處理器映射Bean,用來將一個(gè)控制器指定到一個(gè)URL上。Spring提供了三種有用的HandlerMapping的實(shí)現(xiàn):

—— BeanNameUrlHandlerMapping

       根據(jù)控制器的名字將控制器映射到URL

—— SimpleUrlHandlerMapping

       用上下文配置文件中定義的屬性集合將控制器映射到URL

—— CommonsPathMapHandlerMapping

       使用控制器代碼中的元數(shù)據(jù)將控制器映射到URL  

(2) 邏輯視圖名和視圖對(duì)象的映射。

springMVC里還有個(gè)視圖解析器(ViewResolver)的概念。它決定了ModelAndView對(duì)象的邏輯視圖名如何解析成一個(gè)用于將結(jié)果渲染給用戶的視圖Bean..Spring有四種ViewResolver實(shí)現(xiàn):

—— InternalResourceViewResolver

       將邏輯視圖名解析成一個(gè)用模板文件(如JSP和Velocity模板)渲染的視圖對(duì)象

—— BeanNameViewResolver

       將邏輯視圖名解析成一個(gè)DispatcherServlet應(yīng)用上下文中的視圖Bean

—— ResourceBundleViewResolver

       將邏輯視圖名解析成一個(gè)ResourceBundler中的視圖對(duì)象

—— XmlViewResolver

       從一個(gè)XML文件中解析視圖Bean,這個(gè)文件是從DispatcherServlet應(yīng)用上下文中分離出來的。

 

 

Annotation注釋

 

 

@Controller:用于標(biāo)識(shí)是處理器類;

@RequestMapping:請(qǐng)求到處理器功能方法的映射規(guī)則;

@RequestParam:請(qǐng)求參數(shù)到處理器功能處理方法的方法參數(shù)上的綁定;

@ModelAttribute:請(qǐng)求參數(shù)到命令對(duì)象的綁定;

@SessionAttributes:用于聲明session級(jí)別存儲(chǔ)的屬性,放置在處理器類上,通常列出模型屬性(如@ModelAttribute)對(duì)應(yīng)的名稱,則這些屬性會(huì)透明的保存到session中;

@InitBinder:自定義數(shù)據(jù)綁定注冊(cè)支持,用于將請(qǐng)求參數(shù)轉(zhuǎn)換到命令對(duì)象屬性的對(duì)應(yīng)類型;

 

RESTful架構(gòu)風(fēng)格支持(通過@PathVariable注解和一些其他特性支持),且又引入了更多的注解支持:

@CookieValue:cookie數(shù)據(jù)到處理器功能處理方法的方法參數(shù)上的綁定;

@RequestHeader:請(qǐng)求頭(header)數(shù)據(jù)到處理器功能處理方法的方法參數(shù)上的綁定;

@RequestBody:請(qǐng)求的body體的綁定(通過HttpMessageConverter進(jìn)行類型轉(zhuǎn)換);

@ResponseBody:處理器功能處理方法的返回值作為響應(yīng)體(通過HttpMessageConverter進(jìn)行類型轉(zhuǎn)換);

@ResponseStatus:定義處理器功能處理方法/異常處理器返回的狀態(tài)碼和原因;

@ExceptionHandler:注解式聲明異常處理器;

@PathVariable:請(qǐng)求URI中的模板變量部分到處理器功能處理方法的方法參數(shù)上的綁定,從而支持RESTful架構(gòu)風(fēng)格的URI;

 

POST中文亂碼解決方案

 

spring Web MVC框架提供了org.springframework.web.filter.CharacterEncodingFilter用于解決POST方式造成的中文亂碼問題,具體配置如下:

  1. <filter>      

  2.     <filter-name>CharacterEncodingFilter</filter-name>      

  3.     <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>      

  4.     <init-param>      

  5.         <param-name>encoding</param-name>      

  6.         <param-value>utf-8</param-value>      

  7.     </init-param>      

  8. </filter>      

  9. <filter-mapping>      

  10.     <filter-name>CharacterEncodingFilter</filter-name>      

  11.     <url-pattern>/*</url-pattern>      

  12. </filter-mapping>   

以后我們項(xiàng)目及所有頁面的編碼均為UTF-8。

下載地址

分享名稱:SpringMVC配置XML
文章出自:http://www.rwnh.cn/article34/gshspe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)企業(yè)網(wǎng)站制作、電子商務(wù)網(wǎng)站排名、營銷型網(wǎng)站建設(shè)網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)
武冈市| 普兰店市| 临江市| 简阳市| 资中县| 四会市| 信宜市| 麻栗坡县| 资源县| 衡水市| 内江市| 清镇市| 清徐县| 安吉县| 云和县| 新邵县| 沈丘县| 德惠市| 阳高县| 夹江县| 类乌齐县| 青川县| 曲阜市| 绥中县| 通海县| 河西区| 长子县| 敦煌市| 汾西县| 青龙| 肥乡县| 碌曲县| 海林市| 全椒县| 河西区| 镇宁| 涞源县| 鄢陵县| 齐河县| 沧源| 门头沟区|