44Java Web:从零开始Spring Web

Spring Web 应用

  • 创建和声明Service Bean
  • 创建和声明Controller Bean
  • 处理各种各样的HTTP请求

从零开始一个Spring应用

Spring官方文档

  • pom.xml
  • src/main/java/hello/Application.java
  • src/main/java/hello/HelloController.java

Web应用的本质

处理HTTP请求

  • 从HTTP请求中提取query string (查询字符串)
  • 从HTTP请求中接收body/payload(负载)中的参数

返回HTTP响应

  • status code
  • HTTP response header
  • HTTP response body
    • JSON
    • HTML
    • ...

HTTP GET

  • Query string

    • ?param1=value1&param2=value2
  • 通常用来传递非敏感信息

  • 使用@RequestParam进行接收

RESTful API

  • 使用HTTP动词来代表动作
    • GET:获取资源
    • POST:新建资源
    • PUT:更新资源
    • DELTE:删除资源
  • 使用URL(名词)来代表资源
    • 资源里面没有动词
    • 使用复数来代表资源列表

@RestController

  • 使用RESTfuI风格的参数

    • 使用@PathVariabIe进行参数提取

Postman发送参数


获取链接中的参数

@PostMapping

  • 处理POST请求
  • 从HTTP POST请求中提取body
  • IDEA插件 Gsonformat
    • 根据json自动生成JavaBean
    • 快捷键 Alt + s

POST请求发送Body
Headers

  • KEY Content-Type
  • VALUE application/json


获取Body成一个对象

场景 Content-Type 使用注解 适用于
提取整个body中 的对象 application/json @RequestBody JSON
提取body中\
的参数
application/x-www-form-urlencoded @RequestParam 表单

生成http响应

  • 直接操作 HttpServletResponse 对象
    • 原始、简单、粗暴
  • 直接返回HTML字符串
    • 原始、简单、粗暴
  • 返回对象,并自动格式化成JSON
    • 常用
    • @ResponseBody
  • 模板引擎渲染
    • JSP/Velocity/Freemaker

周边生态系统

  • HTTPS
  • 分布式部署
  • 扩展功能
    • 数据库
    • Redis缓存
    • 消息队列
    • RPC(Dubbo/Spring Cloud)
    • 微服务化

「资料来源:饥人谷」

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注