SSM(三)—— SpringMVC入门

目录

 

1、Spring与Web环境集成

1、搭建环境

2、ApplicationContext应用获取上下文对象(自定义)

问题:

解决方法:

3、Spring提供获取应用上下文对象的工具

2、SpringMVC的简介

3、SpringMVC组件分析

执行流程:

组件介绍:

@RequestMapping


1、Spring与Web环境集成

1、搭建环境

2、ApplicationContext应用获取上下文对象(自定义)

问题:

应用上下文对象是通过new ClasspathXmlApplicationContext(spring配置文件) 方式获取的,但是每次从容器中获得Bean时都要编写new ClasspathXmlApplicationContext(spring配置文件) ,这样的弊端是配置文件加载多次,上下文对象创建多次。

解决方法:

在Web项目中,可以使用ServletContextListener监听Web应用的启动,我们可以在Web应用启动时,就加载Spring的配置文件,创建应用上下文对象ApplicationContext,在将其存储到最大的域servletContext域中,这样就可以在意位置从域中获得应用上下文ApplicationContext对象了。

优化:

1、

2、

3、Spring提供获取应用上下文对象的工具

上面的分析不用手动实现,Spring提供了一个监听器ContextLoaderListener就是对上述功能的封装,该监听器内部加载Spring配置文件,创建应用上下文对象,并存储到ServletContext域中,提供了一个客户端WebApplicationContextUtils供使用者获得应用上下文对象。

所以我们需要做的只有两件事:

web.xml中配置ContextLoaderListener监听器(导入spring-web坐标)

使用WebApplicationContextUtils获得应用上下文对象ApplicationContext

2、SpringMVC的简介

SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 中。

SpringMVC 已经成为目前最主流的MVC框架之一,并且随着Spring3.0 的发布,全面超越 Struts2,成为最优秀的 MVC 框架。它通过一套注解,让一个简单的 Java 类成为处理请求的控制器,而无须实现任何接口。同时它还支持 RESTful 编程风格的请求。

步骤:

导入SpringMVC相关坐标

配置SpringMVC核心控制器DispathcerServlet

创建Controller类和视图页面

使用注解配置Controller类中业务方法的映射地址

配置SpringMVC核心文件 spring-mvc.xml

客户端发起请求测试

3、SpringMVC组件分析

执行流程:

用户发送请求至前端控制器DispatcherServlet

DispatcherServlet收到请求调用HandlerMapping处理器映射器

处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet

DispatcherServlet调用HandlerAdapter处理器适配器

HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)

Controller执行完成返回ModelAndView

HandlerAdaptercontroller执行结果ModelAndView返回给DispatcherServlet

DispatcherServletModelAndView传给ViewReslover视图解析器

ViewReslover解析后返回具体View

DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)DispatcherServlet响应用户。

组件介绍:

DispatcherServlet:前端控制器
用户请求到达前端控制器,它是整个流程的控制中心,由它调用其他组件处理用户的请求,降低组件之间的耦合。

HandlerMapping:处理映射器
负责根据用户请求找到Handler即处理器。

映射方式:配置文件方式、实现接口方式、注解方式

Handler:处理器
它就是我们开发中要编写的具体业务控制器。由DispatcherServlet把用户请求转发到Handler。由Handler对具体的用户请求进行处理。

HandlerAdapter:处理适配器
通过它对处理器进行执行,这是适配器模式的应用,将其他接口转变为USB接口。

ViewResolver:视图解析器
它负责将处理结果生成View视图

View:视图
我们常用的视图是jsp

@RequestMapping

作用:用于建立请求 URL 和处理请求方法之间的对应关系

位置:

类上,请求URL 的第一级访问目录。此处不写的话,就相当于应用的根目录

方法上,请求 URL 的第二级访问目录,与类上的使用@ReqquestMapping标注的一级目录一起组成访问虚拟路径

属性:

value:用于指定请求的URL。它和path属性的作用是一样的

method:用于指定请求的方式

params:用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的keyvalue必须和配置的一模一样

例如:

params = {"accountName"}表示请求参数必须accountName

params = {"moeny!100"}表示请求参数中money不能是100

扩展:

转发:forward默认

重定向:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值