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>
相关文章
相关标签/搜索