JavaWeb学习日记5-请求响应,分层解耦

请求响应

概述

  • DispatchServlet核心控制器/前端控制器
  • HttpServletRequest请求对象
    • 获取请求数据
  • HttpServletResponse响应对象
    • 设置响应数据

请求

Postman

  • 一款插件,用于网页调试与发送网页HTTP请求,常用于进行接口测试

简单参数

  • 原始方式
    • 通过HttpServletRequest请求对象获取
  • 基于SpringBoot

实体参数

  • 简单实体对象:请求参数名与形参对象属性名相同,定义POJO接受即可
  • 复杂实体对象

数组集合参数

  • 数组参数
    • 请求参数名与形参数组名称相同且请求参数为多个,定义数组类型形参即可接受参数
  • 集合参数
    • 请求参数名与形参集合名称相同且请求参数为多个,@RequestParam绑定参数关系

日期参数

  • @DataTimeFormat注解完成日期参数格式转换

Json参数

  • JSON数据键名与形参对象属性名相同,定义POJO类型形参即可接收参数,需要使用@RequestBody标识

路径参数

  • 参数已经成为了URL的一部分,需要使用@PathVariable获取路径参数
  • 参数应该是动态的:@RequestMapping("/path/{id}")

响应

@ResponseBody

  • 类型:方法注解,类注解
  • 位置:Controller方法上/类上
  • 作用:将方法返回值直接响应,如果返回值类型是实体对象/集合,将会转换为JSON格式响应
  • 说明:@RestController=@Controller+@ResponseBody
  • 统一响应结果Result
    • public class Result{
          //响应码,1成功,0失败
          private integer code;
          //提示信息
          private String msg;
          //返回的数据
          private Object data;
          //……
      }
    • {
          "code":"1",
          "msg":"操作成功",
          "data":...
      }
    • @RequsetMapping("/...")
      public Result ...(){
          ...
          return Result.success(...);
      }

      简化版

分层解耦

三层架构

  • 数据访问,逻辑处理,接受请求、响应数据
  • Controller:控制层,接受前端发送的请求,对请求进行处理并响应数据
  • service:业务逻辑层,处理具体的业务逻辑
    • 需要创建接口
  • dao:数据访问层(Data Access Object)(持久层),负责数据的访问操作
    • 需要创建接口

分层解耦

  • 将new对象换成从容器中拿到对象
  • 控制反转Inversion Of Control,IOC
    • 对象的创建控制权由程序自身转移到外部(容器)
  • 依赖注入Dependency Injection,DI
    • 容器为应用程序提供运行时所依赖的资源
  • Bean对象
    • IOC容器中创建、管理的对象,称之为bean

IOC&DI入门

  • 1.将Service及Dao层的实现类交给IOC容器管理
    • 加上@Component即可
  • 2.为Controller及Service注入运行时依赖的对象
    • 在变量前加入@Autowired
  • 3.运行测试

IOC详解

  • bean名字默认是类名首字母小写,也可以通过value指定名字
  • 在SpringBoot集成web开发时,声明控制器bean只能使用@Controller

Bean组件扫描

  • 解决方法
    • 1.手动指定@ComponentScan(不推荐)
    • 2.将代码放在启动类所在包及其子包下

DI详解

  • @Autowired注解默认是按照类型进行,如果存在多个相同类型的bean则会报错
  • 解决方法
    • 1.@Primary,指定优先级
    • 2.@Autowired+@Qualifier("bean的名字")
    • 3.@Resource(name="bean的名字"):替换@Autowired
  • @Autowired是spring提供,@Resource是jdk提供
  • 25
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Java Web上开发一个网上蛋糕商城的前台,主要分为用户界面设计、交互功能实现和数据展示等几个关键部分。以下是前台开发的一般实验思路: 1. **需求分析**: - 确定商城的主要功能,如商品浏览、搜索、购物车管理、订单流程(添加、确认、支付)和用户登录注册等。 - 明确界面风格,如响应式设计以适应不同设备。 2. **界面设计**: - 使用HTML/CSS构建静态页面布局,包括导航栏、轮播图、商品列表页、详情页和用户个人中心等。 - 利用Bootstrap或其他前端框架进行快速样式搭建。 3. **JavaScript或jQuery**: - 实现动态效果,如图片轮播、下拉菜单、按钮点击事件处理等。 - 利用AJAX异步加载数据,提升用户体验,避免页面刷新。 4. **UI组件化**: - 使用前端框架提供的组件库,比如React、Vue或Angular,提高开发效率并保证代码复用。 5. **用户认证与权限管理**: - 使用session或JWT进行用户身份验证,确保用户只能访问自己的数据。 - 设计用户权限系统,如管理员能查看和修改所有数据,普通用户只能查看和购买。 6. **数据绑定和模型驱动**: - 如果使用MVVM架构,如Angular,利用双向数据绑定连接视图和模型。 7. **前端状态管理**: - 使用Redux或Vuex管理应用状态,保证状态的一致性和可预测性。 8. **SEO优化**: - 为搜索引擎优化考虑,确保页面元素有正确的元信息和结构。 9. **性能优化**: - 压缩和合并CSS/JS文件,减少HTTP请求。 - 利用CDN加速资源加载。 10. **测试**: - 编写单元测试和集成测试,确保各个功能正常工作。 - 进行用户验收测试,收集用户反馈。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值