SpringMVC五⼤组件开发步骤
⼀、SpringMVC的五⼤组件及⼯作流程
1、五⼤组件
DispatcherServlet:前端控制器
HandlerMapping:映射处理器
Controller:业务处理控制器
ModelAndView:控制器返回的视图和模型的对象
ViewResolver:视图解析器
2、⼯作原理图
3、⼯作流程
客户端向服务器发送请求,请求交给前端控制器,前端控制器把请求交给映射处理器。
映射处理器把url和控制器绑定,返回绑定结果给前端控制器。
前端控制器调⽤指定的业务控制器,进⾏业务处理(调⽤业务层,业务层调⽤持久层),把响应结果和模型封装成ModelAndView返回给前端控制器。
前端控制器调⽤视图解析器,解析视图,把结果返回给前端控制器。
前端控制器响应页⾯到客户端。
⼆、SpringMVC的开发步骤
1、基于配置⽂件的开发步骤
(1)新建maven⼯程
添加l
添加Tomcat运⾏环境
添加依赖jar包:spring-webmvc.jar、junit.jar
添加配置⽂件:l
(2)在l⽂件中配置前端控制器(DispatcherServlet)
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- 配置l⽂件 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>l</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
(3)编写控制器(Controller)
ontroller;
import ......
/**
* 业务控制器
*/
public class HelloController implements Controller{
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { System.out.println("handlerRequest");
ModelAndView mv= new ModelAndView();
// 设置视图名,不包含扩展名
mv.setViewName("ok");
return mv;
}
}
在l⽂件中配置:
<!-- 实例化控制器对象 -->
<bean id="helloController" class="ller.HelloController"/>
(4)配置映射处理器(HandlerMapping)
在l⽂件中配置:
(5)配置视图解析器(ViewResolver)
在l⽂件中配置:
注:在WEB-INF⽂件夹下新建⼀个web⽂件夹,在此⽂件夹中添加xxx.jsp⽂件。
2、基于注解的开发步骤(推荐)
(1)新建maven⼯程
添加l
添加Tomcat运⾏环境
添加依赖jar包:spring-webmvc.jar、junit.jar
添加配置⽂件:l
(2)在l⽂件中配置前端控制器(DispatcherServlet)
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 配置l⽂件 -->
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>l</param-value>
</init-param>
<!-- 初始化启动 -->
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
(3)编写控制器(Controller)
a、在l中配置扫描包
<!-- 组件扫描 -->
<context:component-scan base-package="ller"/>
b、新建业务处理控制器类(xxxController,如UserController)
ontroller;
import ......
//1、@Controller注解实例化控制器类
//2、控制器的⽅法名可以⾃定义
//3、⽅法的返回类型可以为String类型,由框架实现封装ModelAndView功能
//4、@RequestMapping注解表⽰定义映射名称;也可以配置到类上⾯,表⽰定义模块名称在url上
@Controller
@RequestMapping("/user")
public class UserController {
@RequestMapping("/login.do")jsp用什么前端框架
public String showLogin() {
return "login";
}
}
c、在l⽂件中配置视图解析器
(4)配置映射处理器
<mvc:annotation-driven/>
注:
(5)@RequestMapping注解
在⽅法上使⽤,也可配置在类上⾯,表⽰定义模块名称,如上述(3)。
三、⼩结
1、SpringMVC把控制器分为5⼤组件
2、五⼤组件分别是什么?
3、⼯作流程
4、基于注解的⽅式开发控制器
(1)搭建环境
(2)在l中配置前端控制器
(3)在l配置视图解析器
(4)编写控制器层