mirror of
https://gitee.com/many2many/java-web.git
synced 2025-01-11 22:50:54 +08:00
140 lines
4.5 KiB
Markdown
140 lines
4.5 KiB
Markdown
|
||
# 作业1
|
||
|
||
## 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>
|
||
```
|
||
|
||
# 作业2
|
||
|
||
## 什么是MVC设计模式?请简要说明其主要组成部分及其作用。
|
||
MVC(Model-View-Controller)设计模式是一种软件架构模式,用于将应用程序的逻辑、数据和用户界面分离,以提高代码的可维护性和可扩展性。
|
||
- 模型(Model):负责管理应用程序的数据和业务逻辑。
|
||
- 视图(View):负责显示数据,即用户界面。
|
||
- 控制器(Controller):负责处理用户输入,协调模型和视图之间的交互。
|
||
|
||
## 控制器类
|
||
|
||
现有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) {
|
||
// 创建新用户的逻辑
|
||
}
|
||
}
|
||
```
|
||
|
||
# 作业 3
|
||
|
||
1、简要描述软件架构设计中的典型层次架构,并解释每一层的主要职责。
|
||
|
||
典型的层次架构包括四个主要层次:表现层、业务层、持久层和数据库层。这种分层架构有助于清晰地划分职责,提高代码的可读性和可维护性。
|
||
表现层: 是应用程序的前端部分,包含展示、处理HTTP请求等功能。
|
||
业务层: 包含所有的业务逻辑。
|
||
持久层:包含所有的数据库存储逻辑。
|
||
数据库层:包含所有类型的数据库。
|
||
|
||
2、简要描述JDBC
|
||
|
||
JDBC (Java Database Connectivity) 是Java中用于连接和操作关系型数据库的标准API。
|
||
JDBC允许Java应用程序与各种关系型数据库进行交互,包括执行SQL语句、处理查询结果等。
|
||
JDBC提供了一个统一的接口,使得开发者可以使用相同的API来操作不同的数
|
||
|
||
# 作业4
|
||
|
||
## 什么是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);
|
||
}
|
||
```
|
||
|