第3.81课 上课 SpringMVC注解介绍, @RequestMapping…
3_81

SpringMVC常用注解介绍
控制器
@Controller:注解控制器类
在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。
在SpringMVC 中提供了一个非常简便的定义Controller 的方法,你无需继承特定的类或实现特定的接口,只需使用@Controller 标记一个类是Controller ,然后使用@RequestMapping 和@RequestParam 等一些注解用以定义URL 请求和Controller 方法之间的映射,这样的Controller 就能被外界访问到。
此外Controller 不会直接依赖于HttpServletRequest 和HttpServletResponse 等HttpServlet 对象,它们可以通过Controller 的方法参数灵活的获取到。
@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。
分发处理器将会扫描使用该注解的类的方法,并检测该方法是否使用了@RequestMapping 注解。
@Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理处理方法。
方式1

方式2

方式3

方式4

请求URL映射
@RequestMapping:请求URL映射
可以使用@RequestMapping 来映射URL 到控制器类,或者是到Controller 控制器的处理方法上。
当@RequestMapping 标记在Controller 类上的时候,里面使用@RequestMapping 标记的方法的请求地址都是相对于类上的@RequestMapping 而言的;
当Controller 类上没有标记@RequestMapping 注解时,方法上的@RequestMapping 都是绝对路径。
这种绝对路径和相对路径所组合成的最终路径都是相对于根路径“/ ”而言的。
使用 @RequestMapping 来完成 Request 请求到处理器或处理器方法的映射。
@RequestMapping 参数介绍
value
定义处理方法的请求的 URL 地址,如果只有一个url参数,那么是可以不用写value。
method
定义处理方法的 http method 类型,如 GET、POST 等。
params
定义请求的 URL 中必须包含的参数。
headers
定义请求中 Request Headers 必须包含的参数。
@RequestMapping(value)基本用法

或者使用value,如果是只有一个参数是可以省略value的

@RequestMapping(value)默认方法

@RequestMapping(method)
非常方便为多个方法配置相同的 URL,不同的 http method 类型,
Springmvc 将根据请求的http method 类型来区分方法的调用。

如果请求的方法不支持将抛如下异常

如果没有写method,表示可以处理任何方式的 http method 类型的请求。
SpringMVC注解配置

在xml配置了这个标签后,spring可以自动去扫描base-pack下面或者子包下面的java文件,如果扫描到有@Component @Controller @Service等这些注解的类,则把这些类注册为bean。
注意:如果配置了<context:component-scan>那么<context:annotation-config/>标签就可以不用再xml中配置了,
因为前者包含了后者。另外<context:annotation-config/>还提供了两个子标签
包含
<context:include-filter>
排除
<context:exclude-filter>
启动SpringMVC注解功能
自动扫描组件
SpringMVC注解介绍
继 Spring 2.0 对 Spring MVC 进行重大升级后,Spring 2.5 又为 Spring MVC 引入了注解驱动功能。现在你无须让 Controller 继承任何接口,无需在 XML 配置文件中定义请求和 Controller 的映射关系,仅仅使用注解就可以让一个 POJO 具有 Controller 的绝大部分功能 —— Spring MVC 框架的易用性得到了进一步的增强。
浙公网安备 33010602011771号