一. 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接口的返回值:

  1. 返回 ModelAndView
  2. 返回字符串
  • 字符串代表客户端跳转跳转 redirect
  • 字符串代表服务端跳转forward
  • 字符串代表逻辑视图名 ,参数中加一个Model用来传递数据Model
  • 真的字符串(方法上加一个@ResponsBody注解)
  1. 返回 void,方法上加一个@ResponsBody注解

四 常见的报错状态码

200 - 服务器成功返回网页

4xx

400 请求参数异常,debug的时候参数进不去方法,

401 (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应

403 (禁止) 服务器拒绝请求

404 路径不对

405 请求方法不对

406 (不接受) 无法使用请求的内容特性响应请求的网页,还是请求方法不对

408 (请求超时)

5xx:这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。

500 服务器问题

501 (尚未实施) 服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。

502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应

503 - 服务不可用

504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求

505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本