0609springmvc
1.RESTURL(重要)
url描述性状态转移.(描述请求方法,把相同的url转到不同的处理器方法)
是一种url的写法风格,与之前url写法区别如下:
rest风格的url,没有动词
传统url | 参数 | 请求方法 | rest风格 | 参数 |
---|---|---|---|---|
/user/getById | ?id=12 | GET|GET | /user/12 | 参数属于uri的一部分 |
/user/add | 请求体json | POST|POST | /user | 请求体json |
/user/update | 请求体json | POST|PUT | /user | 请求体json |
/user/deleteByID | ?id=12 | GET|DELETE | /user/12 | 参数属于uri的一部 |
注意点1:请求方法与url只要有一个(url排除路径变量的)不同,就是不同的处理器方法.
注意点2:参数不再?追加到url后面,而是属于uri的一部分.
注意点3:只有参数个数是固定的情况才使用rest风格的url,参数不能为""
springmvc支持rest风格url
-
@GetMapping.@PostMapping.@PutMapping.@DeleteMapping分别进行查询,添加,修改,删除映射.进行url映射时,使用{}定义路径变量,括号内是路径变量名
@DeleteMapping("{id}") public AxiosResult del(@PathVariable Integer id,@RequestBody SysUser u){ return AxiosResult.suc(); } @GetMapping("{userid}") public AxiosResult getById(@PathVariable("userid") Integer id){ SysUser u =new SysUser(); u.setId(id); u.setUname("aaa"); return AxiosResult.suc(u); }
-
在处理器方法形参使用@PathValiable来获取指定路径变量,默认是获取形参名对应的路径变量,也可以指定名称@PathVariable("userid")
-
put请求,默认无法获取请求体的k=v参数.本质来说tomcat就不支持put,delete请求.要用put,delete请求要求前端后端选择axios,springmvc都要支持put,delete. axios在进行put,delte请求时,底层仍然是发送post,method:put|delete,springmvc在解析method,对put,delete请求的请求再进行分发.
axios.get
axios.post
axios.put
axios.delete
2.静态资源处理
在前端未分离开发模式下才需要静态资源处理.一旦前端代码独立项目部署,那么不需要静态资源处理.
静态资源:html,css,js,jpb,png.音视频,文件
jsp能访问?
访问jsp文件,在tomcat下有默认的JspServlet来处理jsp请求 Tomcat: DefaultServlet此servlet映射路径/ 没有springmvc环境时,访问tomcat下的静态资源都是default来处理.有了springmvc的DisptcherServlet以后,覆盖了defaultServlet JspServlet此servlet映射路径 *.jsp
html不能访问?
当访问html,css,js等文件时,这些请求也进入DispatcherServlet,解析uri,查找HandlerMethod方法.找不到则404.
springmvc静态资源处理1:
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.html</url-pattern> <url-pattern>*.