SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装。
SpringMVC是处于Web层的框架,所以其主要的作用就是用来接收前端发过来的请求和数据然后经过 处理并将处理的结果响应给前端,所以如何处理请求和响应是SpringMVC中非常重要的一块内容。
SSM整合是把咱们所学习的SpringMVC+Spring+Mybatis整合在一起来完成业务开发,
web程序大都基于三层架构来实现
浏览器发送请求给后端服务器,后端服务器使用servlet来接受和请求数据
后端服务器servlet可拆分成3层
web层主要由servlet来处理,负责页面请求和数据的收集以及响应结果给前端
service层主要负责业务逻辑的处理
dao层主要负责数据的增删改查操作
servlet处理请求和数据的时候,存在的问题是一个servlet只能处理一个请求
针对web层进行了优化,采用了MVC设计模式,将其设计为controller、view和Model
上面的的模式由同步调用转换为异步调用
异步调用不需要view视图
controller负责请求和数据的接收,接收后将其转发给service进行业务处理
service根据需要会调用dao对数据进行增删改查
dao把数据处理完后将结果交给service,service再交给controller
controller根据需求组装成Model和View,Model和View组合起来生成页面转发给前端浏览器
这样做的好处就是controller可以处理多个请求,并对请求进行分发,执行不同的业务操作。
SpringMVC主要负责的就是
controller如何接收请求和数据
如何将请求和数据转发给业务层
如何将响应数据转换成json发回到前端
SpringMVC是一种基于Java实现MVC模型的轻量级Web框架
优点:使用简单、开发便捷(相比于Servlet) 灵活性强
servlet开发步骤
1.创建web工程(Maven结构)
2.设置tomcat服务器,加载web工程(tomcat插件)
3.导入坐标(Servlet)
4.定义处理请求的功能类(UserServlet)
5.设置请求映射(配置映射关系
SpringMVC开发步骤
1.创建web工程(Maven结构)
2.设置tomcat服务器,加载web工程(tomcat插件)
3.导入坐标(SpringMVC+Servlet)
4.定义处理请求的功能类(UserController)
5.设置请求映射(配置映射关系)
6.将SpringMVC设定加载到Tomcat容器中
1.IDEA新建一个web工程
2.框架建立的web工程下,需要手动添加源码
3.导入相关jar包
注意导入servlet坐标时,要加入
4.创建SpringMvcConifg配置类
5.创建Controller类(和servlet文件作用相同,用来处理请求)
- @Controller //SpringMVC开发专用的声明bean的注解
- public class UserController {
- @RequestMapping("/save")
- public void save(){
- System.out.println("user save ...");
- }
- }
6.使用servlet容器配置类文件替换web.xml文件
- public class ServletContainersInitConfig extends AbstractDispatcherServletInitializer {
- //tomcat服务启动时,加载springmvc配置类
- protected WebApplicationContext createServletApplicationContext() {
- //初始化WebApplicationContext对象
- AnnotationConfigWebApplicationContext ctx = new
- AnnotationConfigWebApplicationContext();
- //加载指定配置类,注册配置
- ctx.register(SpringMvcConfig.class);
- return ctx;
- }
-
- //设置由springmvc控制器处理的请求映射路径,"/"表示所有的请求
- protected String[] getServletMappings() {
- return new String[]{"/"};
- }
-
- //加载spring配置类
- protected WebApplicationContext createRootApplicationContext() {
- return null;
- }
- }
删除原先的web.xml文件
7.配置tomcat
8.启动服务器,在网页中输入localhost/save,就可以查看到usercontroller中return方法的值
1.导入SpringMvc和servlet坐标 //添加依赖
2.创建SpringMVC控制器类 (*Controller文件),用来处理请求 //等同于servlet功能
@Controller //将控制类对象定义为bean,加入Spring容器中
@RequestMapping //定义当前控制器方法的请求访问路径
@ResponseBody //设置当前控制器方法响应内容为当前返回值
3.初始化SpringMVC环境,创建配置文件SpringMvcConfig,设定SpringMVC加载的bean
@Configuration
@Compnent-scan
4.创建ServletContainersInitConfig文件,用来初始化servlet容器,加载SpringMVC环境,并设置SpringMVC技术处理的请求
一.启动服务器
服务器启动,执行ServletContainersInitConfig类,初始化web容器
注意Web容器初始化之后,执行createServletApplicationContext方法,创建了WebApplicationContext对象,该对象要放在ServletContext容器中
- public class ServletContainersInitConfig extends AbstractDispatcherServletInitializer {
- //加载springmvc配置类
- protected WebApplicationContext createServletApplicationContext() {
- //初始化WebApplicationContext对象
- AnnotationConfigWebApplicationContext ctx = new
- AnnotationConfigWebApplicationContext();
- //加载SpringMvcConfig
- ctx.register(SpringMvcConfig.class);
- return ctx;
- }
二.一次请求过程
浏览器操作一次
1.. 发送请求http://localhost/save
2. web容器发现该请求满足SpringMVC拦截规则,将请求交给SpringMVC处理(对应上述的getServletMappings)
3. 解析请求路径/save(对应上述注册过的save方法)
4. 由/save匹配执行对应的方法save() 上面的第五步已经将请求路径和方法建立了对应关系,通过/save就能找到对应的save方法
5. 执行save()
6. 检测到有@ResponseBody直接将save()方法的返回值作为响应体返回给请求方