当前位置:   article > 正文

JavaWeb6 Tomcat+postman请求,响应+常用注解整理_通过postman实现向tomcat服务器传输数据

通过postman实现向tomcat服务器传输数据

重点是关注Controller,它主要进行接收请求,设置响应
在这里插入图片描述

Web服务器

对HTTP协议操作进行封装,简化web程序开发
部署web项目,对外提供网上信息浏览服务

Tomcat

轻量级web服务器,支持servlet,jsp等少量javaEE规范
也被称为web容器,servlet容器

Springboot有内置Tomcat
nginx并发比tomcat好一点但是tomcat是为java量身定做,nginx是为web做方向代理多点
3.0以上的springboot用JDK17

起步依赖

在这里插入图片描述
-starter都是起步依赖
在启动springboot会自动启动内嵌Tomcat,并占用端口号8080

POJO

专门存放实体类
pojo=>Plain Ordinary Java Object 就是普通java类,这是j2ee时代的名字和复杂j2ee对象做区分

简单参数

请求参数名与形参一致,就可自动接收
在这里插入图片描述
参数对应不上,就要借助于注解@RequestParam
在这里插入图片描述

实体参数

当请求参数过多,不如将参数封装到实体类中。
要求就是:请求参数名与形参属性名相同,定义POJO接受即可
在这里插入图片描述
在这里插入图片描述

数组集合参数

服务端接收形式:数组、集合
在这里插入图片描述在这里插入图片描述

日期参数

在这里插入图片描述

接收json参数

请求POST,json数据需要通过请求体携带到后端。
JSON键名与形参对象属性名相同,定义POJO类型形参即可接收是参数,需要使用
@RequestBody注解将json数据封装到实体对象中

服务端一般通过实体对象来接收
在这里插入图片描述

路径参数

通过URL直接传递参数,即请求参数是请求路径的一部分
需要使用@PathVariable获取路径参数
在这里插入图片描述

响应

响应数据

在这里插入图片描述
@RestController=@ReponseBody+@Controller【也就是说这个@RestController已经包括了】

@ReponseBody加了这个注解,当前类下所有方法的返回值都能作为相应数据,集合啥的都转换为JSON作为返回值
在这里插入图片描述

响应的格式:响应行+响应头+响应体

统一响应结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

整理一下一些注解

这个博客讲的很详细且有例子 SpringBoot常用的50个注解
1.@ResponseBody
的作用其实是将java对象转为json格式的数据,然后直接写入HTTP response 的body中;
@RequestMapping后,返回值通常解析为跳转路径,但是加上 @ResponseBody 后返回结果不会被解析为跳转路径,而是直接写入 HTTP response body 中。
2.@RestController=@ReponseBody+@Controller
在类上用@RestController,其内的所有方法都会默认加上@ResponseBody,也就是默认返回JSON格式。将控制器方法的返回值转换为JSON格式,并以HTTP响应的方式返回给客户端。
@RestController和@Controller的共同点是都用来表示Spring某个类是否可以接收HTTP请求,二者区别: @RestController无法返回指定页面,而@Controller可以;前者可以直接返回数据,后者需要@ResponseBody辅助。
3.@RequestBody作用在形参列表上,用于将前台发送过来固定格式的数据【xml格式 或者 json等】封装为对应的 JavaBean 对象,封装时使用到的一个对象是系统默认配置的 HttpMessageConverter进行解析,然后封装到形参上。
就是将JSON格式的数据封装到实体类中
4.@Transactional是Spring框架中用于声明式事务管理的关键注解。通过使用@Transactional注解,我们可以更加方便地管理事务,保障数据的一致性和可靠性。用于声明式事务管理**,保证方法或类中的操作在同一个事务中执行**。
5.@RequestMapping映射请求URL和处理方法。跳转路径
6.@GetMapping用于映射HTTP GET请求。
7.@PostMapping用于映射HTTP POST请求。
8.@RequestParam用于获取请求参数的值。
在这里插入图片描述
9.@ConfigurationProperties注解代表当前类是一个配置属性类,作用是:封装配置文件中的一些配置项。
原理就是:通过配置属性类,将配置文件中的配置项,封装成一个类,然后通过@Autowired注解注入到要使用的地方。
10.取的是路径参数,加注解@PathVariable,如果和路径参数不同名,就要加括号双引号指明取的是哪个路径参数@PathVariable("status") ;如果同名,就不用加。

	@PostMapping("/status/{status}")
    @ApiOperation("启用禁用员工账号")
    public Result startOrStop(@PathVariable Integer status,Long id){
        log.info("启用禁用员工账号:{},{}",status,id);
        employeeService.startOrStop(status,id);
        return Result.success();
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

11.@Target(ElementType.METHOD)//指定注解只能加载方法上,@Retention(RetentionPolicy.RUNTIME)运行时
创建自定义注解
annotation.AutoFill.java

Target注解指定加上什么上面,Retention注解指定什么时候用,

@Target(ElementType.METHOD)//指定注解只能加载方法上
@Documented
@Retention(RetentionPolicy.RUNTIME)
public @interface AutoFill {
    //通过枚举-指定当前属性OperationType
    //数据库操作类型OperationType:就两种 Update 和 Insert
    OperationType value();
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

12.Swagger使用注解
在这里插入图片描述
@Api(tags = “员工相关接口”)

@RestController
@RequestMapping("/admin/employee")
@Slf4j
@Api(tags = "员工相关接口")//tags用来描述类的作用
public class EmployeeController {

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

@ApiOperation(“员工登录”)

	@PostMapping("/login")
    @ApiOperation("员工登录")
    public Result<EmployeeLoginVO> login(@RequestBody EmployeeLoginDTO employeeLoginDTO) {
  • 1
  • 2
  • 3

@ApiModel(description = “员工登录时传递的数据模型”)
@ApiModelProperty(“用户名”)

@Data
@ApiModel(description = "员工登录时传递的数据模型")
public class EmployeeLoginDTO implements Serializable {

    @ApiModelProperty("用户名")
    private String username;

    @ApiModelProperty("密码")
    private String password;

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/973320
推荐阅读
相关标签
  

闽ICP备14008679号