0


springboot期末复习

一、填空题

  1. Spring Boot Maven 项目的依赖配置文件是:pom.xml,默认的视图模板文件夹 是:resources/templates。
  2. Spring Boot 项目中的@Controller 注解完成的功能是:实现 MVC 控制器, @GetMapping 注解的功能是:响应 GET 请求。
  3. SSE 的含义是服务器发送事件, WebSocket 是一种在单个 TCP 连接上进行全 双工通讯的技术。
  4. REST 的含义是:表现出状态转移。
  5. @CrossOrigin 注解的作用是:跨域配置。
  6. Spring Boot 项目的打包命令是:mvn package,两种打包发布方式分别是: jar、war。
  7. Spring Boot 项 目 中 若 采集表单 参数,应 在 响应函数 的 参数中使用 @RequestParam 注解,若采集客户端发送的 JSON 数据,应采用@RequestBody 注解.
  8. 多对一实体映射对应的注解是:@ManyToOne,一对一实体映射对应的注解 是:@OneToOne。
  9. 互联网 IP 地址的作用是用于区分联网的计算机设备,端口号的作用是用于标识计算机的应用程序, Http 服务器的默认端口号是: 80, Spring Boot 应用程序的 默认端口号是:8080。如果要配置 Spring Boot 应用程序的端口号为 9000, 则应 修改应用程序配置文件 application.properties,添加配置语句: server.port=9000。
  10. Spring Boot MVC 应用程序默认的静态页面文件夹是: resources/public 或 resources/static, Spring Boot Maven 项目的依赖配置文件是: pom.xml。
  11. 在设计RESTful API时, 一般将DELETE请求用于删除资源, GET请求用于获取资源,PATCH请求用于修改资源。

二、单项选择题

  1. Spring MVC程序中若某Thymeleaf视图模板文件中需要引入user属性,在下面渲染user属性值的正确写法是:( ) A) B) C) D)
  2. 控制器类的方法若要采集查询参数,则应使用如下的哪个注解?( A) @RequestParamB) @RequesBodyC) @ResponseBodyD) @PathVariable
  3. 以下Thymeleaf依赖配置中,正确的是:( ) A) <dependency> <groupId>org.springframework.boot</groupId> <artifactid>spring-boot-thymeleaf</artifactId></dependency>B)****<dependency>** <groupId>org.springframework.boot</groupId>**** <artifactid>spring-boot-starter-thymeleaf</artifactId>****</dependency>**C) <dependencies> <groupId>org.springframework.boot</groupId> <artifactid>spring-boot-thymeleaf</artifactId></dependencies>D)<dependencies> <groupId>org.springframework.boot</groupId> <artifactid>spring-boot-starter-thymeleaf</artifactId></dependencies>
  4. 控制器的类方法中若要采集前端提交的路由参数,应采用如下的哪个注解?( ) **A) @PathVariable ** B)@RequestParam``````C) @RequestBody D)@ResponseBody
  5. 若某RESTful API的服务localhost/students是删除学生信息的操作,则应使用哪个动词HTTP动词进行设计?( ) A) GETB) POSTC) PUTD) DELETE
  6. 控制器类的方法若要采集前端输入的路径参数,则该方法的注解写法正确的是( ) **A) @GetMapping("/person/{name}/{age}")**B) @GetMapping("/person/{:name}/{:age}")C) @GetMapping("/person/[name]/[age]")D) @GetMapping("/person/(name)/(age)")
  7. 下列用于标注MyBatis接口的注解是( ) **A) @Mapper;**B) @Entity;C) @Table;D) @Configuratio

三、程序阅读题

  1. 本例Spring MVC程序主要功能是使用Thymeleaf模板引擎显示学生成绩表。该程序需要在文件Student.java中定义一个Student模型, 在HomeController.java中定义控制器,在index.html中使用Thymeleaf模板引擎渲染学生成绩信息。请补全各自文件中的代码。 模型文件Student.javapublic class Student { private String sid; //学号 private String name; //姓名 private float score; //成绩 public Student(String sid, String name, float score) { this.sid = sid; this.name = name; this.score = score; } public String getSid() { return sid; } public void setSid(String sid) { this.sid = sid; } public String getName() { return name; } public void setName(String name) { this.name = name; } public float getScore() { return score; } public void setScore(float score) { this.score = score; }控制器文件HomeController.javaimport org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import java.util.ArrayList;import java.util.List;**@**Controllerpublic class HomeController { private List<Student> list; public HomeController() { this.list=new ArrayList<Student>(); this.list.add(new Student("18001","Mr. wang", 90.0f)); this.list.add(new Student("18002","Mrs. Zhang", 80.0f)); this.list.add(new Student("18003","Mr. Liang", 70.0f)); this.list.add(new Student("18004","Mr. Kang", 85.0f));} @GetMapping("/") public String index(Model model){ model.addAttribute("caption", "《Java 高级程序设计》成绩单"); model.addAttribute("students", list); return index; } }视图模板文件index.html<!DOCTYPE html><html lang="en" xmlns:th="http://www.w3.org/1999/xhtml"><head> <meta charset="UTF-8"> <title>学生成绩单</title> <style> caption{ font-size:20px; } </style></head><body>
    <caption **th:text="${caption}"**></caption> <td **th:text="${student.sid}"**>学号 <td **th:text="${student.name}"**>姓名 <td **th:text="${student.score}"**>成绩
    学号 姓名 成绩
    </body></html>
  2. 本例程序使用Spring Data JPA访问MySQL数据库,实现图书管理系统的RESTful API。该程序需要编写图书模型文件Book.java, 图书仓储接口文件BookRepository.java, 控制器文件BookController.java。 MySQL数据库表设计如下:drop database if exists books_db;create database books_db default charset=utf8;use books_db;create table books(id integer auto_increment primary key, isbn varchar(15) not null unique, //书号,非空,不能重复 name varchar(50) not null, //书名,非空 press varchar(50) not null //出版社, 非空 ); // 表名为books //Book.java文件如下,请补全空格处的代码。package cn.anntek;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.Table;@*Entity@Table(name="books")public class Book {*@Id@GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; @*Column (nullable = false, unique = true) private String isbn;//书号 @Column(nullable = false) private String name;//书名 @Column(nullable = false) private String press;//出版社 public Book() { } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getIsbn() { return isbn; } public void setIsbn(String isbn) { this.isbn = isbn; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPress() { return press; } public void setPress(String press) { this.press = press; }}//BookRepository.java文件如下,请补全空格处的代码。package cn.anntek;import org.springframework.data.jpa.repository.JpaRepository;public interface BookRepository extends JpaRepository<**Book**, Integer> {}//BookController.java文件如下,请补全空格处的代码。package cn.anntek;import jdk.nashorn.internal.runtime.options.Option;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.DeleteMapping;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.PutMapping;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RestController;import java.util.ArrayList;import java.util.List;import java.util.Optional;*@*RestControllerpublic class BookController { @Autowired private BookRepositorybookRepository; // 获取书籍列表 @GetMapping("/books") public List<Book> getBooks(){ return bookRepository.findAll();}// 增加书籍*@*PostMapping("/books") public Book saveBook(*@RequestBody Book book){ System.out.println(book.getName()); bookRepository.save(book); return book;}// 修改书籍**@**PutMapping ("/books/{id}")//修改 public Book updateBook(@RequestBody Book book, **@*PathVariable Integer id){ Optional<Book> op=bookRepository.findById(id); if(op.isPresent()){ Book book_fd=op.get(); book_fd.setIsbn(book.getIsbn()); book_fd.setName(book.getName()); book_fd.setPress(book.getPress()); bookRepository.save(book_fd); return book_fd; }else{ return null; } }*@*DeleteMapping("/books/{id}")//删除书籍 public void deleteBook(*@**PathVariable Integer id){ bookRepository.deleteById(id); }}

四、简答题

  1. MVC的含义是什么?请简述Spring MVC Web开发方式的基本过程和方法。 MVC 的含义是模型、视图与控制器。MVC 程序的主要特点是控制器响应浏览器发送的请求, 将模型数据渲染到视图中并输出到浏览器。创建 Spring MVC 程序时,依赖项需要勾选 Spring Web 和是视图渲染引擎(常用 Thymeleaf),然后编写模型文件,控制器文件,以及视图文件。在控制器文件中定义方法,返回视图模板文件名或重定向路由。
  2. 请简述Spring Boot 相比于传统的 SSM 框架主要优点。采用自动化配置,解决了 SSM(spring、spring mvc 、mybatis)框架配置复杂度高的问题; ²可以使用其他持久层框架,比如 JPA 以及 MongoDB 等数据库框架; ²可以开发反应式 Web 程序(Webflux);
  3. 请简述Websocket的特性。WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。
  4. 请简述Spring Boot应用程序如何实现安全性?。 为了实现 Spring Boot 的安全性,使用 spring-boot-starter-security 依赖项,并且必须添加安全配置。它只需要很少的代码。配置类将必须扩展 WebSecurityConfigurerAdapter 并覆盖其方法。
  5. 请简述基于会话信息(cookie 和session)的认证技术的原理和过程。5.1、用户向服务器发送用户名和密码 5.2、服务器验证通过后,在当前对话(session)里面保存相关数据,比如用户角色、登录时间等等。 5.3、服务器向用户返回一个session_id,写入用户的Cookie。 5.4、用户随后的每一次请求,都会通过Cookie,将session_id 传回服务器。 5.5、服务器收到session_id,找到前期保存的数据,由此得知用户的身份。
  6. 请简述基于JWT(json web token)的认证技术的原理和过程。 5.1、用户向服务器发送用户名和密码 5.2、服务器验证通过后,回发一个 JWT 给合法用户。 5.3、客户端每次访问服务都要一起发送 JWT 给服务器。 5.4、用户随后的每一次请求,都会通过Cookie,将session_id 传回服务器。 5.5、服务器完全只靠这个 JWT 对象认定用户身份。为了防止用户篡改数据,服务器在生成这个对象的时候,会加上签名。
  7. 请简述Swagger框架的主要作用是什么? Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful API,是一个非常流行的 API 文档生成工具。Swagger 可以自动生成完善的 RESTful API 文档,并根据后台的代码同步更新。Swagger 也提供了完善的测试功能
  8. 请简述如何实现 Spring Boot 应用程序的安全性?为了实现 Spring Boot 的安全性,我们使用 spring-boot-starter-security 依赖项,并且必须添加安全配置。
标签: java spring boot 后端

本文转载自: https://blog.csdn.net/m0_65279769/article/details/131299379
版权归原作者 m0_65279769 所有, 如有侵权,请联系我们删除。

“springboot期末复习”的评论:

还没有评论