博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ssm框架restful风格实现增删改查
阅读量:6306 次
发布时间:2019-06-22

本文共 4164 字,大约阅读时间需要 13 分钟。

1、什么是restful风格

大家在做Web开发的过程中,method常用的值是get和post. 可事实上,method值还可以是put和delete等等其他值。

既然method值如此丰富,那么就可以考虑使用同一个url,但是约定不同的method来实施不同的业务,这就是Restful的基本考虑。

2、restful风格独特之处

2.1 url的不同

  • 非restful风格:http://.../queryItems.action?id=001&type=T01
  • restful风格:http://..../items/001

2.2 请求方法的不同

学习javaweb的时候,我们只知道了get和post两种请求方法,当restful却不止这两种

  • 获取数据:GET请求
  • 增加数据:POST请求
  • 修改数据:PUT请求
  • 删除数据:DELETE请求

3、ssm实现restful风格增删改查

3.1 配置HiddenHttpMethodFilter过滤器

浏览器form表单只支持get和post请求,而delete和put请求并不支持。HiddenHttpMethodFilter是spring中自带的一个过滤器,可以将浏览器表单请求转换为标准的http请求,使它们支持get、post、delete、put请求。

HiddenHttpMethodFilter
org.springframework.web.filter.HiddenHttpMethodFilter
HiddenHttpMethodFilter
/*

3.2 在jsp中如何指定form表单的请求方式

在表单中加入隐藏域,name属性一定要为 ”_method“,这样刚才配的HiddenHttpMethodFilter拦截器才能够识别,value属性就是我们需要的请求方式。这样springmvc就会帮我们做

3.3 restful参数传递

在获取一条数据时或删除一条数据时,一般情况下前端要向后端传入一个id值,restful风格的参数传递与之前讲的注解@RequestMapping()注解映射请求中的URI模板一样,将参数作为变量放在URL中。

示例:
前端传入id值为10000,id为以参数变量

前端浏览器URL:http://www.example.com/users/10000

@RequestMapping()注解:@RequestMapping("/users/{id}")
方法中接收id:public String getOneUser(@PathVariable("id") int id){}

3.4增删改查实例

controller:

@Controllerpublic class UserController {    @Resource(name="userService")    UserService userService;        /*     * 查询所有用户     */    @RequestMapping(value="/users",method=RequestMethod.GET)    public String index(Model model) {        List
users = userService.getAllUser(); model.addAttribute("users", users); return "users"; } /* * 转发到添加用户的视图 */ @RequestMapping("/addUserView") public String addUserView() { return "add"; } /* * 添加用户 */ @RequestMapping(value="/addUser",method=RequestMethod.POST) public String addUser(User user) { userService.addUser(user); return "redirect:/users"; } /* * 获取所要修改用户的信息 */ @RequestMapping(value="/user/{id}",method=RequestMethod.GET) public String updateUserView(@PathVariable("id") Integer id,Model model) { User user = userService.getOneUserById(id); model.addAttribute("user",user); return "updateUserView"; } /* * 修改用户信息 */ @RequestMapping(value="/user",method=RequestMethod.PUT) public String updateUser(User user) { userService.updateUser(user); return "redirect:/users"; } /* * 删除用户 */ @RequestMapping(value="/user/{id}",method=RequestMethod.DELETE) public String deleteUser(@PathVariable("id") Integer id) { userService.deleteUser(id); return "redirect:/users"; } }

jsp:

users.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
获取全部用户信息
编号 用户名 密码 操作
${user.id } ${user.username } ${user.password } 修改
添加员工

add.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>
Insert title here
用户名:
密 码:

updateUserView.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
Insert title here
编号
用户名
密码

转载于:https://www.cnblogs.com/hamawep789/p/10896030.html

你可能感兴趣的文章
Java 编程的动态性, 第4部分: 用 Javassist 进行类转换--转载
查看>>
完毕port(CompletionPort)具体解释 - 手把手教你玩转网络编程系列之三
查看>>
iOS8 Push Notifications
查看>>
各大名企笔试及面经大全(程序猿必读)
查看>>
Oracle 连接、会话数的查看,修改
查看>>
Python使用QRCode模块生成二维码
查看>>
英语学习的重要性
查看>>
Android中Handler引起的内存泄露
查看>>
原产地政策,jsonp跨域
查看>>
ffmpeg参数具体解释
查看>>
记一次公司仓库数据库服务器死锁过程
查看>>
Oracle 11g password过期被锁定报道 ORA-28000 the account is locked
查看>>
【Struts2学习笔记(2)】Action默认值和配置Action于result各种转发类型
查看>>
轨磁条简介
查看>>
(算法)交错的字符串
查看>>
hdu 5471(状压DP or 容斥)
查看>>
oracle.jdbc.driver.OracleDriver和oracle.jdbc.OracleDriver这两个驱动的区别
查看>>
NSQ部署
查看>>
git常用命令记录
查看>>
IBM发布新一代云计算工具包MobileFirst Foundation
查看>>