简介
是spring中重要的组件
front设计模式
所有的请求都经过一个类,具体需要哪一个controller处理,都需要靠它去分发,这是比较专业的前端设计模式,而这一需求springmvc可以完美解决
核心组件
中央控制器DispatcherServlet(前端控制器)
它可以接收所有请求(不要包含jsp)
映射处理器HandlerMapping
解析请求格式的
处理器适配器HandlerAdapter
负责调用请求方法
视图解析器ViewResoler(基本废弃)
解析结果,并决定跳转哪一视图
工作流程
应用
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.9</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.9</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>5.3.9</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>5.3.9</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.3.9</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.9</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.32</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.12.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.12.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.4</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
</dependency>
- 配置文件
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<mvc:annotation-driven></mvc:annotation-driven>
- 写接口
@Controller
@RequestMapping("/hello")
public class Hello {
@RequestMapping("/test")
public String test(){
System.out.println(123);
return "home";
}
@RequestMapping("/user2")
public void user(@RequestParam("name") String a, @RequestParam("password") String b){
System.out.println(a);
System.out.println(b);
}
// @RequestMapping("/user3")
// public void user(User user){
// System.out.println(user.getName());
// System.out.println(user.getPassword());
// }
@RequestMapping("/user4")
public void user(@RequestBody User user){
System.out.println(user.getName());
System.out.println(user.getPassword());
}
}