本文承接《Web 项目 tiger 之5 查询所有用户》
REST 风格
- tiger 项目前期的登录与拦截器已经做完,现在开始做“增删改查”操作,不过这里使用“REST”风格来做
- HTTP 协议是一个广泛应用的 Internet 协议,提供了8个不同的请求方法,常见的就是前4个:
- GET ------------向特定资源发出请求(请求指定页面信息,并返回实体主体)
- POST-----------向指定资源提交数据进行处理请求(提交表单、上传文件)
- PUT-------------向指定资源位置上上传其最新内容
- DELETE-------请求服务器删除指定的资源
- HEAD
- OPTIONS
- TRACE
- CONNECT
- REST:即 Representational State Transfer。(资源)表现层状态转化,是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便, 所以正得到越来越多网站的采用。
- REST风格就是通过Http请求方式的不同来标识不同的方法,即对于同一个请求路径,可以根据请求方式的不同来区分它们
操作 |
普通CRUD(根据uri区分) |
REST风格CRUD(根据请求方式区分) |
查询 |
localhost:8080/tiger/findUsers |
localhost:8080/tiger/user-----get方式请求 |
添加 |
localhost:8080/tiger/saveUser |
localhost:8080/tiger/user-----post方式请求 |
修改 |
localhost:8080/tiger/updateUser |
localhost:8080/tiger/user-----pup方式请求 |
删除 |
localhost:8080/tiger/deleteUser |
localhost:8080/tiger/user-----delete方式请求 |
- 其中tiger是应用上下文路径。也不能完全一概而论谁优谁劣,习惯就好!
/**
* 查询所有用户
*
* @param model :做数据返回
* @return :返回到用户列表页面
*/
@GetMapping("user")
public String findUsers(Model model) {
/** 往前端 Thymeleaf 模板引擎时,开头不要加 "/" ,因为它默认配置就是:
* 前缀:spring.thymeleaf.prefix=classpath:/templates/
* 后缀:spring.thymeleaf.suffix=.html
*/
return "userList";
}
/**
* 根据id查询用户---修改之前,得先查询出待修改用户的数据
*
* @param id :用户id
* @param model :做数据返回
* @return :跳转到修改用户的页面
*/
@GetMapping("user/{id}")
public String findUserById(@PathVariable(name = "id") Integer id, Model model) {
/** 往前端 Thymeleaf 模板引擎时,开头不要加 "/" ,因为它默认配置就是:
* 前缀:spring.thymeleaf.prefix=classpath:/templates/
* 后缀:spring.thymeleaf.suffix=.html */
return "updateUser";
}
/**
* 添加用户
*
* @param employee :直接封装好的用户数据
* @return :重定向到查询所有用户
*/
@PostMapping("user")
public String saveUser(Employee employee) {
/** 往服务器重定向时 要以 "/" 开头表示应用根地址*/
return "redirect:/user/userList";
}
/**
* 修改用户
*
* @param employee :直接封装好的用户数据
* @return :重定向到查询所有用户
*/
@PutMapping("user")
public String updateUser(Employee employee) {
/** 往服务器重定向时 要以 "/" 开头表示应用根地址*/
return "redirect:/user/userList";
}
/**
* 删除用户
*
* @param id :用户id
* @return :重定向到查询所有用户
*/
@DeleteMapping("user/{id}")
public String deleteUser(@PathVariable(name = "id") Integer id) {
/** 往服务器重定向时 要以 "/" 开头表示应用根地址*/
return "redirect:/user/userList";
}