2024-12-11 12:15:28 +08:00
|
|
|
|
|
2024-12-11 14:07:27 +08:00
|
|
|
|
# 作业1 9.25 9.26
|
2024-12-11 12:15:28 +08:00
|
|
|
|
|
|
|
|
|
## HTTP请求包的结构包括哪些部分?请简介每部分所包含内容。
|
|
|
|
|
|
|
|
|
|
一个完整的HTTP请求包通常包含三部分:
|
|
|
|
|
- 请求行:包含请求方法Method、请求的URL和HTTP版本。
|
|
|
|
|
- 请求头:包含一系列键值对,提供了关于请求的额外信息,如客户端类型、接受的内容类型等。
|
|
|
|
|
- 请求体:请求体并不是所有HTTP请求都有的部分;主要用于包含要发送给服务器的数据,如表单数据、上传的文件内容等
|
|
|
|
|
|
|
|
|
|
## 实现一个计数器页面
|
|
|
|
|
使用html和js实现一个计数器,要求:
|
|
|
|
|
- 计数器的初始值为0,每次点击页面上的按钮时,计数器的值增加1。
|
|
|
|
|
- 在页面上显示计数器的值。
|
|
|
|
|
- 使用JavaScript实现按钮点击事件监听器。
|
|
|
|
|
|
|
|
|
|
```html
|
|
|
|
|
<html>
|
|
|
|
|
<head>
|
|
|
|
|
<meta charset="UTF-8">
|
|
|
|
|
<title>计数器</title>
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
<h1>计数器: <span id="counter"> 0 </span></h1>
|
|
|
|
|
<button id="button">增加</button>
|
|
|
|
|
|
|
|
|
|
<script>
|
|
|
|
|
let number = 0;
|
|
|
|
|
const counter = document.getElementById('counter');
|
|
|
|
|
const button = document.getElementById('button');
|
|
|
|
|
|
|
|
|
|
button.addEventListener('click', function() {
|
|
|
|
|
number++;
|
|
|
|
|
counter.innerText = number;
|
|
|
|
|
});
|
|
|
|
|
</script>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|
|
|
|
|
```
|
|
|
|
|
|
2024-12-11 14:07:27 +08:00
|
|
|
|
# 作业2 11.13 11.14
|
2024-12-11 12:15:28 +08:00
|
|
|
|
|
|
|
|
|
## 什么是MVC设计模式?请简要说明其主要组成部分及其作用。
|
|
|
|
|
MVC(Model-View-Controller)设计模式是一种软件架构模式,用于将应用程序的逻辑、数据和用户界面分离,以提高代码的可维护性和可扩展性。
|
2024-12-11 12:21:39 +08:00
|
|
|
|
- 模型(Model):负责管理应用程序的数据和业务逻辑。
|
|
|
|
|
- 视图(View):负责显示数据,即用户界面。
|
|
|
|
|
- 控制器(Controller):负责处理用户输入,协调模型和视图之间的交互。
|
2024-12-11 12:15:28 +08:00
|
|
|
|
|
|
|
|
|
## 控制器类
|
|
|
|
|
|
|
|
|
|
现有RESTFul接口需求如下:
|
|
|
|
|
|
|
|
|
|
- 获取指定用户的信息: GET /api/users/{id}
|
|
|
|
|
- 新建用户: POST /api/users
|
|
|
|
|
|
|
|
|
|
完成对应的控制器类UserController.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
// 注解Restcontroller表明这个类是控制器类
|
|
|
|
|
@RestController
|
|
|
|
|
// 注解RequestMapping可设置父路径
|
|
|
|
|
@RequestMapping("/api/users")
|
|
|
|
|
public class UserController {
|
|
|
|
|
// GetMapping注解表示此方法对应的是Get请求. {id}表示从路径中获取用户id
|
|
|
|
|
@GetMapping("{id}")
|
|
|
|
|
public User getUser(@PathVariable Long id) {
|
|
|
|
|
// 根据用户ID获取用户信息的逻辑
|
|
|
|
|
}
|
|
|
|
|
//@PutMapping 注解表示对应Post请求
|
|
|
|
|
@PostMapping
|
|
|
|
|
public User create( @RequestBody User user) {
|
|
|
|
|
// 创建新用户的逻辑
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
2024-12-11 14:07:27 +08:00
|
|
|
|
# 作业3 11.27 11.28
|
2024-12-11 12:15:28 +08:00
|
|
|
|
|
|
|
|
|
## 什么是ORM?ORM框架的主要目的是什么?
|
|
|
|
|
ORM (对象关系映射,Object-Relational Mapping) 是一种编程技术,用于将对象模型映射到关系型数据库模型。
|
|
|
|
|
ORM框架的主要目的是简化数据库操作,提高开发效率。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 实现JPA实体类User
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
// 使用注解Entity声明User类是一个实体类
|
|
|
|
|
@Entity
|
|
|
|
|
public class User{
|
|
|
|
|
// id是主键,需要添加注解id
|
|
|
|
|
@id
|
|
|
|
|
// 主键自增
|
|
|
|
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
|
|
|
|
Long id;
|
|
|
|
|
|
|
|
|
|
//用户名,在数据库表中对应的字段名user_name,需要使用注解Column
|
|
|
|
|
@Column(name = "user_name")
|
|
|
|
|
String name;
|
|
|
|
|
|
|
|
|
|
// 密码
|
|
|
|
|
String password;
|
|
|
|
|
|
|
|
|
|
// 年龄
|
|
|
|
|
Integer age;
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 实现实体类User的数据库接口UserRepository
|
|
|
|
|
接口需求:
|
|
|
|
|
- 提供根据用户名查找用户的接口。
|
|
|
|
|
- 提供根据查找年龄大于指定年龄的用户的接口。
|
|
|
|
|
|
|
|
|
|
```java
|
|
|
|
|
|
|
|
|
|
public interface UserRepository extends JpaRepository<User, Long> {
|
|
|
|
|
// 根据用户名查找用户
|
|
|
|
|
User findByName(String name);
|
|
|
|
|
// 查找大于指定年龄的用户
|
|
|
|
|
List<User> findByAgeGreaterThan(Integer age);
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|