Spring Boot 与MockMVC进行添删改测试和jsp 的整合

Spring boot 对RESTful的支持

	1.什么是RESTful
			RESTful是目前最流行的一种互联网软件架构
	2.按照REST的思想我们来设计一组对用户操作的RESTful API:

|请求 | 地址 |说明
|GET | /users |查询所有数据
|GET | /users |根据Id查询
|Post |/users |新增
|Put |/users |修改
|Delete | /users |删除

编写实体类

package com.lm.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

@Data
@TableName("sys_user")
public class SysUser {
  @TableId(type = IdType.AUTO)
  @TableField("user_id")
  private long userId;
  @TableField("user_name")
  private String userName;
  @TableField("user_password")
  private String userPassword;
  @TableField("user_role_id")
  private long userRoleId;
  @TableField("user_flag")
  private long userFlag;

  public SysUser(long userId, String userName, String userPassword, long userRoleId, long userFlag) {
    this.userId = userId;
    this.userName = userName;
    this.userPassword = userPassword;
    this.userRoleId = userRoleId;
    this.userFlag = userFlag;
  }

  public long getUserId() {
    return userId;
  }

  public void setUserId(long userId) {
    this.userId = userId;
  }


  public String getUserName() {
    return userName;
  }

  public void setUserName(String userName) {
    this.userName = userName;
  }


  public String getUserPassword() {
    return userPassword;
  }

  public void setUserPassword(String userPassword) {
    this.userPassword = userPassword;
  }


  public long getUserRoleId() {
    return userRoleId;
  }

  public void setUserRoleId(long userRoleId) {
    this.userRoleId = userRoleId;
  }


  public long getUserFlag() {
    return userFlag;
  }

  public void setUserFlag(long userFlag) {
    this.userFlag = userFlag;
  }

}

Mapper接口


public interface UserMapper extends BaseMapper<SysUser> {
    public IPage<SysUser> selectPage(IPage page, @Param("ew") Wrapper queryWrapper);
}

Service
在这里插入图片描述
记得实现service接口
编写UserController

package com.lm.controller;

import com.lm.pojo.SysUser;
import com.lm.service.UserService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;
import java.util.List;

@Controller
public class UserController {
    @Resource
    UserService userService;

    @PostMapping("/user/login")
    public String getlogin(String userName,String userPassword, Model model, HttpSession session){
        SysUser sysUser= userService.login(userName,userPassword);
        System.out.println(sysUser);
        if (sysUser!=null){
            session.setAttribute("loginUser",sysUser);
            return "main";
        }else {
            model.addAttribute("msg","用户名或密码错误,登录失败");
            return "login";
        }
    }
    @GetMapping("/users")
    public List<SysUser> findAllUsers(){
        List<SysUser> list=userService.findAllUsers();
        return list;
    }
    @GetMapping("/user/{id}")
    public SysUser getUser(@PathVariable("id") Long userId){
        SysUser sysUser=userService.getSysUser(userId);
        return sysUser;
    }
    @PostMapping("/user/add")
    public void addUser(String  userName,String userPassword,String userRoleId,String userFlag){
        SysUser sysUser=new SysUser(1,userName,userPassword,Integer.parseInt(userRoleId),Integer.parseInt(userFlag));
        userService.addSysUser(sysUser);
    }
    @PutMapping("/user/update")
    public void updateUser(String userId,String  userName,String userPassword,String userRoleId,String userFlag){
        SysUser sysUser=new SysUser(Integer.parseInt(userId),userName,userPassword,Integer.parseInt(userRoleId),Integer.parseInt(userFlag));
        userService.updateSysUser(sysUser);
    }
    @DeleteMapping("/user/delete/{id}")
    public void deleteUser(@PathVariable("id") Long userId){
        userService.deleteSysUser(userId);
    }
    @GetMapping("/login")
    public String login(){
        return "login";
    }
    @GetMapping("/main")
    public String main(){
        return "main";
    }
}

Web测试的

package com.lm;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MockMvcBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.context.WebApplicationContext;

import javax.annotation.Resource;

@SpringBootTest
@RunWith(SpringRunner.class)
public class UserControllerTester {
    @Resource
    private WebApplicationContext wac;
    private MockMvc mockMvc;

    @Before
    public void setup(){
        this.mockMvc= MockMvcBuilders.webAppContextSetup(this.wac).build();
    }
    @Test
    public void testGetUser(){
        try {
            String mvcResult=mockMvc.perform(MockMvcRequestBuilders.get("/user/29")).andReturn().getResponse()
                    .getContentAsString();
            System.out.println(mvcResult);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @Test
    public void testAddUser(){
        final MultiValueMap<String,String> params=new LinkedMultiValueMap<>();
        params.add("userName","RESTful1111");
        params.add("userPassword","123456");
        params.add("userRoleId","9");
        params.add("userFlag","1");
        try {
            mockMvc.perform(MockMvcRequestBuilders.put("/user/add").params(params))
                    .andExpect(MockMvcResultMatchers.status().isOk()).andDo(MockMvcResultHandlers.print());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @Test
    public void testupdate(){
        final MultiValueMap<String,String> params=new LinkedMultiValueMap<>();
        params.add("userId","31");
        params.add("userName","REST");
        params.add("userPassword","123456");
        params.add("userRoleId","9");
        params.add("userFlag","1221");
        try {
            mockMvc.perform(MockMvcRequestBuilders.put("/user/update").params(params))
                    .andExpect(MockMvcResultMatchers.status().isOk()).andDo(MockMvcResultHandlers.print());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @Test
    public void testdelete(){
        try {
            String mvcResult=mockMvc.perform(MockMvcRequestBuilders.delete("/user/delete/31")).andReturn().getResponse()
                    .getContentAsString();
            System.out.println(mvcResult);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

二整合JSP开发

1.创建一个web文件夹
在这里插入图片描述

配置一个web的资源
在这里插入图片描述

引入依赖

<!--添加jstl标签依赖-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
        <!--添加jsp引擎依赖  Spring Boot内置Tomcat没有此依赖-->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
        </dependency>

编写Controller控制器

@Controller
public class UserController {
    @Resource
    UserService userService;

    @PostMapping("/user/login")
    public String getlogin(String userName,String userPassword, Model model, HttpSession session){
        SysUser sysUser= userService.login(userName,userPassword);
        System.out.println(sysUser);
        if (sysUser!=null){
            session.setAttribute("loginUser",sysUser);
            return "main";
        }else {
            model.addAttribute("msg","用户名或密码错误,登录失败");
            return "login";
        }
    }
    }

jsp文件

在这里插入图片描述

成功的页面
在这里插入图片描述
注意:启动项目的需要配置在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
就可以正常访问了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值