SSM框架Restful风格实现增删改查

SSM框架Restful风格实现增删改查

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请求。

<filter>
    <filter-name>HiddenHttpMethodFilter</filter-name>
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>HiddenHttpMethodFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

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

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

<input type="hidden" name="_method" value="PUT">

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:

@Controller
public class UserController {

    @Resource(name="userService")
    UserService userService;
    
    /*
     * 查询所有用户
     */
    @RequestMapping(value="/users",method=RequestMethod.GET)
    public String index(Model model) {
        List<User> 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" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>获取全部用户信息</title>
</head>
<body>
    <table border="1" >
        <tr>
            <th>编号</th>
            <th>用户名</th>
            <th>密码</th>
            <th colspan="2">操作</th>
        </tr>
        <c:forEach var="user" items="${requestScope.users }" >
            <tr>
                <td>${user.id }</td>
                <td>${user.username }</td>
                <td>${user.password }</td>
                <td><a href="/ssm/user/${user.id }">修改</a></td>
                <td><form action="/ssm/user/${user.id }" method="post">
                    <input type="hidden" name="_method" value="DELETE">
                    <input type="submit" value="删除">
                </form></td>
            </tr>
        </c:forEach>
    </table>
    <a href="/ssm/addUserView">添加员工</a>
    
</body>
</html>

add.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
    <form action="/ssm/addUser" method="post">
        用户名:<input type="text" name="username"><br><br>
        密  码:<input type="text" name="password"><br><br>
        <input type="submit" value="提交">
    </form>
</body>
</html>

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"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
    <form action="/ssm/user" method="post">
        <input type="hidden" name="_method" value="PUT">
        <table border="1">
            <tr>
                <th>编号</th>
                <td><input type="text" name="id"
                    value="${requestScope.user.id }"></td>
            </tr>
            <tr>
                <th>用户名</th>
                <td><input type="text" name="username"
                    value="${requestScope.user.username }"></td>
            </tr>
            <tr>
                <th>密码</th>
                <td><input type="text" name="password"
                    value="${requestScope.user.password }"></td>
            </tr>
            <tr>
                <td><input type="submit" value="修改"></td>
            </tr>
        </table>
    </form>
</body>
</html>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SSM框架(Spring+SpringMVC+MyBatis)是一种常用的Java企业级框架,它能够将各层模块进行解耦,并使用注入和依赖注入等技术实现松耦合的开发。 RESTful是一种软件架构风格,它通过基于HTTP的标准请求方法(GET、POST、PUT、DELETE等)来进行资源的增删改查操作。它具有简洁、易于理解和扩展性好的特点。 Spring Boot是一种基于Spring框架的快速开发框架,它封装了很多开发常用的依赖和配置,极大地简化了Spring应用的配置过程。 而在利用Idea开发SSM框架RESTful风格的Spring Boot项目时,可以按照以下步骤进行: 1. 首先,创建一个空的Spring Boot项目,可以在Idea中使用Spring Initializer快速生成。 2. 在pom.xml文件中添加所依赖的SSM框架、连接数据库的相关依赖以及其他需要的依赖。 3. 在src/main/java目录下创建主启动类,并添加相关注解,如@SpringBootApplication等。同时,创建并配置application.properties或application.yml文件来设置项目的相关配置信息。 4. 创建用于处理网页请求的Controller、用于数据传输的DTO类、实体类等。 5. 利用MyBatis创建DAO和Mapper接口,同时编相应的Mapper.xml文件,使用注解或者XML方式配置SQL语句。 6. 创建Service层的接口和实现类,用于进行业务处理,并调用DAO层的方法来访问数据。 7. 在Controller层进行相关URL的映射和请求处理,实现RESTful风格的API接口,并调用Service层的方法。 8. 对项目进行测试和调试,可以使用Postman等工具进行接口的测试,验证项目的正确性。 总的来说,利用SSM框架RESTful风格的开发,结合Spring Boot和Idea等工具,可以快速搭建和开发Java项目,提高开发效率和可维护性。同时,也能为项目提供稳定的运行环境和良好的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值