一. RESTful风格
概念:servlet中就存在的,一种软件架构风格、设计风格,而不是标准
1.1 传统风格
- http://127.0.0.1/item/queryUser.action?id=1 查询,GET
- http://127.0.0.1/item/saveUser.action 新增,POST
- http://127.0.0.1/item/updateUser.action 新,POST
- http://127.0.0.1/item/deleteUser.action?id=1 删除,GET或POST
http://localhost:8080/mvc02/user/1
二.@RequestMapping(“/路径”)注解
最开始的提交方法:
- GET:查询
- POST:添加
- PUT:修改
- DELETE:删除
- @RequestMapping(“/h”)
1.放在类上
@RequestMapping("/h")
//这个注解也可以放在类上面,那么将来所有方法的访问接口,都需要加上这个前缀
public class HelloController {
2.放在方法上
@RequestMapping(value = "/hello",method =RequestMethod.GET)
public ModelAndView hello() {
- 注解加在 方法上,访问路径就是 http://localhost:8080/mvc02/hello
- 默认情况下,这个注解支持多个请求方法,我们可以通过 method 属性去指定该接口支持哪些方法,但是注意,如果这个注解放在类上面,不能指定 method 属性
日常方法上可以用
@GetMapping
@PostMapping
3.日常用
以上的@RequestMapping在方法上的
写法是否的复杂,后期日常用的不是这种形式
- @GetMapping(“/hello”)
public ModelAndView hello() {- @DeleteMapping(“/路径”)
- @PostMapping(“路径”)
- @PutMapping
三.接口的参数
1.1 接口的参数
1.1.1 接口的参数
- HttpServletRequest
- HttpServletResponse
- HttpSession
- Model/ModelMap
1.1.2自定义的参数
自己定义,后期补充
1.1.3 参数的传递:
- 地址栏传递 req.getParameter()
- 请求体传递
- key-value :req.getParameter()
- Json:通过io流解析,req.getInputStream(),是一种底层的传递方式,这样更方便(req.getParameter()可以处理但是麻烦)
- 文件
- 路径参数: reqgetPathInfo()
1.2接口的返回值:
- 返回 ModelAndView
- 返回字符串
- 字符串代表客户端跳转跳转 redirect
- 字符串代表服务端跳转forward
- 字符串代表逻辑视图名 ,参数中加一个Model用来传递数据Model
- 真的字符串(方法上加一个@ResponsBody注解)
- 返回 void,方法上加一个@ResponsBody注解
四 常见的报错状态码
200 - 服务器成功返回网页
4xx
400 请求参数异常,debug的时候参数进不去方法,
401 (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应
403 (禁止) 服务器拒绝请求
404 路径不对
405 请求方法不对
406 (不接受) 无法使用请求的内容特性响应请求的网页,还是请求方法不对
408 (请求超时)
5xx:这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。
500 服务器问题
501 (尚未实施) 服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。
502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应
503 - 服务不可用
504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求
505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本