• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
dzw9
博客园    首页    新随笔    联系   管理    订阅  订阅
Web后端-SpringBootWeb

Spring
创建springboot工程,并勾选web开发相关依赖
定义HelloController类,添加方法hello,并添加注解
运行测试

1. HTTP协议

1.1 概述

Hyper Text Transfer Protocol 超文本传输协议
基于TCP协议,面向连接安全,一次请求对应一次响应,无状态协议
多次请求间不能共享数据,速度快

1.2 请求协议
请求数据格式 :
请求行 请求方式、资源路径、协议
请求头 key:value
Host,User-Agent,Accept 主机名,浏览器版本,接收资源类型
Accept-Language,Accept-Encoding 浏览器偏好语言,支持压缩类型
Content-Type,Content-Length 请求主体数据类型,大小
请求体 POST请求,存放请求参数,GET请求大小有限制
1.3 响应协议

响应行:协议、状态码、描述

响应码 说明
1xx 响应中,临时状态码,表示请求被接受
2xx 成功,处理完成
3xx 重定向
4xx 客户端错误,请求了不存在的资源、客户端未被授权、禁止访问
5xx 服务器错误,程序抛出异常

响应头:键值对
Content-Encoding响应压缩算法,Cache-Control提升客户端如何缓存,Set-Cookie 为当前所在域设置cookie
响应体

1.4 web服务器-Tomcat

Tomcat是Apache软件基金会的一个核心项目,开源免费的轻量级web服务器,支持少量JavaEE规范
JavaEE(Java Enterprise Edition)企业版,包含13项技术规范:JDBC,JNDI,EJB,RMI,JSP,Servlet,XML,JMS,Java IDL,JTS,JTA,JavaMail,JAF

起步依赖 spring-boot-starter-web/test

2. web后端

  • 前端控制器,Browser/Server架构:HttpServletRequest获取请求数据、DispatcherServlet、HttpServletReponse设置响应数据
    Client/Server 客户端/服务器架构模式

2.2 postman

网页调试与发送网页HTTP请求的chrome插件

2.2.1 简单请求参数

  • 原始方法获取请求参数,Controller方法形参中声明HttpServletRequestduix,然后调用对象的getParameter参数名
  • 请求参数名与方法形参相同,自动进行类型转换
  • 若名称不匹配通过@RequestParam完成映射,请求参数必须传递
参数类型 说明
实体参数 请求参数名与形参对象属性名相同,定义POJO接收即可
数组参数 请求参数名与形参数组变量名相同,可以直接使用数组封装
集合参数 请求参数名与形参数组变量名相同,通过@RequestParam绑定参数
日期参数 使用@DateTimeFormat注解完成日期参数格式转换
JSON参数 POST-raw-JSON @RequestBody
路径参数 /path/{id},@PathVariable
  • 响应数据:Controller方法或类上,将方法返回值直接响应,若是实体对象或集合会转为JSON格式响应
    @RestController = @Controller +@ResponseBody;

  • 实例:

  1. 在pom.xml文件中引入dom4j的依赖,用于解析XML文件
  2. 引入解析XML的工具类utils,实体类Emp,XML文件Emp.xml
  3. 静态页面文件放在resource的static下
  4. 编写Controller程序,处理请求响应数据

3. 分层解耦

  • 三层结构:
    Dao:数据访问(增,删,改,查)
    service:业务逻辑层,处理具体的逻辑
    Controller控制层:接受请求响应数据

  • 分层耦合
    内聚:软件中各个功能模块内部的功能联系。
    耦合:衡量软件中各个层、模块之间的依赖程度。
    设计原则:高内聚低耦合

  • 控制反转:Inversion of Control (IOC)。对象的创建控制权转移到外部容器
    依赖注入:Dependency Injection(DI) 容器为应用程序提供运行时依赖的资源
    Bean对象:IOC容器中创建管理的对象

  • 删掉new对象,通过@Component交给IOC容器管理,
    @Autowired依赖注入,默认按类型进行,加上@Primary设置优先级
    @Qualifier("") @Autowired,@Resource(name = "")

@Component声明bean的基础注解,@Controller标注在控制器类,@Service业务类,@Repository数据访问类,value可指定bean名字,默认为类名首字母小写

还需要被组件扫描注解@ComponentScan({})扫描,默认扫描当前包及其子包
将dao包放在java目录下

posted on 2023-10-17 21:56  dzw9  阅读(20)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3