7/8 复盘

后端数据传输?

后端代码的耦合:打点调用、方法调用、接口、继承。

Dao、Service、servlet(controller)各层的作用?

Dao负责与数据库交互,执行SQL语句,例如简单的增删改查等等。(要创建对应的接口和实现类)

Service层通常会调用Dao层提供的方法来获取数据或更新数据,执行特定的业务逻辑,并将处理结果返回。(要创建对应的接口和实现类)

Servlet接收前端请求、调用Service层(的方法)执行业务逻辑,并返回处理结果给前端。

前端传递数据?

前端 :1. Ajax技术;2. RESTful API;3. WebSocket技术(不太清楚网上查的)

最原始的方式——HTML的表单。

表单数据将以POST请求的方式发送到指定的URL。(在HTML中使用form元素和input元素来创建表单,用户填写完数据后,通过表单的submit提交按钮来发送数据。method:Post)

(如果使用 method="get",当用户点击提交按钮时,表单数据将会以 GET 请求的方式被发送到指定的 URL。在这种情况下,表单数据会被附加在URL的查询参数中,以键值对的形式出现。)

form表单action?

发送到的指定url。

这里是Servlet里的doPost方法。如果执行add操作,把前端的数据存到后端实体类(比如之前pojo包里写的user类,封装的属性有username、password、realname、userType)的属性里面。

Servlet处理Post请求?

当使用 Servlet 来处理 POST 请求时,一般会在 `doPost()` 方法中编写处理 POST 请求的逻辑。(从Post请求获取表单数据request.getParameter()、处理表单数据(比如数据校验、存储到数据库等)、生成响应、设置响应内容类型和编码)

Servlet?

调用Service层(的方法)执行业务逻辑,并返回处理结果给前端。

下图UserServlet在处理Post请求,调用Service的add方法。

Service层 扩展:然后这里是Service接口的抽象add方法

到Service具体类里实现add()

然后到Dao里,可以创建Use类型对象vo,(前端的数据通过表单传到vo,)在Dao里实现具体操作(sql增删改查)、(vo的数据就可以传到数据库里。)

为什么Service和Dao都要有对应的接口?

使用接口是为了调用与实现解耦。一种抽象、可以暂时不用考虑它的具体实现。(如果一个Dao、或Service明确只有一种实现,)Service和Dao对应的接口应该不是必须要写的。

抽象方法能调用吗?

直接通过接口名和方法名来调用抽象方法是不合法的,在Java中直接调用接口的抽象方法必须通过实现接口的类来实现。

当定义一个接口时,只能包含方法的声明,而没有方法的具体实现。接口中的方法都是抽象方法,不包含方法体。在接口中定义了一个方法后,需要在实现接口的类中提供具体的实现逻辑。

调用方法时,需要通过实例化一个`MyClass`对象来调用抽象方法`myMethod()`,而不是直接通过接口名调用。

拿上图举例子:红框部分是一个实例化的对象,userService是这个对象的名字;蓝框部分是创建对象,new一个对象:其类型是 `UserService`。而赋值给 `userService` 的实例是 `UserServiceImpl` 类的一个对象。(多态)1.如果子类中重写了该方法,那么父类类型的引用将会调用子类中的这个方法。2.父类类型实例可以调用父类中定义的所有属性和方法。

那么这个userService就可以调用`UserServiceImpl` 类的方法。

Controller和Servlet?

servlet

Servlet负责接收HTTP请求、处理请求参数、生成响应内容并返回给客户端。

Servlet是遵循Java Servlet规范的Java类,通过继承Servlet接口或Servlet的子类来实现对HTTP请求的处理。可以处理不同类型的HTTP请求(GET、POST等)

controller

  • 处理请求:Controller 层接收来自用户的 HTTP 请求(例如 GET、POST、PUT、DELETE)。

  • 执行业务逻辑:Controller 负责处理业务逻辑,例如验证输入、处理数据、与数据库交互等。

  • 返回视图:根据业务逻辑的结果,Controller 选择要返回给用户的视图。视图可以是 HTML、JSON 或其他格式。

相关推荐

  1. 设计模式

    2024-07-11 23:36:03       51 阅读
  2. 面试——10

    2024-07-11 23:36:03       52 阅读
  3. 面试——9

    2024-07-11 23:36:03       56 阅读
  4. 感情--

    2024-07-11 23:36:03       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 23:36:03       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 23:36:03       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 23:36:03       57 阅读
  4. Python语言-面向对象

    2024-07-11 23:36:03       68 阅读

热门阅读

  1. 华为OD机考题(HJ108 求最小公倍数)

    2024-07-11 23:36:03       18 阅读
  2. 探究kubernetes 探针参数periodSeconds和timeoutSeconds

    2024-07-11 23:36:03       24 阅读
  3. 《大语言模型》赵鑫

    2024-07-11 23:36:03       20 阅读
  4. C++ 例外处理 try throw catch

    2024-07-11 23:36:03       24 阅读
  5. ts和js的关系

    2024-07-11 23:36:03       25 阅读
  6. 单商户和多商户的区别

    2024-07-11 23:36:03       22 阅读
  7. 对比多种方法执行命令行命令

    2024-07-11 23:36:03       21 阅读
  8. 白骑士的C++教学基础篇 1.5 数据结构

    2024-07-11 23:36:03       21 阅读
  9. 百日筑基第十七天-消息队列入门

    2024-07-11 23:36:03       22 阅读
  10. Mojo 编程语言:AI开发者的新宠儿

    2024-07-11 23:36:03       23 阅读
  11. C#如何从中级进阶到高级开发

    2024-07-11 23:36:03       26 阅读
  12. 【Layui】Layui表格动态生成列

    2024-07-11 23:36:03       19 阅读