Spring MVC (mvc框架)

与struts2属于竞争关系,是MVC框架。

获取与配置

<dependencies>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-web</artifactId>
		<version>4.0.6.RELEASE</version>
	</dependency>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-webmvc</artifactId>
		<version>4.0.6.RELEASE</version>
	</dependency>
</dependencies>

 <!-- web.xml 模板-->
 <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
	version="2.4">
	<servlet>
		<servlet-name>MyServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>MyServlet</servlet-name>
		<url-pattern>/*</url-pattern>
	</servlet-mapping>
</web-app>



 <!--XXX-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:p="http://www.springframework.org/schema/p"
	xmlns:lang="http://www.springframework.org/schema/lang" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:cache="http://www.springframework.org/schema/cache" xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:task="http://www.springframework.org/schema/task"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	         http://www.springframework.org/schema/beans/spring-beans.xsd
	         http://www.springframework.org/schema/lang
	         http://www.springframework.org/schema/lang/spring-lang.xsd      
	         http://www.springframework.org/schema/tx   
	         http://www.springframework.org/schema/tx/spring-tx.xsd    
	         http://www.springframework.org/schema/aop     
	         http://www.springframework.org/schema/aop/spring-aop.xsd    
	         http://www.springframework.org/schema/mvc     
	         http://www.springframework.org/schema/mvc/spring-mvc.xsd   
	         http://www.springframework.org/schema/context     
	         http://www.springframework.org/schema/context/spring-context.xsd
	         http://www.springframework.org/schema/cache
	         http://www.springframework.org/schema/cache/spring-cache.xsd
	         http://www.springframework.org/schema/task 
	         http://www.springframework.org/schema/task/spring-task.xsd">
	
	<context:annotation-config />
	<!-- 自动扫描指定包及其子包下的所有Bean类 -->
	<context:component-scan 
		base-package="com.likeyichu.springmvc"/>
</beans>


Servlet

DispatcherServlet

org.springframework.web.servlet.DispatcherServlet,默认DispatcherServlet会加载WEB-INF/[DispatcherServlet的Servlet名字]-servlet.xml配置文件。

例子:

	<servlet>
		<servlet-name>MyServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>MyServlet</servlet-name>
		<url-pattern>/*</url-pattern>
	</servlet-mapping>

filter

CharacterEncodingFilter


<filter>
	<filter-name>CharacterEncodingFilter</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>
</filter>
<filter-mapping>
	<filter-name>CharacterEncodingFilter</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>


Listener

ContextLoaderListener

ContextLoaderListener在启动Web容器时,自动装配/WEB-INF/ApplicationContext.xml文件中的配置信息。因为它实现了ServletContextListener这个接口,在web.xml配置这个监听器,启动容器时,就会默认执行它实现的方法。


@注释

@Controller:这是Spring的注释,不是SpringMVC的;

@ResponseBody

@RequestMapping

请求到控制器功能方法的映射规则。例子:

@ResponseBody  //表明该函数的返回将作为HTTP返回的报文体内容。
@RequestMapping(value="/setPrice2", method = {RequestMethod.GET}, produces="application/json;charset=UTF-8")
//若路径是"/setPrice2",且http方法为GET,交给该函数响应。
public String fun2(HttpServletRequest request, HttpServletResponse response){
	Double price=Double.valueOf(request.getParameter("price"));
	return price.toString();
}


@RequestParam:请求参数到控制器功能处理方法的方法参数上的绑定;
@ModelAttribute:请求参数到命令对象的绑定;
@SessionAttributes:用于声明session级别存储的属性,放置在控制器类上,通常列出模型属性(如@ModelAttribute)对应的名称,则这些属性会透明的保存到session中;
@InitBinder:自定义数据绑定注册支持,用于将请求参数转换到命令对象属性的对应类型;



你可能感兴趣的:(spring,mvc)