SpringMVC

什么是MVC

是一种架构思想,包含模型 视图 控制器

Model:模型类 指工程中的javaBean,作用是数据处理

javaBean分两类:

实体类Bean:存储业务数据、

业务处理Bean:例如Service或 Dao对象  用于处理业务逻辑数据访问

View:视图层,之工程中的html或者jsp等页面

Controller:指工程中的Servlet,作用是接受请求响应浏览器

什么是SpringMVC

是Spring中的一个子项目,为表述层开发提供的一套完备解决方案,封装Servlet

SpringMVC的特点

Spring家族原生产品 与IOC(控制反转)容器等基础设施无缝衔接

基于原生的Servlet,通过前端控制器DispatcherServlet 对请求和响应进行统一处理

内部组件化程度高,可插拔式组件  即插即用

代码清晰,简洁,性能卓越

开发环境

idea、maven、tomcat、Spring

创建Maven项目

设置打包方式 war,导入jar包

新建webapp 以及 web配置文件

修改路径

配置web.xml

配置SpringMVC前端控制器,对浏览器发送的请求进行统一处理

扩展配置文件

init-param

load-on-startup  1 提前启动,目的第一次慢,后续访问快

创建请求控制器

POJO实体类,需要@Controller注解将其标记为 控制层组件,交给Spring的IOC(控制反转)容器管理

配置springMVC配置文件

扫描组件:刚刚创建实体类了,但是需要扫描组件 把他找到

<context: component-scan>

视图解析器

访问首页

在控制层,访问首页,首页要导入thymeleaf文件配置

@RequestMapping(value="/")请求,当浏览器返送请求

配置tomcat文件

访问指定页面

创建 超链接(thymeleaf)语法,controller注册页面,访问页面 转发操作

总结

浏览器发送请求,若请求地址符合前端控制器的URL-pattern,该请求就会被前端控制器DispatcherServlet处理

前端控制器会读取SpringMVC的核心配置文件,通过扫描组件,找到控制器

请求地址和控制器中@RequestMapping注解(请求映射)的value进行匹配,若匹配,该注解所标识的方法就是处理请求的方法

处理请求的方法需要一个返回字符串类型的视图名称,该视图名称会被视图解析器访问,加上前缀和后缀,通过thymeleaf渲染

搭建框架

新建项目,修改打包方式 ,webapp修改路径,注册前端控制器(名字与Servlet一样)

@RequestMapping注解

该注解的作用就是将请求和处理请求的控制器方法关联起来,建立映射关系

@RequestMapping注解的位置

标识一个类:设置映射请求的请求路径的初始信息

标识一个方法:设置映射请求的请求路径的具体信息

方法上的该注解 不能重复

类上的可以区分,比如 User的 ,或者Student的 在找方法上的

@RequestMapping注解的value属性

value=地址

@RequestMapping注解的method属性

method=方法(get或者post)表单

是一个RequestMethod类型的数组 里面的方法,put get post

报错会是405,请求方式不是映射的方式、

@RequestMapping注解结合请求方式的派生注解

@GetMapping

@PostMapping

@PutMapping

@DeleteMapping

@RequestMapping注解的params属性(了解)

"param":要求请求映射所匹配的请求必须携带param请求参数

"!param":要求请求映射所匹配的请求不能携带param请求参数

"param=value":要求请求映射所匹配的请求必须携带param请求参数且param=value

"param!=value":要求请求映射所匹配的请求必须携带param请求参数且param!=value

@RequestMapping注解的headers属性(了解)

headers=请求头

"headers":要求请求映射所匹配的请求必须携带headers请求参数

"!headers":要求请求映射所匹配的请求不能携带headers请求参数

"headers=value":要求请求映射所匹配的请求必须携带param请求参数且headers=value

"headers!=value":要求请求映射所匹配的请求必须携带param请求参数且headers!=value

SpringMVC支持ant风格的路径

?:任意字符

*:0个或者多个字符

**:一层或多层目录

SpringMVC中支持路径中的占位符(重点)

将值拼接到路径中

网页(test/1/admin)

restful风格,需要注解@PathVariable("username")Sring username

SpringMVC获取请求参数

通过ServletAPI获取

将HttpServletRequest作为控制器方法的形参 ,方法 request.getParameter

通过控制器方法的形参获取请求参数

arrays.toString方法打印字符串数组

@RequestParam注解处理请求参数和控制器方法的形参的映射关系

就是两者不一样的时候,username和user_name这样

requird

defaultValue

@RequestHeader注解处理请求头和控制器方法的形参的映射关系

@CookieValue将cookie数据和控制器方法的形参的映射关系

首先控制器获取HttpSession request.getSession

第一次,响应报文,之后再请求报文中

通过实体类的形参获取请求参数

通过实体类的对象直接输出

通过CharacterEncodingFilter处理字符编码

监听--》过滤--》--》servlet

filter-name/mapping 过滤器比servlet执行早

域对象共享数据

34.搭建springMVC项目

使用ServletAPI想request域对象共享数据

使用modelandview

使用model

使用map

使用modelmap

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值