SpringMVC之基于注解的MVC

目录

一、基于注解的 SpringMVC

1.注解优点

2.配置流程

3.执行流程

4.@Controller注解

5.@RequestMapping注解

6.@RequestMapping注解参数

7.方法参数类型

8.方法返回值类型

9.搭建注解程序

二、源代码管理

DispatcherServlet

springmvc-config.xml

控制器注解


一、基于注解的 SpringMVC

1.注解优点

1.相比于传统控制器,使用简单对象和@Controller注解可以处理过个请求,而传统的只可以请求一个,所以基于注解的控制器可以节省代码
2.基于注解控制器的映射规则不用写在配置文件中,使用@RequestMapping进行映射即可!
3.取消了配置文件中的HandlerMapping直接在Controller中使用RequestMapping进行请求映射 

SpringMVC之基于注解的MVC_第1张图片

2.配置流程

如果需要使用注解,则需要开启组件扫描,组件扫描需要使用到context包,所以需要导入该包,而jar包有需要有context的描述文件,所以需要在配置文件中加入context jar包的模式文件
1.导入SpringMVC的开发包(测试版本4.1.6),如果是maven项目直接引入以下依赖即可


    org.springframework
    spring-webmvc
    4.1.6.RELEASE

2.配置文件中开启组件扫描context:component-scan和注解mvc功能支持mvc:annotation-driven

  • SpringMVC功能支持:
  • 格式:
  • 示例:
  • 注意:包路径不要带类名、扫描的范围不要太广,哪里需要就指定到哪里


	
	
	
    
	

3.编写DispatcherServlet
4.创建注解控制器
5.编写视图处理器

3.执行流程

1.传统执行:DispatcherServlet->HandlerMapping->Controller->ModelAndView->ViewResolver
2.注解执行:DispatcherServlet->Controller->ModelAndView(多实现)->ViewResolver
3.在传统控制器中返回值只能使用ModelAndView,而在注解执行中可以有多重返回值

4.@Controller注解

1.注解所在包:org.springframework.stereotype.Controller

2.注解位置:在普通类的类名上指定

3.作用:作为控制器

4.注解示例: 

SpringMVC之基于注解的MVC_第2张图片

5.@RequestMapping注解

1.注解所在包:org.springframework.web.bind.annotation.RequestMapping
2.注解位置:在普通类的类名上、处理方法上指定

  • 类上:代表每一个方法都使用其处理
  • 方法上:调用指定方法处理,通常在方法上指定就足够了
  • 作用:作为请求入口,相当于传统Servlet中的servlet name
  • 注意事项:当指定了映射名之后,注意在类上和方法上的区别
    • 方法上:http://域名:端口/项目名/方法映射名
    • 类名上:http://域名:端口/项目名/类映射名/方法映射名
  • 注解示例-在类名上和方法上都有·映射-请求URL就是 http://域名:端口/项目名/to/main,如果只有方法上有就是 http://域名:端口/项目名/main

SpringMVC之基于注解的MVC_第3张图片

6.@RequestMapping注解参数

  • value:指定请求映射的方式,value有两种写法
    • value="/请求映射":具有多个属性时候不能省略
    • "/请求映射":只有value一个属性可以忽略
  • method:指定请求类型(GET、POST、DELETE、PUT),只有当符合指定类型的时候才会被调用
    • RequestMethod.PUT:RequestMethod是一个枚举,保存着请求类型
    • method=RequestMethod.PUT:指定响应请求类型为PUT
    • method={RequestMethod.PUT,RequestMethod.GET}:指定多个请求类型,用大括号括起,只有一个可以省略

SpringMVC之基于注解的MVC_第4张图片

7.方法参数类型

1.在注解控制器中,发现控制器类只是一个简单的java对象,在传统控制器参数中有HttpServletRequest等,可以方便获取值,而在注解控制器中更加简单,只需要在参数中指定需要的参数即可,例如request、response、session等对象
2.指定参数示例: 

3.可以在参数中指定的类型主要有以下: 

SpringMVC之基于注解的MVC_第5张图片

SpringMVC之基于注解的MVC_第6张图片

SpringMVC之基于注解的MVC_第7张图片

4.注意点:Model是SpringMVC类型而不是ServletAPI类型,每次处理请求都会创建Model对象到注入到各个组件中

8.方法返回值类型

1.在处理器中可以返回值,返回不同值代表不同请求的处理
2.可以返回的类型:

SpringMVC之基于注解的MVC_第8张图片

SpringMVC之基于注解的MVC_第9张图片

9.搭建注解程序

1.配置DispatcherServlet: 

SpringMVC之基于注解的MVC_第10张图片

2.配置springm-config.xml: 

SpringMVC之基于注解的MVC_第11张图片

3.创建控制器: 

SpringMVC之基于注解的MVC_第12张图片

4.在WEB-INF/jsp/创建main.jsp
5.访问控制器: 

SpringMVC之基于注解的MVC_第13张图片


二、源代码管理

1.DispatcherServlet



 

	springmvc
	
	org.springframework.web.servlet.DispatcherServlet
	
	
		contextConfigLocation
		classpath:springmvc-config.xml
	


	springmvc
	
	/

2.springmvc-config.xml



	
	
	
	
	
	
	
		
		
	

3.控制器注解

package com.codecoord.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

/** 使用注解扫描 */
@Controller
public class MyController {
	
	@RequestMapping(value="/main")
	public String toMain() {
		return "main";
	}
}

 

你可能感兴趣的:(04_SpringMVC)