SpringMVC使用及知識點提煉

  1. 在web.xml中配置springmvc的配置文件:
<servlet>  
        <servlet-name>SpringMVC</servlet-name>  
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
        <init-param>  
            <param-name>contextConfigLocation</param-name>  
            <param-value>classpath:spring-mvc.xml</param-value>  
        </init-param>  
        <load-on-startup>1</load-on-startup>  
        <!-- <async-supported>true</async-supported>   -->
    </servlet>  
    <servlet-mapping>  
        <servlet-name>SpringMVC</servlet-name>  
        <!-- 此處能夠能夠配置成*.do,對應struts的後綴習慣 -->  
        <url-pattern>*.do</url-pattern>  
    </servlet-mapping>
  1. 配置springmvc的xml文件:
<!-- 自動掃描該包,使SpringMVC認爲包下用了@controller註解的類是控制器 -->  
    <context:component-scan base-package="com.zhangda.splatform.controller" />  
    
    <!-- 定義跳轉的文件的先後綴 ,視圖模式配置-->  
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
        <property name="prefix" value="/WEB-INF/view/" />  
        <property name="suffix" value=".jsp" />  
    </bean>
  1. @RequestMapping: 映射路徑
  • value映射路徑
  • method請求方式,post或者get
  • params限定包含某參數,或者限定參數符合某個條件
  • hearder限定請求頭部
  • 映射路徑知足ant通配符,?代替某個字符,*代替某個文件名,**代替某個路徑
  • @PathVariable 註解佔位,例如:@RequestMapping(/test/{id}),方法參數寫爲:(@PathVariable("id") int id)
    4.HiddenHttpMethodFilter: 將post請求能夠轉化爲delete和put請求,處理REST風格的請求。
    輸入圖片說明

5.使用@RequestParam註解設定方法的參數名稱,例如:test(@RequestParam(value="username", required=false defaultValue="admin") String username)web

6 使用@RequestHeader 獲得請求頭,相似@RequestParamspring

7.使用@CookieValue 獲得cookie值,相似@RequestParam數據庫

8.能夠使用POJO做爲方法參數,能夠自動匹配,參數名直接使用pojo對象的屬性名,而不用pojo.屬性名。json

9.能夠使用servlet原生API做爲參數,支持類型以下: 輸入圖片說明spring-mvc

10.ModelAndView:使用ModelAndView做爲方法的返回值類型,SpringMVC會把ModelAndView的model中的數據放到request域對象中。cookie

ModelAndView mav = new ModelAndView();
mav,addObject("time", new Date());

在對應的頁面上這樣接收:session

time:${requestScope.time}

11.能夠使用Map形式做爲方法參數,將數據放到map中,return返回頁面的名稱。mvc

12.使用@SessionAttributes將數據共享到session,能夠經過屬性名和屬性的對象類型指定,哪些數據能夠放到session中,該註解只能放到類上面。app

13.@ModelAttributes 更新操做,某個屬性值前臺不傳,而且不想被置空,使用該註解能夠從數據庫中取出對象。使用該註解標記的方法,會在每一個目標方法執行以前被SpringMVC調用,SpringMVC從Map中取出對象,並把表單請求參數賦給該對象的對應屬性,最後SpringMVC把上述對象傳入目標方法的參數。jsp

14.配置直接轉發的頁面,無須再通過handler

<mvc:view-controller path="/success" view-name="success">
<mvc:annotation-driven></mvc:annotation-driven>

15.重定向與轉發:使用返回的字符串開頭爲redirect或者forward。

16.返回json類型數據:方法上使用註解@ResponseBody,須要使用jackson的jar包

<dependency>
	  <groupId>com.fasterxml.jackson.core</groupId>
	  <artifactId>jackson-databind</artifactId>
	  <version>2.9.4</version>
	</dependency>
	<dependency>
	  <groupId>com.fasterxml.jackson.core</groupId>
	  <artifactId>jackson-core</artifactId>
	  <version>2.9.4</version>
	</dependency>
	<dependency>
	  <groupId>com.fasterxml.jackson.core</groupId>
	  <artifactId>jackson-annotations</artifactId>
	  <version>2.9.4</version>
	</dependency>

springmvc配置文件:

<!-- 定義跳轉的文件的先後綴 ,視圖模式配置-->  
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
        <property name="prefix" value="/WEB-INF/view/" />  
        <property name="suffix" value=".jsp" />  
    </bean>  
    
    <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
	    <property name="messageConverters">
	        <list>
	            <!--json視圖攔截器,讀取到@ResponseBody的時候去配置它-->
	            <ref bean="mappingJacksonHttpMessageConverter"/>
	        </list>
	    </property>
	</bean>
	<!--json轉化器,它能夠將結果轉化-->
	<bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
	    <property name="supportedMediaTypes">
	        <list>
	            <value>application/json;charset=UTF-8</value>
	        </list>
	    </property>
	</bean>
相關文章
相關標籤/搜索