1、SpringMVC重要组件
1.1:DispatcherServlet: 前端控制器,接收所有请求(如果配置/不包含 jsp)
1.2 :HandlerMapping: 解析请求格式的.判断希望要执行哪个具体的方法.
1.3:HandlerAdapter: 负责调用具体的方法.
1.4:ViewResovler:视图解析器.解析结果,准备跳转到具体的物理视图
2、SpringMVC运行原理
2.1 图解:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190828120708170.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0MDk1NDYw,size_16,color_FFFFFF,t_70)
2.2文字解释:
如果在 web.xml 中设置 DispatcherServlet 的<url-pattern>为/时,当用户
发起请求,请 求 一 个 控 制 器 , 首 先 会 执 行 DispatcherServlet. 由
DispatcherServlet 调 用 HandlerMapping的DefaultAnnotationHandlerMapping
解 析 URL, 解 析 后 调 用HandlerAdatper 组件的 AnnotationMethodHandlerAdapter
调 用Controller 中的 HandlerMethod.当 HandlerMethod 执行完成后会返回
View,会被 ViewResovler 进行视图解析,解析后调用 jsp 对应的.class 文
件并运行,最终把运行.class 文件的结果响应给客户端。
3、SpringMVC环境搭建
1、导入相关jar包
2、在web.xml文件配置前端控制器
2.1 初始化参数是为了配置springmvc.xml文件的路径 如果不配置的话会默认去/WEB-INF/<servlet-name>-servlet.xml找
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190828120803986.png)
contextConfigLocation源码中设置初始化提供的参数名
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190828120822793.png)
2.2 配置映射 确定什么情况下用控制器
2.3 字符编码过滤器(解决中文乱码问题)
3、在src下新建springmvc.xml配置文件
一般分四步(web.xml中配置的前端控制器内初始化的classpath:springmvc.xml就是为了直接找到这个路径)
3.1 扫描注解(主要是controller)(此处必须配置 如果不配置的话控制器中的注解不会生效)
3.2 注解驱动
3.3 加载静态资源文件(因为前端控制器中拦截的是”/”如果不配置的话无法访问静态资源)
3.4 配置视图解析器(一般可以采用默认的 当比较麻烦时可以配置视图解析器 作用:在名称前加上前缀和后缀)
4、编写控制器类
(主要注解@Controller和 @RequestMapper(”name”) 用return进行跳转 如果不想跳转的话需要在@RequestMapping下加上注解@ResponseBody)
4、SpringMVC重点
4.1 传参(注解@RequestParam的使用)
1. 把内容写到方法(HandlerMethod)参数中,SpringMVC 只要有这个内
容,注入内容.
2. 基本数据类型参数
2.1 默认保证参数名称和请求中传递的参数名相同
2.2 如果请求参数名和方法参数名不对应使用@RequestParam()赋
值
4.2 restful传值方式
1、简化 jsp 中参数编写格式
2、在 jsp 中设定特定的格式
3、 在控制器中
3.1 在@RequestMapping 中一定要和请求格式对应
3.2 {名称} 中名称自定义名称
3.3 @PathVariable 获取@RequestMapping 中内容,默认按照
方法参数名称去寻找.
4.3 跳转方式
- 默认跳转方式请求转发(return “name”).
- 设置返回值字符串内容
2.1 添加 redirect:资源路径 重定向
2.2 添加 forward:资源路径 或省略 forward: 转发