Springmvc(spring框架的一部分)
名词解释:
ssh:spring strusts2(对web层封装) hibernate(持久层框架 jpa)
ssm:spring struts2 mybatis
ssm:spring spingmvc mybatis
mvc Model(数据模型层 model dao)
View(视图层 jsp 简化的servlet 动态页面)
Controller(控制层)
前后端不分离时代的架构设计
后端三层框架:web/控制层.service业务逻辑 dao数据访问
spring web模块:spring web属于spring中的一个模块
对java web层(servlet)进行了封装
请求-服务器-servlet-service-dopost–request.getparameter 接收数据
--处理
--响应 响应json
@RestController 标记此类是控制层类,创建对象 复合注解包含@Controller,@ResponseBody
@Controller 标记此类是控制层类,创建对象
@ResponseBody方法如果有返回值的话,将返回值写入到响应结果流中,response.getWriter().print(“结果”)
不加@ResponseBody认为返回的视图名称,进行视图解析
现在架构是前后端分开的,所有的请求是异步的,都是需要返回结果的,所以使用@RestController
@RequestMapping(path=“/admin/loginctl”)可以用在类上,为类定义映射地址,必须是唯一
也可以用在方法上,为方法定义映射地址,在同一类方法地址必须是唯一,可以与方法各不相同
通过path,value属性定义地址,可以定义多个地址@RequestMapping(value={“/login”,“/login”})
定义允许哪些请求方法访问方法@RequestMapping(value=“/login”,method=RequestMethod.POST)
也可以使用@PostMapping(value=“/login”) @GetMapping···
//获得请求头数据
public string login(@RequestHeader(“User-Agent”) string User-Agent,
@·······················(“Accpet-language”) string acclanguage,
@RequestParam(“account”) String account,
password){ }
框架可以将request,reponse,session注入到方法中,需要时取出
请求参数名字,与形参名字一致,不需要使用标签绑定 string account,
string password
400状态码 请求数据格式与后端类型不匹配
springweb 遵循javaweb规范
提供请求分发的servlet 所有后端请求到达此servlet
由此servlet进行分发,首先让请求到一个映射处理器(解析地址,类地址/方法地址)
如果某些地址配置拦截器,进入到拦截器执行
之后又回到分发servlet,到达处理适配(对参数进行封装)
最终到达自己的处理器
处理器处理完后最终响应json