Spring MVC 的核心类和注解

1. DispatcherServlet

全名是org.springframework.web.servlet.DispatcherServlet它在程序中充当着前端控制器的角色。在使用时,只需将其配置在项目的web.xml文件中,其配置代码如下:

image-20191005190649964

假如你不用name他会去找WEB-INF/springmvc-servlet.xml这样一个文件。

2. @Controller 注解类型

org.springframework.stereotype.Controller注解类型用于指示Spring类的实例是一个控制器,其注解形式是@Controller。该注解在使用时不在用实现Controller接口,只需要将@Controller注解加入到控制器类上,然后通过Spring的扫描机制找到标注了该注解的控制器即可。

1
2
3
4
5
package controller;
@Controller
public class IndexController {
//处理请求的方法
}

在Spring MVC中,使用扫描机制找到应用中所有基于注解的控制器类。所以,为了让控制器类被Spring MVC框架扫描到,需要在配置文件中声明spring-context,并使用context:component-scan/元素指定控制器类的基本包(请确保所有控制器类都在基本包及其子包下)。

image-20191005193749416

@RequestMapping 注解的使用

在基于注解的控制器类中,可以为每个请求编写对应的处理方法。如何将请求与处理方法一一对应呢?需要使用org.springframework.web.bind.annotation.RequestMapping注解类型将请求与处理方法一一对应。

1.方法级别注解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
@Controller
public class IndexController {
@RequestMapping(value = "/index/login")
public String login() {
/**login代表逻辑视图名称,需要根据Spring MVC配置
* 文件中internalResourceViewResolver的前缀和后缀找到对应的物理视图
*/
return "login";
}
@RequestMapping(value = "/index/register")
public String register() {
return "register";
}
}

2.类级别注解

1
2
3
4
5
6
7
8
9
10
11
12
@Controller
@RequestMapping("/index")
public class IndexController {
@RequestMapping("/login")
public String login() {
return "login";
}
@RequestMapping("/register")
public String register() {
return "register";
}
}
-------------本文结束感谢您的阅读-------------
0%