From 84a97a60e4ec91d788ed6f867ee21b74a73c11ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=94=A1=E7=8E=AE=E9=93=AD?= <2373854303@qq.com> Date: Mon, 6 Jan 2025 10:29:48 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E6=8F=90=E4=BA=A4106=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\347\273\203\344\271\240(\345\233\233).md" | 943 ++++ .../MyBlog/.idea/.gitignore" | 8 + .../MyBlog/.idea/compiler.xml" | 16 + .../MyBlog/.idea/dataSources.xml" | 12 + .../MyBlog/.idea/encodings.xml" | 7 + .../MyBlog/.idea/jarRepositories.xml" | 20 + .../MyBlog/.idea/misc.xml" | 17 + .../MyBlog/.idea/sqldialects.xml" | 6 + .../MyBlog/pom.xml" | 103 + .../src/main/java/com/config/JdbcConfig.java" | 20 + .../main/java/com/config/MyBatisConfig.java" | 19 + .../main/java/com/config/SpringConfig.java" | 11 + .../java/com/config/SpringMvcConfig.java" | 17 + .../src/main/java/com/config/WebConfig.java" | 20 + .../java/com/controller/BlogController.java" | 55 + .../src/main/java/com/entity/Blog.java" | 15 + .../src/main/java/com/mapper/BlogMapper.java" | 33 + .../main/java/com/service/BlogService.java" | 25 + .../com/service/impl/BlogServiceImpl.java" | 53 + .../MyBlog/src/main/webapp/css/styles.css" | 128 + .../MyBlog/src/main/webapp/index.html" | 62 + .../MyBlog/src/main/webapp/js/axios.min.js" | 2 + .../MyBlog/src/main/webapp/js/book.js" | 188 + .../MyBlog/src/main/webapp/js/data.js" | 182 + .../classes/com/config/JdbcConfig.class" | Bin 0 -> 890 bytes .../classes/com/config/MyBatisConfig.class" | Bin 0 -> 889 bytes .../classes/com/config/SpringConfig.class" | Bin 0 -> 591 bytes .../classes/com/config/SpringMvcConfig.class" | Bin 0 -> 1284 bytes .../classes/com/config/WebConfig.class" | Bin 0 -> 830 bytes .../com/controller/BlogController.class" | Bin 0 -> 3615 bytes .../target/classes/com/entity/Blog.class" | Bin 0 -> 2949 bytes .../classes/com/mapper/BlogMapper.class" | Bin 0 -> 1261 bytes .../classes/com/service/BlogService.class" | Bin 0 -> 510 bytes .../com/service/impl/BlogServiceImpl.class" | Bin 0 -> 2823 bytes .../compile/default-compile/createdFiles.lst" | 10 + .../compile/default-compile/inputFiles.lst" | 10 + .../target/tomcat/conf/logging.properties" | 64 + .../target/tomcat/conf/tomcat-users.xml" | 26 + .../MyBlog/target/tomcat/conf/web.xml" | 4283 +++++++++++++++++ .../target/tomcat/logs/access_log.2025-01-06" | 103 + 40 files changed, 6458 insertions(+) create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233).md" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/.gitignore" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/compiler.xml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/dataSources.xml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/encodings.xml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/jarRepositories.xml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/misc.xml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/sqldialects.xml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/pom.xml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/JdbcConfig.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/MyBatisConfig.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/SpringConfig.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/SpringMvcConfig.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/WebConfig.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/controller/BlogController.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/entity/Blog.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/mapper/BlogMapper.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/service/BlogService.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/service/impl/BlogServiceImpl.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/css/styles.css" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/index.html" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/axios.min.js" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/book.js" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/data.js" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/JdbcConfig.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/MyBatisConfig.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/SpringConfig.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/SpringMvcConfig.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/WebConfig.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/controller/BlogController.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/entity/Blog.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/mapper/BlogMapper.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/service/BlogService.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/service/impl/BlogServiceImpl.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/logging.properties" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/tomcat-users.xml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/web.xml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/logs/access_log.2025-01-06" diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233).md" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233).md" new file mode 100644 index 0000000..724c1e7 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233).md" @@ -0,0 +1,943 @@ +## 课堂笔记 + +#### **综合练习(四)(博客管理系统)** + +**一、准备sql数据** + +**二、设置好 Maven 并导入依赖项** + +**三、构建好项目结构** + +**四、编写 Blog 实体类、Blog 里的各种配置类** + +**五、编写 BlogMapper 接口、BlogService 接口、BlogServiceImpl 实现类** + +**六、编写 BlogController 类** + +**七、启动Tomcat** + +**八、修改前端请求页面** + +**九、浏览器 开始测试各个请求** + +## 课后作业 + +#### **综合练习(四)(博客管理系统)** + +#### **项目结构预览** + +![image-20250106093256468](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128919.png) + +#### 具体步骤 + +##### **一、准备sql数据** + +```sql +/* + Navicat Premium Dump SQL + + Source Server : mysql + Source Server Type : MySQL + Source Server Version : 80034 (8.0.34) + Source Host : localhost:3306 + Source Schema : demo + + Target Server Type : MySQL + Target Server Version : 80034 (8.0.34) + File Encoding : 65001 + + Date: 06/01/2025 08:15:18 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for blog +-- ---------------------------- +DROP TABLE IF EXISTS `blog`; +CREATE TABLE `blog` ( + `blogId` int NOT NULL AUTO_INCREMENT, + `blogTitle` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, + `blogAuthor` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, + `blogText` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`blogId`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of blog +-- ---------------------------- +INSERT INTO `blog` VALUES (1, '辉辉的个人博客', '刘文辉', '这是一个博客'); +INSERT INTO `blog` VALUES (2, '陈俊杰的个人博客', '陈俊杰', '这是一个博客'); + +SET FOREIGN_KEY_CHECKS = 1; +``` + +##### **二、设置好 Maven 并导入依赖项** + +**pom.xml 依赖配置文件** + +```xml + + 4.0.0 + com.jd + myBlog + war + 1.0-SNAPSHOT + + + UTF-8 + + + + + org.springframework + spring-webmvc + 5.2.25.RELEASE + + + + + org.springframework + spring-test + 5.2.25.RELEASE + + + + + org.springframework + spring-jdbc + 5.2.25.RELEASE + + + + javax.servlet + javax.servlet-api + 3.1.0 + provided + + + + com.fasterxml.jackson.core + jackson-databind + 2.9.0 + + + + + org.projectlombok + lombok + 1.18.36 + + + + org.mybatis + mybatis + 3.5.16 + + + + + com.mysql + mysql-connector-j + 8.3.0 + + + + junit + junit + 4.13.2 + test + + + + + com.alibaba + druid + 1.1.20 + + + + + + org.mybatis + mybatis-spring + 2.0.6 + + + + + + org.apache.tomcat.maven + tomcat7-maven-plugin + 2.2 + + / + 80 + utf-8 + + + + + +``` + +##### **三、构建好项目结构** + +![image-20250106093316939](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128929.png) + +##### **四、编写 Blog 实体类、config 里的各种配置类** + + **Blog 实体类** + +```java +package com.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data // 自动生成 set,get,toString 方法 +@AllArgsConstructor // 自动生成 有参构造 方法 +@NoArgsConstructor // 自动生成 无参构造 方法 +public class Blog { + private int blogId; + private String blogTitle; + private String blogAuthor; + private String blogText; +} +``` + +**JdbcConfig 配置类** + +```java +package com.config; + +import com.alibaba.druid.pool.DruidDataSource; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Component; + +import javax.sql.DataSource; + +@Component // 声明组件 +public class JdbcConfig { + @Bean // 创建一个Bean + public DataSource dataSource(){ + DruidDataSource druidDataSource = new DruidDataSource(); + druidDataSource.setDriverClassName("com.mysql.cj.jdbc.Driver"); + druidDataSource.setUrl("jdbc:mysql:///demo"); + druidDataSource.setUsername("root"); + druidDataSource.setPassword("123456"); + return druidDataSource; + } +} +``` + +**MybatisConfig 配置类** + +```java +package com.config; + +import org.mybatis.spring.SqlSessionFactoryBean; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Component; + +import javax.sql.DataSource; + +@Component // 声明组件 +@MapperScan("com.mapper") // 扫包 +public class MyBatisConfig { + @Bean // 创建一个Bean + public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){ + SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); + sqlSessionFactoryBean.setDataSource(dataSource); + return sqlSessionFactoryBean; + } +} +``` + +**SpringConfig 配置类** + +```java +package com.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; + +@Configuration // 声明为配置文件 +@ComponentScan("com.service") // 扫包 +@Import({JdbcConfig.class, MyBatisConfig.class}) // 导入类 +public class SpringConfig { +} +``` + +**SpringMvcConfig 配置类** + +```java +package com.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration // 声明为配置文件 +@ComponentScan("com.controller") // 扫包 +@EnableWebMvc // MVC 核心注解 +public class SpringMvcConfig implements WebMvcConfigurer { + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + registry.addResourceHandler("/**").addResourceLocations("/"); + } +} +``` + +**WebConfig 配置类** + +```java +package com.config; + +import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; + +public class WebConfig extends AbstractAnnotationConfigDispatcherServletInitializer { + @Override + protected Class[] getRootConfigClasses() { + return new Class[]{SpringConfig.class}; + } + + @Override + protected Class[] getServletConfigClasses() { + return new Class[]{SpringMvcConfig.class}; + } + + @Override + protected String[] getServletMappings() { + return new String[]{"/"}; + } +} +``` + +##### **五、编写 BlogMapper 接口、BlogService 接口、BlogServiceImpl 实现类** + +**BlogMapper 接口** + +```java +package com.mapper; + +import com.entity.Blog; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +@Mapper // 声明为 Mapper 配置文件 +public interface BlogMapper { + // 查询所有博客信息 + @Select("select * from blog;") + List selectAllBlogs(); + + // id 查询一个博客信息 + @Select("select * from blog where blogId = #{id};") + Blog selectOneBlogById(int id); + + // title 查询博客信息 + @Select("select * from blog where blogTitle like '%${title}%';") + List selectOneBlogByTitle(String title); + + // id 删除一个博客信息 + @Delete("delete from blog where blogId = #{id};") + int deleteOneBlog(int id); + + // 新增一个博客信息 + @Insert("insert into blog (blogTitle, blogAuthor, blogText) values (#{blogTitle},#{blogAuthor},#{blogText});") + int insertOneBlog(Blog blog); + + // 修改一个博客信息 + @Update("update blog set blogTitle= #{blogTitle},blogAuthor= #{blogAuthor}, blogText= #{blogText} where blogId = #{blogId};") + int updateOneBlog(Blog blog); +} +``` + +**BlogService 接口** + +```java +package com.service; + +import com.entity.Blog; + +import java.util.List; + +public interface BlogService { + // 查询所有博客信息 + List selectAllBlogs(); + + // id 查询一个博客信息 + Blog selectOneBlogById(int id); + + // title 查询博客信息 + List selectOneBlogByTitle(String title); + + // id 删除一个博客信息 + int deleteOneBlog(int id); + + // 新增一个博客信息 + int insertOneBlog(Blog blog); + + // 修改一个博客信息 + int updateOneBlog(Blog blog); +} +``` + +**BlogServiceImpl 实现类** + +```java +package com.service.impl; + +import com.entity.Blog; +import com.mapper.BlogMapper; +import com.service.BlogService; +import lombok.Data; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Data // 自动生成 set,get,toString 方法 +@Service // 声明为 Service 配置文件 +public class BlogServiceImpl implements BlogService { + @Autowired // 自动装配 + private BlogMapper blogMapper; // 注入接口 + + // 查询所有博客信息 + @Override + public List selectAllBlogs() { + return blogMapper.selectAllBlogs(); + } + + // id 查询一个博客信息 + @Override + public Blog selectOneBlogById(int id) { + return blogMapper.selectOneBlogById(id); + } + + // title 查询博客信息 + @Override + public List selectOneBlogByTitle(String title) { + return blogMapper.selectOneBlogByTitle(title); + } + + // id 删除一个博客信息 + @Override + public int deleteOneBlog(int id) { + return blogMapper.deleteOneBlog(id); + } + + // 新增一个博客信息 + @Override + public int insertOneBlog(Blog blog) { + return blogMapper.insertOneBlog(blog); + } + + // 修改一个博客信息 + @Override + public int updateOneBlog(Blog blog) { + return blogMapper.updateOneBlog(blog); + } +} +``` + +##### **六、编写 BlogController 类** + +**BlogController 类** + +```java +package com.controller; + +import com.entity.Blog; +import com.service.BlogService; +import lombok.Data; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@Data // 自动生成 set,get,toString 方法 +@RestController // 声明为 RestController 配置文件 +@CrossOrigin // 跨域运行 +@RequestMapping("/blog") // 请求地址 + +public class BlogController { + @Autowired // 自动装配 + private BlogService blogService; // 注入接口 + + // 查询所有博客信息 + @GetMapping + public List selectAllBlogs() { + return blogService.selectAllBlogs(); + } + + // id 查询一个博客信息 + @GetMapping("/{id}") + public Blog selectOneBlogById(@PathVariable String id) { + return blogService.selectOneBlogById(Integer.parseInt(id)); + } + + // title 查询博客信息 + @GetMapping(params = "title") + public List selectOneBlogByTitle(String title) { + return blogService.selectOneBlogByTitle(title); + } + + // id 删除一个博客信息 + @DeleteMapping("/{id}") + public int deleteOneBlog(@PathVariable String id) { + return blogService.deleteOneBlog(Integer.parseInt(id)); + } + + // 新增一个博客信息 + @PostMapping + public int insertOneBlog(@RequestBody Blog blog) { + return blogService.insertOneBlog(blog); + } + + // 修改一个博客信息 + @PutMapping + public int updateOneBlog(@RequestBody Blog blog) { + return blogService.updateOneBlog(blog); + } +} +``` + +##### **七、启动Tomcat** + +![image-20250106093354463](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128936.png) + +##### **八、修改前端请求页面** + +**index.html** + +```html + + + + + + + 学生管理系统 + + + + +
+ +

博客管理系统

+
+ + + + +
+ + + + + + + + + + + + + + + + +
ID标题作者文本操作
+ +
+ + + +``` + +**styles.css** + +```css +body { + font-family: Arial, sans-serif; + background-color: #e0f7fa; /* 浅蓝色背景 */ + margin: 0; + padding: 20px; +} + +.container { + max-width: 800px; + margin: 0 auto; + background: #ffffff; /* 保持白色背景,或者可以更改为更浅的蓝色 */ + padding: 20px; + box-shadow: 0 0 10px rgba(0, 123, 255, 0.1); /* 蓝色阴影 */ +} + +h1 { + text-align: center; + color: #007bff; /* 深蓝色标题 */ +} + +#search-box { + padding: 10px; + width: calc(100% - 120px); + border: 1px solid #cce5ff; /* 浅蓝色边框 */ + border-radius: 4px; + height: 18px; +} + +#add-book-btn { + padding: 10px 20px; + background-color: #007bff; /* 深蓝色按钮 */ + color: white; + border: none; + height: 40px; + border-radius: 4px; + cursor: pointer; +} + +#add-book-btn:hover { + background-color: #0056b3; /* 深一些的蓝色按钮悬停效果 */ +} + +table { + width: 100%; + border-collapse: collapse; + margin-bottom: 20px; +} + +th, td { + padding: 10px; + border: 1px solid #cce5ff; /* 浅蓝色边框 */ + text-align: center; +} + +th { + background-color: #d1ecf1; /* 浅蓝色表头背景 */ +} +tr:hover { + background-color: #e0f7fa; /* 浅蓝色高亮背景,与页面背景相近但稍浅 */ +} +.modal { + display: none; + position: fixed; + z-index: 1; + left: 0; + top: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.4); /* 蓝色半透明背景 */ +} + +.modal-content { + background-color: #fefefe; /* 保持白色背景,或者可以更改为更浅的蓝色 */ + /* 注意:以下两行原本用于居中的代码是错误的,应该移除或更正 */ + transform: translate(60%, 40%); + /* margin应该用于.modal而不是.modal-content来实现居中 */ + padding: 35px; + border: 1px solid #cce5ff; /* 浅蓝色边框 */ + width: 40%; + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); /* 蓝色阴影 */ + /* 为了实现.modal-content的居中,您可能需要添加额外的CSS或使用JavaScript */ +} + +/* 注意:.close-btn的颜色已经在.modal-content之外定义,如果需要更改为蓝色调,可以如下修改 */ +.close-btn { + color: #007bff; /* 深蓝色关闭按钮 */ + float: right; + font-size: 28px; + font-weight: bold; + cursor: pointer; +} + +.close-btn:hover, +.close-btn:focus { + color: #0056b3; /* 深一些的蓝色关闭按钮悬停效果 */ + text-decoration: none; + cursor: pointer; +} + +form { + display: flex; + flex-direction: column; +} + +label { + margin-bottom: 8px; + color: #007bff; /* 深蓝色标签 */ +} + +input[type="text"], input[type="hidden"] { + margin-bottom: 15px; + padding: 10px; + border: 1px solid #cce5ff; /* 浅蓝色边框 */ + border-radius: 4px; +} + +button[type="submit"] { + padding: 10px 20px; + background-color: #007bff; /* 深蓝色提交按钮 */ + color: white; + border: none; + border-radius: 4px; + cursor: pointer; +} + +button[type="submit"]:hover { + background-color: #0056b3; /* 深一些的蓝色提交按钮悬停效果 */ +} +``` + +**data.js** + +```javascript +// 私有变量 +const addBtn = document.querySelector('#add-btn'); +const modal = document.querySelector('.modal'); +const closeModalBtn = document.querySelector('#close-form-btn'); +const tbody = document.querySelector('tbody'); +const form = document.querySelector('#item-form'); +const searchBox = document.querySelector("#search-box"); +const formTitle = document.querySelector("#form-title"); + +// 表单选项 +//#######################改改改################################ +let studentId = document.querySelector("#studentId"); +let studentName = document.querySelector("#studentName"); +let classname = document.querySelector("#classname"); +let classTeacher = document.querySelector("#classTeacher"); +//############################################################# + + +let data = []; +// api接口设置 +// const API_BASE_URL = "http://localhost/book"; +const API_BASE_URL = "http://localhost/blog"; // #### 改改改 #### + +// 搜索功能 +function search(name) { + axios.get(API_BASE_URL + `?title=${name}`).then(res => { + data = res.data; + renderTable(data); + }); +} + +// 渲染表格数据 # 修改item.后面的属性名称 +function renderTable(data) { + if (data.length === 0) return alert("无内容"); + tbody.innerHTML = data.map(item => { + return ` + ${item.blogId} + ${item.blogTitle} + ${item.blogAuthor} + ${item.blogText} + + + + + `; + }).join(''); + + // 添加事件监听器(事件委托) + tbody.addEventListener('click', handleTableClick); +} + +// 更新,先回显要被修改的旧数据 +function update(id) { + axios.get(API_BASE_URL + `/${id}`).then(res => { + const data = res.data; + showOrCloseModal(); + form.reset(); + + // ########以下内容要修改########## + + // formTitle.innerText = '更新图书'; + formTitle.innerText = '更新博客'; + studentId.value = data.blogId; + studentName.value = data.blogTitle; + classname.value = data.blogAuthor; + classTeacher.value = data.blogText; + + // ######以上内容要修改##### + }); +} + + +// 处理表格点击事件 +function handleTableClick(e) { + if (e.target.classList.contains('delete-btn')) { + deleteItem(e.target.closest('tr').dataset.id); + } else if (e.target.classList.contains('update-btn')) { + update(e.target.closest('tr').dataset.id); + } +} + +// 开关浮层 +function showOrCloseModal(show = true) { + if (show) { + modal.style.display = 'block'; + } else { + modal.style.display = 'none'; + } + + studentId.value = null; // 重置当前编辑的图书ID + +} + +// 获取列表 +function fetch() { + axios.get(API_BASE_URL).then(res => { + console.log(res) + data = res.data; + renderTable(data); + }); + +} + +// 根据id删除 +function deleteItem(id) { + if (!confirm("真的要删除吗?")) return; + axios.delete(API_BASE_URL + `/${id}`).then(res => { + alert("删除成功!") + fetch(); + }); +} + + +// 点击保存按钮:添加或更新图书 +function save() { + + // 获取表单项的值######改改##### + + // 非空判断 + if (!studentName.value || !classname.value || !classTeacher.value) { + alert("所有字段都必须填写!"); + return; + } + // 表单项的值,封装成一个对象 + const item = { + blogId: studentId.value || null, // 如果为空,则视为添加新图书 + blogTitle: studentName.value, + blogAuthor: classname.value, + blogText: classTeacher.value + }; + + // 根据编号判断是添加还是更新 + if (studentId.value!='') { + axios.put(API_BASE_URL, item).then(res => { + alert("修改成功") + fetch(); + showOrCloseModal(false); + }) + } else { + axios.post(API_BASE_URL, item).then(res => { + console.log(item) + alert("添加成功") + fetch(); + showOrCloseModal(false); + }) + } + +} + + +// 初始化事件监听器 +function init() { + addBtn.addEventListener('click', () => { + form.reset(); + // formTitle.innerText = '添加图书'; + formTitle.innerText = '添加博客'; + showOrCloseModal(); + }); + + closeModalBtn.addEventListener('click', () => { + studentId.value = null; //### 初始化id + showOrCloseModal(false); + }); + + form.addEventListener('submit', (e) => { + e.preventDefault(); + save(); + }); + + searchBox.addEventListener('keyup', (e) => { + if (e.key === "Enter") { + search(searchBox.value); + searchBox.value = ''; + } + }); + + // 初始加载列表 + fetch(); +} + +// 执行初始化函数 +init(); +``` + +##### **九、浏览器 开始测试各个请求** + +**查询所有博客信息请求并渲染展示** + +![image-20250106093434569](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128943.png) + +**用 name 查询博客信息请求并渲染展示** + +![image-20250106093506695](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128948.png) + +**用 id 查询博客信息请求** + +![image-20250106093532205](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128952.png) + +**用 id 删除博客信息请求** + +![image-20250106093607926](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128955.png) + +![image-20241230173052834](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/202412301730861.png) + +![image-20250106093625644](C:/Users/Administrator/AppData/Roaming/Typora/typora-user-images/image-20250106093625644.png) + +**新增博客信息请求** + +![image-20250106093647461](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128957.png) + +![image-20241231170531708](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20241231_1735635931.png) + +![image-20250106093709919](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128972.png) + +**修改博客信息请求** + +![image-20250106093815883](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128977.png) + +![image-20241231170614831](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20241231_1735635974.png) + +![image-20250106093828905](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128982.png) diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/.gitignore" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/.gitignore" new file mode 100644 index 0000000..35410ca --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/.gitignore" @@ -0,0 +1,8 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml +# 基于编辑器的 HTTP 客户端请求 +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/compiler.xml" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/compiler.xml" new file mode 100644 index 0000000..1a4bf9d --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/compiler.xml" @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/dataSources.xml" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/dataSources.xml" new file mode 100644 index 0000000..35a8929 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/dataSources.xml" @@ -0,0 +1,12 @@ + + + + + mysql.8 + true + com.mysql.cj.jdbc.Driver + jdbc:mysql://localhost:3306 + $ProjectFileDir$ + + + \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/encodings.xml" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/encodings.xml" new file mode 100644 index 0000000..aa00ffa --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/encodings.xml" @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/jarRepositories.xml" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/jarRepositories.xml" new file mode 100644 index 0000000..abb532a --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/jarRepositories.xml" @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/misc.xml" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/misc.xml" new file mode 100644 index 0000000..79a352f --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/misc.xml" @@ -0,0 +1,17 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/sqldialects.xml" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/sqldialects.xml" new file mode 100644 index 0000000..56782ca --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/sqldialects.xml" @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/pom.xml" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/pom.xml" new file mode 100644 index 0000000..b37d3ae --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/pom.xml" @@ -0,0 +1,103 @@ + + 4.0.0 + com.jd + myBlog + war + 1.0-SNAPSHOT + + + UTF-8 + + + + + org.springframework + spring-webmvc + 5.2.25.RELEASE + + + + + org.springframework + spring-test + 5.2.25.RELEASE + + + + + org.springframework + spring-jdbc + 5.2.25.RELEASE + + + + javax.servlet + javax.servlet-api + 3.1.0 + provided + + + + com.fasterxml.jackson.core + jackson-databind + 2.9.0 + + + + + org.projectlombok + lombok + 1.18.36 + + + + org.mybatis + mybatis + 3.5.16 + + + + + com.mysql + mysql-connector-j + 8.3.0 + + + + junit + junit + 4.13.2 + test + + + + + com.alibaba + druid + 1.1.20 + + + + + + org.mybatis + mybatis-spring + 2.0.6 + + + + + + org.apache.tomcat.maven + tomcat7-maven-plugin + 2.2 + + / + 80 + utf-8 + + + + + diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/JdbcConfig.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/JdbcConfig.java" new file mode 100644 index 0000000..d379cd1 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/JdbcConfig.java" @@ -0,0 +1,20 @@ +package com.config; + +import com.alibaba.druid.pool.DruidDataSource; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Component; + +import javax.sql.DataSource; + +@Component // 声明组件 +public class JdbcConfig { + @Bean // 创建一个Bean + public DataSource dataSource(){ + DruidDataSource druidDataSource = new DruidDataSource(); + druidDataSource.setDriverClassName("com.mysql.cj.jdbc.Driver"); + druidDataSource.setUrl("jdbc:mysql:///demo"); + druidDataSource.setUsername("root"); + druidDataSource.setPassword("123456"); + return druidDataSource; + } +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/MyBatisConfig.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/MyBatisConfig.java" new file mode 100644 index 0000000..81472cf --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/MyBatisConfig.java" @@ -0,0 +1,19 @@ +package com.config; + +import org.mybatis.spring.SqlSessionFactoryBean; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Component; + +import javax.sql.DataSource; + +@Component // 声明组件 +@MapperScan("com.mapper") // 扫包 +public class MyBatisConfig { + @Bean // 创建一个Bean + public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){ + SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); + sqlSessionFactoryBean.setDataSource(dataSource); + return sqlSessionFactoryBean; + } +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/SpringConfig.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/SpringConfig.java" new file mode 100644 index 0000000..3047958 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/SpringConfig.java" @@ -0,0 +1,11 @@ +package com.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; + +@Configuration // 声明为配置文件 +@ComponentScan("com.service") // 扫包 +@Import({JdbcConfig.class, MyBatisConfig.class}) // 导入类 +public class SpringConfig { +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/SpringMvcConfig.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/SpringMvcConfig.java" new file mode 100644 index 0000000..7c074af --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/SpringMvcConfig.java" @@ -0,0 +1,17 @@ +package com.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration // 声明为配置文件 +@ComponentScan("com.controller") // 扫包 +@EnableWebMvc // MVC 核心注解 +public class SpringMvcConfig implements WebMvcConfigurer { + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + registry.addResourceHandler("/**").addResourceLocations("/"); + } +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/WebConfig.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/WebConfig.java" new file mode 100644 index 0000000..8d00677 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/WebConfig.java" @@ -0,0 +1,20 @@ +package com.config; + +import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; + +public class WebConfig extends AbstractAnnotationConfigDispatcherServletInitializer { + @Override + protected Class[] getRootConfigClasses() { + return new Class[]{SpringConfig.class}; + } + + @Override + protected Class[] getServletConfigClasses() { + return new Class[]{SpringMvcConfig.class}; + } + + @Override + protected String[] getServletMappings() { + return new String[]{"/"}; + } +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/controller/BlogController.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/controller/BlogController.java" new file mode 100644 index 0000000..ca9934d --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/controller/BlogController.java" @@ -0,0 +1,55 @@ +package com.controller; + +import com.entity.Blog; +import com.service.BlogService; +import lombok.Data; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@Data // 自动生成 set,get,toString 方法 +@RestController // 声明为 RestController 配置文件 +@CrossOrigin // 跨域运行 +@RequestMapping("/blog") // 请求地址 + +public class BlogController { + @Autowired // 自动装配 + private BlogService blogService; // 注入接口 + + // 查询所有博客信息 + @GetMapping + public List selectAllBlogs() { + return blogService.selectAllBlogs(); + } + + // id 查询一个博客信息 + @GetMapping("/{id}") + public Blog selectOneBlogById(@PathVariable String id) { + return blogService.selectOneBlogById(Integer.parseInt(id)); + } + + // title 查询博客信息 + @GetMapping(params = "title") + public List selectOneBlogByTitle(String title) { + return blogService.selectOneBlogByTitle(title); + } + + // id 删除一个博客信息 + @DeleteMapping("/{id}") + public int deleteOneBlog(@PathVariable String id) { + return blogService.deleteOneBlog(Integer.parseInt(id)); + } + + // 新增一个博客信息 + @PostMapping + public int insertOneBlog(@RequestBody Blog blog) { + return blogService.insertOneBlog(blog); + } + + // 修改一个博客信息 + @PutMapping + public int updateOneBlog(@RequestBody Blog blog) { + return blogService.updateOneBlog(blog); + } +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/entity/Blog.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/entity/Blog.java" new file mode 100644 index 0000000..dcf5906 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/entity/Blog.java" @@ -0,0 +1,15 @@ +package com.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data // 自动生成 set,get,toString 方法 +@AllArgsConstructor // 自动生成 有参构造 方法 +@NoArgsConstructor // 自动生成 无参构造 方法 +public class Blog { + private int blogId; + private String blogTitle; + private String blogAuthor; + private String blogText; +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/mapper/BlogMapper.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/mapper/BlogMapper.java" new file mode 100644 index 0000000..7df0e32 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/mapper/BlogMapper.java" @@ -0,0 +1,33 @@ +package com.mapper; + +import com.entity.Blog; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +@Mapper // 声明为 Mapper 配置文件 +public interface BlogMapper { + // 查询所有博客信息 + @Select("select * from blog;") + List selectAllBlogs(); + + // id 查询一个博客信息 + @Select("select * from blog where blogId = #{id};") + Blog selectOneBlogById(int id); + + // title 查询博客信息 + @Select("select * from blog where blogTitle like '%${title}%';") + List selectOneBlogByTitle(String title); + + // id 删除一个博客信息 + @Delete("delete from blog where blogId = #{id};") + int deleteOneBlog(int id); + + // 新增一个博客信息 + @Insert("insert into blog (blogTitle, blogAuthor, blogText) values (#{blogTitle},#{blogAuthor},#{blogText});") + int insertOneBlog(Blog blog); + + // 修改一个博客信息 + @Update("update blog set blogTitle= #{blogTitle},blogAuthor= #{blogAuthor}, blogText= #{blogText} where blogId = #{blogId};") + int updateOneBlog(Blog blog); +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/service/BlogService.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/service/BlogService.java" new file mode 100644 index 0000000..28e72ec --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/service/BlogService.java" @@ -0,0 +1,25 @@ +package com.service; + +import com.entity.Blog; + +import java.util.List; + +public interface BlogService { + // 查询所有博客信息 + List selectAllBlogs(); + + // id 查询一个博客信息 + Blog selectOneBlogById(int id); + + // title 查询博客信息 + List selectOneBlogByTitle(String title); + + // id 删除一个博客信息 + int deleteOneBlog(int id); + + // 新增一个博客信息 + int insertOneBlog(Blog blog); + + // 修改一个博客信息 + int updateOneBlog(Blog blog); +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/service/impl/BlogServiceImpl.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/service/impl/BlogServiceImpl.java" new file mode 100644 index 0000000..9d140f7 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/service/impl/BlogServiceImpl.java" @@ -0,0 +1,53 @@ +package com.service.impl; + +import com.entity.Blog; +import com.mapper.BlogMapper; +import com.service.BlogService; +import lombok.Data; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Data // 自动生成 set,get,toString 方法 +@Service // 声明为 Service 配置文件 +public class BlogServiceImpl implements BlogService { + @Autowired // 自动装配 + private BlogMapper blogMapper; // 注入接口 + + // 查询所有博客信息 + @Override + public List selectAllBlogs() { + return blogMapper.selectAllBlogs(); + } + + // id 查询一个博客信息 + @Override + public Blog selectOneBlogById(int id) { + return blogMapper.selectOneBlogById(id); + } + + // title 查询博客信息 + @Override + public List selectOneBlogByTitle(String title) { + return blogMapper.selectOneBlogByTitle(title); + } + + // id 删除一个博客信息 + @Override + public int deleteOneBlog(int id) { + return blogMapper.deleteOneBlog(id); + } + + // 新增一个博客信息 + @Override + public int insertOneBlog(Blog blog) { + return blogMapper.insertOneBlog(blog); + } + + // 修改一个博客信息 + @Override + public int updateOneBlog(Blog blog) { + return blogMapper.updateOneBlog(blog); + } +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/css/styles.css" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/css/styles.css" new file mode 100644 index 0000000..fb397cd --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/css/styles.css" @@ -0,0 +1,128 @@ +body { + font-family: Arial, sans-serif; + background-color: #e0f7fa; /* 浅蓝色背景 */ + margin: 0; + padding: 20px; +} + +.container { + max-width: 800px; + margin: 0 auto; + background: #ffffff; /* 保持白色背景,或者可以更改为更浅的蓝色 */ + padding: 20px; + box-shadow: 0 0 10px rgba(0, 123, 255, 0.1); /* 蓝色阴影 */ +} + +h1 { + text-align: center; + color: #007bff; /* 深蓝色标题 */ +} + +#search-box { + padding: 10px; + width: calc(100% - 120px); + border: 1px solid #cce5ff; /* 浅蓝色边框 */ + border-radius: 4px; + height: 18px; +} + +#add-book-btn { + padding: 10px 20px; + background-color: #007bff; /* 深蓝色按钮 */ + color: white; + border: none; + height: 40px; + border-radius: 4px; + cursor: pointer; +} + +#add-book-btn:hover { + background-color: #0056b3; /* 深一些的蓝色按钮悬停效果 */ +} + +table { + width: 100%; + border-collapse: collapse; + margin-bottom: 20px; +} + +th, td { + padding: 10px; + border: 1px solid #cce5ff; /* 浅蓝色边框 */ + text-align: center; +} + +th { + background-color: #d1ecf1; /* 浅蓝色表头背景 */ +} +tr:hover { + background-color: #e0f7fa; /* 浅蓝色高亮背景,与页面背景相近但稍浅 */ +} +.modal { + display: none; + position: fixed; + z-index: 1; + left: 0; + top: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.4); /* 蓝色半透明背景 */ +} + +.modal-content { + background-color: #fefefe; /* 保持白色背景,或者可以更改为更浅的蓝色 */ + /* 注意:以下两行原本用于居中的代码是错误的,应该移除或更正 */ + transform: translate(60%, 40%); + /* margin应该用于.modal而不是.modal-content来实现居中 */ + padding: 35px; + border: 1px solid #cce5ff; /* 浅蓝色边框 */ + width: 40%; + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); /* 蓝色阴影 */ + /* 为了实现.modal-content的居中,您可能需要添加额外的CSS或使用JavaScript */ +} + +/* 注意:.close-btn的颜色已经在.modal-content之外定义,如果需要更改为蓝色调,可以如下修改 */ +.close-btn { + color: #007bff; /* 深蓝色关闭按钮 */ + float: right; + font-size: 28px; + font-weight: bold; + cursor: pointer; +} + +.close-btn:hover, +.close-btn:focus { + color: #0056b3; /* 深一些的蓝色关闭按钮悬停效果 */ + text-decoration: none; + cursor: pointer; +} + +form { + display: flex; + flex-direction: column; +} + +label { + margin-bottom: 8px; + color: #007bff; /* 深蓝色标签 */ +} + +input[type="text"], input[type="hidden"] { + margin-bottom: 15px; + padding: 10px; + border: 1px solid #cce5ff; /* 浅蓝色边框 */ + border-radius: 4px; +} + +button[type="submit"] { + padding: 10px 20px; + background-color: #007bff; /* 深蓝色提交按钮 */ + color: white; + border: none; + border-radius: 4px; + cursor: pointer; +} + +button[type="submit"]:hover { + background-color: #0056b3; /* 深一些的蓝色提交按钮悬停效果 */ +} \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/index.html" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/index.html" new file mode 100644 index 0000000..953d54d --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/index.html" @@ -0,0 +1,62 @@ + + + + + + + 学生管理系统 + + + + +
+ +

博客管理系统

+
+ + + + +
+ + + + + + + + + + + + + + + + +
ID标题作者文本操作
+ +
+ + + \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/axios.min.js" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/axios.min.js" new file mode 100644 index 0000000..0ac6c50 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/axios.min.js" @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).axios=t()}(this,(function(){"use strict";function e(e){var r,n;function o(r,n){try{var a=e[r](n),u=a.value,s=u instanceof t;Promise.resolve(s?u.v:u).then((function(t){if(s){var n="return"===r?"return":"next";if(!u.k||t.done)return o(n,t);t=e[n](t).value}i(a.done?"return":"normal",t)}),(function(e){o("throw",e)}))}catch(e){i("throw",e)}}function i(e,t){switch(e){case"return":r.resolve({value:t,done:!0});break;case"throw":r.reject(t);break;default:r.resolve({value:t,done:!1})}(r=r.next)?o(r.key,r.arg):n=null}this._invoke=function(e,t){return new Promise((function(i,a){var u={key:e,arg:t,resolve:i,reject:a,next:null};n?n=n.next=u:(r=n=u,o(e,t))}))},"function"!=typeof e.return&&(this.return=void 0)}function t(e,t){this.v=e,this.k=t}function r(e){var r={},n=!1;function o(r,o){return n=!0,o=new Promise((function(t){t(e[r](o))})),{done:!1,value:new t(o,1)}}return r["undefined"!=typeof Symbol&&Symbol.iterator||"@@iterator"]=function(){return this},r.next=function(e){return n?(n=!1,e):o("next",e)},"function"==typeof e.throw&&(r.throw=function(e){if(n)throw n=!1,e;return o("throw",e)}),"function"==typeof e.return&&(r.return=function(e){return n?(n=!1,e):o("return",e)}),r}function n(e){var t,r,n,i=2;for("undefined"!=typeof Symbol&&(r=Symbol.asyncIterator,n=Symbol.iterator);i--;){if(r&&null!=(t=e[r]))return t.call(e);if(n&&null!=(t=e[n]))return new o(t.call(e));r="@@asyncIterator",n="@@iterator"}throw new TypeError("Object is not async iterable")}function o(e){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var t=e.done;return Promise.resolve(e.value).then((function(e){return{value:e,done:t}}))}return o=function(e){this.s=e,this.n=e.next},o.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var r=this.s.return;return void 0===r?Promise.resolve({value:e,done:!0}):t(r.apply(this.s,arguments))},throw:function(e){var r=this.s.return;return void 0===r?Promise.reject(e):t(r.apply(this.s,arguments))}},new o(e)}function i(e){return new t(e,0)}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function u(e){for(var t=1;t=0;--i){var a=this.tryEntries[i],u=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var s=n.call(a,"catchLoc"),c=n.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),A(r),y}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;A(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:L(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),y}},t}function c(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}function f(e){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f(e)}function l(t){return function(){return new e(t.apply(this,arguments))}}function p(e,t,r,n,o,i,a){try{var u=e[i](a),s=u.value}catch(e){return void r(e)}u.done?t(s):Promise.resolve(s).then(n,o)}function h(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(e){p(i,n,o,a,u,"next",e)}function u(e){p(i,n,o,a,u,"throw",e)}a(void 0)}))}}function d(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function v(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r2&&void 0!==arguments[2]?arguments[2]:{},i=o.allOwnKeys,a=void 0!==i&&i;if(null!=e)if("object"!==f(e)&&(e=[e]),N(e))for(r=0,n=e.length;r0;)if(t===(r=n[o]).toLowerCase())return r;return null}var Q="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,Z=function(e){return!_(e)&&e!==Q};var ee,te=(ee="undefined"!=typeof Uint8Array&&j(Uint8Array),function(e){return ee&&e instanceof ee}),re=P("HTMLFormElement"),ne=function(e){var t=Object.prototype.hasOwnProperty;return function(e,r){return t.call(e,r)}}(),oe=P("RegExp"),ie=function(e,t){var r=Object.getOwnPropertyDescriptors(e),n={};$(r,(function(r,o){var i;!1!==(i=t(r,o,e))&&(n[o]=i||r)})),Object.defineProperties(e,n)},ae="abcdefghijklmnopqrstuvwxyz",ue="0123456789",se={DIGIT:ue,ALPHA:ae,ALPHA_DIGIT:ae+ae.toUpperCase()+ue};var ce,fe,le,pe,he=P("AsyncFunction"),de=(ce="function"==typeof setImmediate,fe=U(Q.postMessage),ce?setImmediate:fe?(le="axios@".concat(Math.random()),pe=[],Q.addEventListener("message",(function(e){var t=e.source,r=e.data;t===Q&&r===le&&pe.length&&pe.shift()()}),!1),function(e){pe.push(e),Q.postMessage(le,"*")}):function(e){return setTimeout(e)}),ve="undefined"!=typeof queueMicrotask?queueMicrotask.bind(Q):"undefined"!=typeof process&&process.nextTick||de,ye={isArray:N,isArrayBuffer:C,isBuffer:function(e){return null!==e&&!_(e)&&null!==e.constructor&&!_(e.constructor)&&U(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:function(e){var t;return e&&("function"==typeof FormData&&e instanceof FormData||U(e.append)&&("formdata"===(t=A(e))||"object"===t&&U(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&C(e.buffer)},isString:F,isNumber:B,isBoolean:function(e){return!0===e||!1===e},isObject:D,isPlainObject:I,isReadableStream:G,isRequest:K,isResponse:V,isHeaders:X,isUndefined:_,isDate:q,isFile:M,isBlob:z,isRegExp:oe,isFunction:U,isStream:function(e){return D(e)&&U(e.pipe)},isURLSearchParams:J,isTypedArray:te,isFileList:H,forEach:$,merge:function e(){for(var t=Z(this)&&this||{},r=t.caseless,n={},o=function(t,o){var i=r&&Y(n,o)||o;I(n[i])&&I(t)?n[i]=e(n[i],t):I(t)?n[i]=e({},t):N(t)?n[i]=t.slice():n[i]=t},i=0,a=arguments.length;i3&&void 0!==arguments[3]?arguments[3]:{},o=n.allOwnKeys;return $(t,(function(t,n){r&&U(t)?e[n]=R(t,r):e[n]=t}),{allOwnKeys:o}),e},trim:function(e){return e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},stripBOM:function(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e},inherits:function(e,t,r,n){e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},toFlatObject:function(e,t,r,n){var o,i,a,u={};if(t=t||{},null==e)return t;do{for(i=(o=Object.getOwnPropertyNames(e)).length;i-- >0;)a=o[i],n&&!n(a,e,t)||u[a]||(t[a]=e[a],u[a]=!0);e=!1!==r&&j(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},kindOf:A,kindOfTest:P,endsWith:function(e,t,r){e=String(e),(void 0===r||r>e.length)&&(r=e.length),r-=t.length;var n=e.indexOf(t,r);return-1!==n&&n===r},toArray:function(e){if(!e)return null;if(N(e))return e;var t=e.length;if(!B(t))return null;for(var r=new Array(t);t-- >0;)r[t]=e[t];return r},forEachEntry:function(e,t){for(var r,n=(e&&e[Symbol.iterator]).call(e);(r=n.next())&&!r.done;){var o=r.value;t.call(e,o[0],o[1])}},matchAll:function(e,t){for(var r,n=[];null!==(r=e.exec(t));)n.push(r);return n},isHTMLForm:re,hasOwnProperty:ne,hasOwnProp:ne,reduceDescriptors:ie,freezeMethods:function(e){ie(e,(function(t,r){if(U(e)&&-1!==["arguments","caller","callee"].indexOf(r))return!1;var n=e[r];U(n)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=function(){throw Error("Can not rewrite read-only method '"+r+"'")}))}))},toObjectSet:function(e,t){var r={},n=function(e){e.forEach((function(e){r[e]=!0}))};return N(e)?n(e):n(String(e).split(t)),r},toCamelCase:function(e){return e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,r){return t.toUpperCase()+r}))},noop:function(){},toFiniteNumber:function(e,t){return null!=e&&Number.isFinite(e=+e)?e:t},findKey:Y,global:Q,isContextDefined:Z,ALPHABET:se,generateString:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:se.ALPHA_DIGIT,r="",n=t.length;e--;)r+=t[Math.random()*n|0];return r},isSpecCompliantForm:function(e){return!!(e&&U(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:function(e){var t=new Array(10);return function e(r,n){if(D(r)){if(t.indexOf(r)>=0)return;if(!("toJSON"in r)){t[n]=r;var o=N(r)?[]:{};return $(r,(function(t,r){var i=e(t,n+1);!_(i)&&(o[r]=i)})),t[n]=void 0,o}}return r}(e,0)},isAsyncFn:he,isThenable:function(e){return e&&(D(e)||U(e))&&U(e.then)&&U(e.catch)},setImmediate:de,asap:ve};function me(e,t,r,n,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),o&&(this.response=o,this.status=o.status?o.status:null)}ye.inherits(me,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:ye.toJSONObject(this.config),code:this.code,status:this.status}}});var be=me.prototype,ge={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((function(e){ge[e]={value:e}})),Object.defineProperties(me,ge),Object.defineProperty(be,"isAxiosError",{value:!0}),me.from=function(e,t,r,n,o,i){var a=Object.create(be);return ye.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(function(e){return"isAxiosError"!==e})),me.call(a,e.message,t,r,n,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};function we(e){return ye.isPlainObject(e)||ye.isArray(e)}function Ee(e){return ye.endsWith(e,"[]")?e.slice(0,-2):e}function Oe(e,t,r){return e?e.concat(t).map((function(e,t){return e=Ee(e),!r&&t?"["+e+"]":e})).join(r?".":""):t}var Se=ye.toFlatObject(ye,{},null,(function(e){return/^is[A-Z]/.test(e)}));function xe(e,t,r){if(!ye.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;var n=(r=ye.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!ye.isUndefined(t[e])}))).metaTokens,o=r.visitor||c,i=r.dots,a=r.indexes,u=(r.Blob||"undefined"!=typeof Blob&&Blob)&&ye.isSpecCompliantForm(t);if(!ye.isFunction(o))throw new TypeError("visitor must be a function");function s(e){if(null===e)return"";if(ye.isDate(e))return e.toISOString();if(!u&&ye.isBlob(e))throw new me("Blob is not supported. Use a Buffer instead.");return ye.isArrayBuffer(e)||ye.isTypedArray(e)?u&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function c(e,r,o){var u=e;if(e&&!o&&"object"===f(e))if(ye.endsWith(r,"{}"))r=n?r:r.slice(0,-2),e=JSON.stringify(e);else if(ye.isArray(e)&&function(e){return ye.isArray(e)&&!e.some(we)}(e)||(ye.isFileList(e)||ye.endsWith(r,"[]"))&&(u=ye.toArray(e)))return r=Ee(r),u.forEach((function(e,n){!ye.isUndefined(e)&&null!==e&&t.append(!0===a?Oe([r],n,i):null===a?r:r+"[]",s(e))})),!1;return!!we(e)||(t.append(Oe(o,r,i),s(e)),!1)}var l=[],p=Object.assign(Se,{defaultVisitor:c,convertValue:s,isVisitable:we});if(!ye.isObject(e))throw new TypeError("data must be an object");return function e(r,n){if(!ye.isUndefined(r)){if(-1!==l.indexOf(r))throw Error("Circular reference detected in "+n.join("."));l.push(r),ye.forEach(r,(function(r,i){!0===(!(ye.isUndefined(r)||null===r)&&o.call(t,r,ye.isString(i)?i.trim():i,n,p))&&e(r,n?n.concat(i):[i])})),l.pop()}}(e),t}function Re(e){var t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function Te(e,t){this._pairs=[],e&&xe(e,this,t)}var ke=Te.prototype;function je(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Ae(e,t,r){if(!t)return e;var n=r&&r.encode||je;ye.isFunction(r)&&(r={serialize:r});var o,i=r&&r.serialize;if(o=i?i(t,r):ye.isURLSearchParams(t)?t.toString():new Te(t,r).toString(n)){var a=e.indexOf("#");-1!==a&&(e=e.slice(0,a)),e+=(-1===e.indexOf("?")?"?":"&")+o}return e}ke.append=function(e,t){this._pairs.push([e,t])},ke.toString=function(e){var t=e?function(t){return e.call(this,t,Re)}:Re;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var Pe=function(){function e(){d(this,e),this.handlers=[]}return y(e,[{key:"use",value:function(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1}},{key:"eject",value:function(e){this.handlers[e]&&(this.handlers[e]=null)}},{key:"clear",value:function(){this.handlers&&(this.handlers=[])}},{key:"forEach",value:function(e){ye.forEach(this.handlers,(function(t){null!==t&&e(t)}))}}]),e}(),Le={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Ne={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:Te,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},_e="undefined"!=typeof window&&"undefined"!=typeof document,Ce="object"===("undefined"==typeof navigator?"undefined":f(navigator))&&navigator||void 0,Fe=_e&&(!Ce||["ReactNative","NativeScript","NS"].indexOf(Ce.product)<0),Ue="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,Be=_e&&window.location.href||"http://localhost",De=u(u({},Object.freeze({__proto__:null,hasBrowserEnv:_e,hasStandardBrowserWebWorkerEnv:Ue,hasStandardBrowserEnv:Fe,navigator:Ce,origin:Be})),Ne);function Ie(e){function t(e,r,n,o){var i=e[o++];if("__proto__"===i)return!0;var a=Number.isFinite(+i),u=o>=e.length;return i=!i&&ye.isArray(n)?n.length:i,u?(ye.hasOwnProp(n,i)?n[i]=[n[i],r]:n[i]=r,!a):(n[i]&&ye.isObject(n[i])||(n[i]=[]),t(e,r,n[i],o)&&ye.isArray(n[i])&&(n[i]=function(e){var t,r,n={},o=Object.keys(e),i=o.length;for(t=0;t-1,i=ye.isObject(e);if(i&&ye.isHTMLForm(e)&&(e=new FormData(e)),ye.isFormData(e))return o?JSON.stringify(Ie(e)):e;if(ye.isArrayBuffer(e)||ye.isBuffer(e)||ye.isStream(e)||ye.isFile(e)||ye.isBlob(e)||ye.isReadableStream(e))return e;if(ye.isArrayBufferView(e))return e.buffer;if(ye.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();if(i){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return xe(e,new De.classes.URLSearchParams,Object.assign({visitor:function(e,t,r,n){return De.isNode&&ye.isBuffer(e)?(this.append(t,e.toString("base64")),!1):n.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((r=ye.isFileList(e))||n.indexOf("multipart/form-data")>-1){var a=this.env&&this.env.FormData;return xe(r?{"files[]":e}:e,a&&new a,this.formSerializer)}}return i||o?(t.setContentType("application/json",!1),function(e,t,r){if(ye.isString(e))try{return(t||JSON.parse)(e),ye.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(r||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional||qe.transitional,r=t&&t.forcedJSONParsing,n="json"===this.responseType;if(ye.isResponse(e)||ye.isReadableStream(e))return e;if(e&&ye.isString(e)&&(r&&!this.responseType||n)){var o=!(t&&t.silentJSONParsing)&&n;try{return JSON.parse(e)}catch(e){if(o){if("SyntaxError"===e.name)throw me.from(e,me.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:De.classes.FormData,Blob:De.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};ye.forEach(["delete","get","head","post","put","patch"],(function(e){qe.headers[e]={}}));var Me=qe,ze=ye.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),He=Symbol("internals");function Je(e){return e&&String(e).trim().toLowerCase()}function We(e){return!1===e||null==e?e:ye.isArray(e)?e.map(We):String(e)}function Ge(e,t,r,n,o){return ye.isFunction(n)?n.call(this,t,r):(o&&(t=r),ye.isString(t)?ye.isString(n)?-1!==t.indexOf(n):ye.isRegExp(n)?n.test(t):void 0:void 0)}var Ke=function(e,t){function r(e){d(this,r),e&&this.set(e)}return y(r,[{key:"set",value:function(e,t,r){var n=this;function o(e,t,r){var o=Je(t);if(!o)throw new Error("header name must be a non-empty string");var i=ye.findKey(n,o);(!i||void 0===n[i]||!0===r||void 0===r&&!1!==n[i])&&(n[i||t]=We(e))}var i=function(e,t){return ye.forEach(e,(function(e,r){return o(e,r,t)}))};if(ye.isPlainObject(e)||e instanceof this.constructor)i(e,t);else if(ye.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))i(function(e){var t,r,n,o={};return e&&e.split("\n").forEach((function(e){n=e.indexOf(":"),t=e.substring(0,n).trim().toLowerCase(),r=e.substring(n+1).trim(),!t||o[t]&&ze[t]||("set-cookie"===t?o[t]?o[t].push(r):o[t]=[r]:o[t]=o[t]?o[t]+", "+r:r)})),o}(e),t);else if(ye.isHeaders(e)){var a,u=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=O(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){u=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(e.entries());try{for(u.s();!(a=u.n()).done;){var s=b(a.value,2),c=s[0];o(s[1],c,r)}}catch(e){u.e(e)}finally{u.f()}}else null!=e&&o(t,e,r);return this}},{key:"get",value:function(e,t){if(e=Je(e)){var r=ye.findKey(this,e);if(r){var n=this[r];if(!t)return n;if(!0===t)return function(e){for(var t,r=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;t=n.exec(e);)r[t[1]]=t[2];return r}(n);if(ye.isFunction(t))return t.call(this,n,r);if(ye.isRegExp(t))return t.exec(n);throw new TypeError("parser must be boolean|regexp|function")}}}},{key:"has",value:function(e,t){if(e=Je(e)){var r=ye.findKey(this,e);return!(!r||void 0===this[r]||t&&!Ge(0,this[r],r,t))}return!1}},{key:"delete",value:function(e,t){var r=this,n=!1;function o(e){if(e=Je(e)){var o=ye.findKey(r,e);!o||t&&!Ge(0,r[o],o,t)||(delete r[o],n=!0)}}return ye.isArray(e)?e.forEach(o):o(e),n}},{key:"clear",value:function(e){for(var t=Object.keys(this),r=t.length,n=!1;r--;){var o=t[r];e&&!Ge(0,this[o],o,e,!0)||(delete this[o],n=!0)}return n}},{key:"normalize",value:function(e){var t=this,r={};return ye.forEach(this,(function(n,o){var i=ye.findKey(r,o);if(i)return t[i]=We(n),void delete t[o];var a=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(function(e,t,r){return t.toUpperCase()+r}))}(o):String(o).trim();a!==o&&delete t[o],t[a]=We(n),r[a]=!0})),this}},{key:"concat",value:function(){for(var e,t=arguments.length,r=new Array(t),n=0;n1?r-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:Date.now();o=i,r=null,n&&(clearTimeout(n),n=null),e.apply(null,t)};return[function(){for(var e=Date.now(),t=e-o,u=arguments.length,s=new Array(u),c=0;c=i?a(s,e):(r=s,n||(n=setTimeout((function(){n=null,a(r)}),i-t)))},function(){return r&&a(r)}]}ye.inherits(Ye,me,{__CANCEL__:!0});var tt=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:3,n=0,o=Ze(50,250);return et((function(r){var i=r.loaded,a=r.lengthComputable?r.total:void 0,u=i-n,s=o(u);n=i;var c=m({loaded:i,total:a,progress:a?i/a:void 0,bytes:u,rate:s||void 0,estimated:s&&a&&i<=a?(a-i)/s:void 0,event:r,lengthComputable:null!=a},t?"download":"upload",!0);e(c)}),r)},rt=function(e,t){var r=null!=e;return[function(n){return t[0]({lengthComputable:r,total:e,loaded:n})},t[1]]},nt=function(e){return function(){for(var t=arguments.length,r=new Array(t),n=0;n1?t-1:0),n=1;n1?"since :\n"+u.map(At).join("\n"):" "+At(u[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return r};function Nt(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ye(null,e)}function _t(e){return Nt(e),e.headers=Ve.from(e.headers),e.data=Xe.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Lt(e.adapter||Me.adapter)(e).then((function(t){return Nt(e),t.data=Xe.call(e,e.transformResponse,t),t.headers=Ve.from(t.headers),t}),(function(t){return $e(t)||(Nt(e),t&&t.response&&(t.response.data=Xe.call(e,e.transformResponse,t.response),t.response.headers=Ve.from(t.response.headers))),Promise.reject(t)}))}var Ct="1.7.9",Ft={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){Ft[e]=function(r){return f(r)===e||"a"+(t<1?"n ":" ")+e}}));var Ut={};Ft.transitional=function(e,t,r){function n(e,t){return"[Axios v1.7.9] Transitional option '"+e+"'"+t+(r?". "+r:"")}return function(r,o,i){if(!1===e)throw new me(n(o," has been removed"+(t?" in "+t:"")),me.ERR_DEPRECATED);return t&&!Ut[o]&&(Ut[o]=!0,console.warn(n(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(r,o,i)}},Ft.spelling=function(e){return function(t,r){return console.warn("".concat(r," is likely a misspelling of ").concat(e)),!0}};var Bt={assertOptions:function(e,t,r){if("object"!==f(e))throw new me("options must be an object",me.ERR_BAD_OPTION_VALUE);for(var n=Object.keys(e),o=n.length;o-- >0;){var i=n[o],a=t[i];if(a){var u=e[i],s=void 0===u||a(u,i,e);if(!0!==s)throw new me("option "+i+" must be "+s,me.ERR_BAD_OPTION_VALUE)}else if(!0!==r)throw new me("Unknown option "+i,me.ERR_BAD_OPTION)}},validators:Ft},Dt=Bt.validators,It=function(){function e(t){d(this,e),this.defaults=t,this.interceptors={request:new Pe,response:new Pe}}var t;return y(e,[{key:"request",value:(t=h(s().mark((function e(t,r){var n,o;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this._request(t,r);case 3:return e.abrupt("return",e.sent);case 6:if(e.prev=6,e.t0=e.catch(0),e.t0 instanceof Error){n={},Error.captureStackTrace?Error.captureStackTrace(n):n=new Error,o=n.stack?n.stack.replace(/^.+\n/,""):"";try{e.t0.stack?o&&!String(e.t0.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(e.t0.stack+="\n"+o):e.t0.stack=o}catch(e){}}throw e.t0;case 10:case"end":return e.stop()}}),e,this,[[0,6]])}))),function(e,r){return t.apply(this,arguments)})},{key:"_request",value:function(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{};var r=t=st(this.defaults,t),n=r.transitional,o=r.paramsSerializer,i=r.headers;void 0!==n&&Bt.assertOptions(n,{silentJSONParsing:Dt.transitional(Dt.boolean),forcedJSONParsing:Dt.transitional(Dt.boolean),clarifyTimeoutError:Dt.transitional(Dt.boolean)},!1),null!=o&&(ye.isFunction(o)?t.paramsSerializer={serialize:o}:Bt.assertOptions(o,{encode:Dt.function,serialize:Dt.function},!0)),Bt.assertOptions(t,{baseUrl:Dt.spelling("baseURL"),withXsrfToken:Dt.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();var a=i&&ye.merge(i.common,i[t.method]);i&&ye.forEach(["delete","get","head","post","put","patch","common"],(function(e){delete i[e]})),t.headers=Ve.concat(a,i);var u=[],s=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(s=s&&e.synchronous,u.unshift(e.fulfilled,e.rejected))}));var c,f=[];this.interceptors.response.forEach((function(e){f.push(e.fulfilled,e.rejected)}));var l,p=0;if(!s){var h=[_t.bind(this),void 0];for(h.unshift.apply(h,u),h.push.apply(h,f),l=h.length,c=Promise.resolve(t);p0;)n._listeners[t](e);n._listeners=null}})),this.promise.then=function(e){var t,r=new Promise((function(e){n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},t((function(e,t,o){n.reason||(n.reason=new Ye(e,t,o),r(n.reason))}))}return y(e,[{key:"throwIfRequested",value:function(){if(this.reason)throw this.reason}},{key:"subscribe",value:function(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}},{key:"unsubscribe",value:function(e){if(this._listeners){var t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}}},{key:"toAbortSignal",value:function(){var e=this,t=new AbortController,r=function(e){t.abort(e)};return this.subscribe(r),t.signal.unsubscribe=function(){return e.unsubscribe(r)},t.signal}}],[{key:"source",value:function(){var t;return{token:new e((function(e){t=e})),cancel:t}}}]),e}(),zt=Mt;var Ht={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Ht).forEach((function(e){var t=b(e,2),r=t[0],n=t[1];Ht[n]=r}));var Jt=Ht;var Wt=function e(t){var r=new qt(t),n=R(qt.prototype.request,r);return ye.extend(n,qt.prototype,r,{allOwnKeys:!0}),ye.extend(n,r,null,{allOwnKeys:!0}),n.create=function(r){return e(st(t,r))},n}(Me);return Wt.Axios=qt,Wt.CanceledError=Ye,Wt.CancelToken=zt,Wt.isCancel=$e,Wt.VERSION=Ct,Wt.toFormData=xe,Wt.AxiosError=me,Wt.Cancel=Wt.CanceledError,Wt.all=function(e){return Promise.all(e)},Wt.spread=function(e){return function(t){return e.apply(null,t)}},Wt.isAxiosError=function(e){return ye.isObject(e)&&!0===e.isAxiosError},Wt.mergeConfig=st,Wt.AxiosHeaders=Ve,Wt.formToJSON=function(e){return Ie(ye.isHTMLForm(e)?new FormData(e):e)},Wt.getAdapter=Lt,Wt.HttpStatusCode=Jt,Wt.default=Wt,Wt})); +//# sourceMappingURL=axios.min.js.map diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/book.js" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/book.js" new file mode 100644 index 0000000..8661841 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/book.js" @@ -0,0 +1,188 @@ +(function () { + // 私有变量 + const addBtn = document.querySelector('#add-book-btn'); + const modal = document.querySelector('.modal'); + const closeModalBtn = document.querySelector('#close-form-btn'); + const tbody = document.querySelector('tbody'); + const form = document.querySelector('#book-form'); + const searchBox = document.querySelector("#search-box"); + const formTitle = document.querySelector("#form-title"); + + // 表单选项 + let itemId = document.querySelector("#book-id"); + let itemName = document.querySelector("#book-name"); + let itemAuthor = document.querySelector("#author"); + let itemPublisher = document.querySelector("#publisher"); + + + + let data = []; + // api接口设置 + const API_BASE_URL = "http://localhost/book"; + + // 搜索图书# 修改bookName + function searchBooks(query) { + axios.get(API_BASE_URL + `?bookName=${query}`).then(res => { + if (res.data.code === 500) { + alert(`${res.data.msg}`); + return; + } + data = res.data.data; + renderTable(data); + }); + } + + // 渲染表格数据 # 修改item.后面的属性名称 + function renderTable(data) { + if (data.length === 0) return alert("无内容"); + tbody.innerHTML = data.map(item => { + return ` + ${item.bookId} + ${item.bookName} + ${item.bookAuthor} + ${item.bookPublisher} + + + + + `; + }).join(''); + + // 添加事件监听器(事件委托) + tbody.addEventListener('click', handleTableClick); + } + + // 更新图书时,先回显要被修改的旧数据 + function updateBook(id) { + axios.get(API_BASE_URL + `/${id}`).then(res => { + const data = res.data.data; + showOrCloseModal(); + form.reset(); + // ########以下内容要修改########## + + formTitle.innerText = '更新图书'; + itemId.value = data.bookId; + itemName.value = data.bookName; + itemAuthor.value = data.bookAuthor; + itemPublisher.value = data.bookPublisher; + + // ######以上内容要修改##### + }); + } + + + // 处理表格点击事件 + function handleTableClick(e) { + if (e.target.classList.contains('delete-btn')) { + deleteBook(e.target.closest('tr').dataset.id); + } else if (e.target.classList.contains('update-btn')) { + updateBook(e.target.closest('tr').dataset.id); + } + } + + // 开关浮层 + function showOrCloseModal(show = true) { + if (show) { + modal.style.display = 'block'; + } else { + modal.style.display = 'none'; + } + + document.querySelector("#book-id").value = null; // 重置当前编辑的图书ID + } + + // 获取列表 + function fetchBooks() { + axios.get(API_BASE_URL).then(res => { + data = res.data.data; + renderTable(data); + }); + + } + + // 根据id删除 + function deleteBook(id) { + if (!confirm("真的要删除吗?")) return; + axios.delete(API_BASE_URL + `/${id}`).then(res => { + if (res.data.code === 500) return alert(res.data.msg) + alert(res.data.data); + fetchBooks(); + }); + } + + + + // 点击保存按钮:添加或更新图书 + function saveBook() { + // 获取表单项的值 + let bookId = itemId.value; + const bookName = itemName.value; + const bookAuthor = itemAuthor.value; + const bookPublisher = itemPublisher.value; + + // 非空判断 + if (!bookName || !bookAuthor || !bookPublisher) { + alert("所有字段都必须填写!"); + return; + } + + // 表单项的值,封装成一个对象 + const book = { + bookId: bookId || null, // 如果为空,则视为添加新图书 + bookName: bookName, + bookAuthor: bookAuthor, + bookPublisher: bookPublisher + }; + + // 根据编号判断是添加还是更新 + if (bookId) { + axios.put(API_BASE_URL, book).then(res => { + res.data.code === 200 ? alert(res.data.data) : alert(res.data.msg); + fetchBooks(); + showOrCloseModal(false); + }) + } else { + axios.post(API_BASE_URL, book).then(res => { + res.data.code === 200 ? alert(res.data.data) : alert(res.data.msg); + fetchBooks(); + showOrCloseModal(false); + }) + } + + } + + + + // 初始化事件监听器 + function init() { + addBtn.addEventListener('click', () => { + form.reset(); + formTitle.innerText = '添加图书'; + bookId = null; + showOrCloseModal(); + }); + + closeModalBtn.addEventListener('click', () => { + bookId = null; // 重置当前编辑的图书ID + showOrCloseModal(false); + }); + + form.addEventListener('submit', (e) => { + e.preventDefault(); + saveBook(); + }); + + searchBox.addEventListener('keyup', (e) => { + if (e.key === "Enter") { + searchBooks(searchBox.value); + searchBox.value = ''; + } + }); + + // 初始加载图书列表 + fetchBooks(); + } + + // 执行初始化函数 + init(); +})(); \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/data.js" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/data.js" new file mode 100644 index 0000000..915bee6 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/data.js" @@ -0,0 +1,182 @@ +// 私有变量 +const addBtn = document.querySelector('#add-btn'); +const modal = document.querySelector('.modal'); +const closeModalBtn = document.querySelector('#close-form-btn'); +const tbody = document.querySelector('tbody'); +const form = document.querySelector('#item-form'); +const searchBox = document.querySelector("#search-box"); +const formTitle = document.querySelector("#form-title"); + +// 表单选项 +//#######################改改改################################ +let studentId = document.querySelector("#studentId"); +let studentName = document.querySelector("#studentName"); +let classname = document.querySelector("#classname"); +let classTeacher = document.querySelector("#classTeacher"); +//############################################################# + + +let data = []; +// api接口设置 +// const API_BASE_URL = "http://localhost/book"; +const API_BASE_URL = "http://localhost/blog"; // #### 改改改 #### + +// 搜索功能 +function search(name) { + axios.get(API_BASE_URL + `?title=${name}`).then(res => { + data = res.data; + renderTable(data); + }); +} + +// 渲染表格数据 # 修改item.后面的属性名称 +function renderTable(data) { + if (data.length === 0) return alert("无内容"); + tbody.innerHTML = data.map(item => { + return ` + ${item.blogId} + ${item.blogTitle} + ${item.blogAuthor} + ${item.blogText} + + + + + `; + }).join(''); + + // 添加事件监听器(事件委托) + tbody.addEventListener('click', handleTableClick); +} + +// 更新,先回显要被修改的旧数据 +function update(id) { + axios.get(API_BASE_URL + `/${id}`).then(res => { + const data = res.data; + showOrCloseModal(); + form.reset(); + + // ########以下内容要修改########## + + // formTitle.innerText = '更新图书'; + formTitle.innerText = '更新博客'; + studentId.value = data.blogId; + studentName.value = data.blogTitle; + classname.value = data.blogAuthor; + classTeacher.value = data.blogText; + + // ######以上内容要修改##### + }); +} + + +// 处理表格点击事件 +function handleTableClick(e) { + if (e.target.classList.contains('delete-btn')) { + deleteItem(e.target.closest('tr').dataset.id); + } else if (e.target.classList.contains('update-btn')) { + update(e.target.closest('tr').dataset.id); + } +} + +// 开关浮层 +function showOrCloseModal(show = true) { + if (show) { + modal.style.display = 'block'; + } else { + modal.style.display = 'none'; + } + + studentId.value = null; // 重置当前编辑的图书ID + +} + +// 获取列表 +function fetch() { + axios.get(API_BASE_URL).then(res => { + console.log(res) + data = res.data; + renderTable(data); + }); + +} + +// 根据id删除 +function deleteItem(id) { + if (!confirm("真的要删除吗?")) return; + axios.delete(API_BASE_URL + `/${id}`).then(res => { + alert("删除成功!") + fetch(); + }); +} + + +// 点击保存按钮:添加或更新图书 +function save() { + + // 获取表单项的值######改改##### + + // 非空判断 + if (!studentName.value || !classname.value || !classTeacher.value) { + alert("所有字段都必须填写!"); + return; + } + // 表单项的值,封装成一个对象 + const item = { + blogId: studentId.value || null, // 如果为空,则视为添加新图书 + blogTitle: studentName.value, + blogAuthor: classname.value, + blogText: classTeacher.value + }; + + // 根据编号判断是添加还是更新 + if (studentId.value!='') { + axios.put(API_BASE_URL, item).then(res => { + alert("修改成功") + fetch(); + showOrCloseModal(false); + }) + } else { + axios.post(API_BASE_URL, item).then(res => { + console.log(item) + alert("添加成功") + fetch(); + showOrCloseModal(false); + }) + } + +} + + +// 初始化事件监听器 +function init() { + addBtn.addEventListener('click', () => { + form.reset(); + // formTitle.innerText = '添加图书'; + formTitle.innerText = '添加博客'; + showOrCloseModal(); + }); + + closeModalBtn.addEventListener('click', () => { + studentId.value = null; //### 初始化id + showOrCloseModal(false); + }); + + form.addEventListener('submit', (e) => { + e.preventDefault(); + save(); + }); + + searchBox.addEventListener('keyup', (e) => { + if (e.key === "Enter") { + search(searchBox.value); + searchBox.value = ''; + } + }); + + // 初始加载列表 + fetch(); +} + +// 执行初始化函数 +init(); diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/JdbcConfig.class" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/JdbcConfig.class" new file mode 100644 index 0000000000000000000000000000000000000000..38f06e9361e3d7f2cea798f07c5af6ec242d1e6f GIT binary patch literal 890 zcmah{T~8B16g^W)yOwIPqI~!Ts930UqM{FAOti!Y)1VP0@o~C4)Tz5Wb#{vIuk@uP zn)n0!QO0|>1Y$zsKFs|(_uMmg_V=G3zW{7NR&Wuw%D7!Y0k;AyvRw+W%=S)zyKL_T zSYdm=j7Ax&0;OjrHU7E4L}PVNpxCyN7N~Vhs&|G-SG)JB8&jsf5%*%3ME%p72q~`f|!_=EZ@0rYywijt?z4FGUByGK8T~B5MXVTujQ;Gg+ z-Dj5S^`V#Q6e?e8m9pTm*jI+{Tsylkr11;M&8Q4^(eyfU0s0pm_ zYW{x>+71C*$q}ul74}BLs?fGb63t*>I8{nEon zk2jt?t)j)z)pOrPV480uW0m&gn{Ho+p6D~}$Mf2;%Ca3=743EamYQkD5tdM;|B=4}1n+{*X^JFSL3VQO7~*?gzD#E+PgYPTzd8os z3T7xG8MsCy+}tNyAiMk%g^$OW=rrra5hk1U(g@{dJs9CavtAits`-sj1u*jhaf74; rB!Xqk5Yqxx7HJkwV{T$RnHErO7IQRpp0ccJfouWS^Yg}O_9pNbDQeP5 literal 0 HcmV?d00001 diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/MyBatisConfig.class" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/MyBatisConfig.class" new file mode 100644 index 0000000000000000000000000000000000000000..df19704766d61b86809b866f4e1df696b6cf1e8a GIT binary patch literal 889 zcmb7C%Wl&^6g`t?F=^5kTAG$e%PM`)*{~}@B0*g_AQ6a!SWVn%m}1Yk_M|j_1sf`X z#0T(Eh&$s_9!e$f;$Gi-e9xRS*WbQ>{tDnB?gyx0y^h-fN?3Q{P91maxW`a?q_nb+ z8OoilAw#8S4kbe?R9ZfpBqN!<6r-3rOQDHGJQSI7^+mH{->RHpEsRXUBcqShnD?h$ zVO8Gq)jq>=ei9F4o-3mdL}X1i?Mk5;x}ES?oQg9}IDaav7??>G$^EU+WMiI8M~;Q( zX{Pj;4`y)?d2o0+$gnb-kYW3ODBCY4+NwkjRj$bC6RnLUDMpjg2cD?Vbd-rizBk!B zXWYs&%f;oV+*x$;3Qq^h-{2oNv**nJl=e4cZe=Eoou-oaOp+QcwI#ZlK7Kp3FVa+I zgUFv$AVV$d~_@$%P^ly`)i#H z?W^`Y#3rirU%ICR=Co0~Mir;bC|9@7!9IF8pjh+G2Cmb4qxgXGJXH)$w1~tFzoJ~G z-1>sj>vNR*yE~sy+5JGR5*$slfa$aa8ea5t8yCHTj)nGbpK{R6-OwhBmNBah8I>I}JKZL~jONbl}-88R)~R}AI0HtISG zddl62-k2h_wv}Ss6;8)^7R>ku9WrdUr46{WW}t_>GjZAsTM0N~D0FP(q&nBJNOdvU z9EqtQ@@-_i4pdi%nv_qCv0iv>4GAB%tsC+%Q5-lCs3+?l<3e6NdoJcz`A@mXB}A(F z4`MK}Mj79c!Vob#72}9HEz*mcp>k6#3Gu)7aY1U%lTLkcB$xf3oDXDYF?02DMlFZ4 zWClg&{WC}4?f lDLH4cOgPRL6I;Rx`38xuk}uPp$~{Tok%Ic-@pxvAXU>fM{l}MY0Pf?Si#)D6xR%F?i|bg;cZ_b}7+wmRIrk>V3xH!u&Z>#o0uBhL}_M7I%uT~wDJycL- zV7`NO4|napbnXR(gD*wUn z^lQg6uytB>B!D!($7-=p+CHlot8nP6U^qknMv5dgnO2W9pCluht$qgkn3&JenoABn z%+cN(I-r1g(iqO8NUIHQB1>?2SxS3gG5IY6KLN+leo6oU literal 0 HcmV?d00001 diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/WebConfig.class" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/WebConfig.class" new file mode 100644 index 0000000000000000000000000000000000000000..1ac063d11c651c156745d862db8ae380201946db GIT binary patch literal 830 zcmaKqO;6k~5Qbl~VY7tgD_uVO$qhK*3%4R9v{j`_3x@_#Rqe$|O>mpFBgeZ){Z;L$ zQl<6>^hY5k$rhGf+8pfhc;=aR#`$yo^EZG4YzJsz)5n&N$3C9;c-q1=#PoS$^o2_K zI~jK?>m@@cmF}%Eu6A@YQ52HmJ3G4{dY{Em@J#5GSAL3~i&UzG8(1p0{y@m#-VsHu z6El)_n8`_Ocz1Im@?7bZYOUS}Mb46+FhOJnHj%GY+1%o-=>1Yw8*>O~2on;i_E?`$ zUXtq07`CQvPKL?f%jG*zU7vw*8pBx5tpJ9P#-_Ze=oeP><(08t_?3)#QFqOYL7p4y z_;Fk~D-w6CwQ<5Jqw9jNRFMmpTuM8d(;IqWB{KC@T5Q9ozoGm*(8v+cI!`A~JEMJe z?+4g-GG@@GwOKo{Kz4g%FJg&K9+t5}QDyQ$1p@-_7iQi!!bbFsyyJw{7$HDS2&|92vx~IvV9v1gTb1>^?%dXB1W)Jef@ZF2jv@BpL)j}EL>ltFDcF|h z*rusFzC&}>EnyF=7$r;dDh`oOHty0@Th zY%nIg))V--Xz9Yw+3oqFpbR`UHLIkqcp`d}*#=SxF@uMD8_!CJZ)#?R#>dsiM)8S+ zDZ?_nD-t?Jva1q~h6OcmZ8quq-kfQ# z=j}E1rf%sD+5L_#>0U%Sh{4Wktt%9O`s0H^sGF&fuqZ*VHIqe9m-NN_L#oJR_O1lU zu5Xs`6`REN%DN+=Tgbz($Xr$Udi+=Q&pKB;t+2+D@KuEh>kDS8pjp?21rkza%`FGQ z#9*-+;!Df(3)g7@*9k{=D<&0IsYgwDcF^f;r#;1q_P>Pmid}IE`VB)g%OMfTnr59A zUDZl&n`zK83#4|PWzv3m%{jK~E;>fZuz0Vz#5bq(%d*x>aaF`x!4bTYL`A_-3?{Lu zU<+pzoWz$3#&KG~8Eh*!hw}<1#V`#P;W1G+EfrkBB5o*{!K{MoVzq=1B^>dUClb@y zieVN-;*Zt`b0ks%(+a-AV=;Wq{ACra;$v1y4JxQ2qPM7Iia_n~yyfX7!I+|AxjMHZ z+w;w|UFKs^F8ra;Ez10OGbwA3{?H}nrSAM*7qmQ&H~0skpMNm;qayObd4RhF=T|v* za%OhWfn)xk5Qc(tdh`cKFA$UPjJp_K<0x)`2tyo|;1pgbI&hrd7*14ihq>oZ9o`I4 zXZbe9XI%ny>?d@*fE;T;KIS9$2PZ>h-oaZKA)2tci}NtQ*?W*&jAD$>lEUCqJ|Rmg zB)l3DW_-dIh&QsGh_Gd(EU8A8b8WFqHL|eD85~h;B9s#6 z_~>&S_@0Ys%rZWHP-pQlW>5_-Ky$bj0$t`T3NA~iXj|Nvm$2%xu%UB^< zoWgdSs~Cl^48>QvRY=lH#-z57N&7A3PeN#^2!ceA!C!Fj&U1A4 z_Uxip7`%%^y@$EpMc@9?i`MX9Xl67LF?>SA81DF8*-u;Ua(|ECPstUi+-Ls*7fTZ8 literal 0 HcmV?d00001 diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/entity/Blog.class" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/entity/Blog.class" new file mode 100644 index 0000000000000000000000000000000000000000..af1cbdbf2ac0b573c52e29badca3dd0f31f92d4c GIT binary patch literal 2949 zcma)7-*XdH6#j0qn{1Lz36TORRY6hHw55Wmm{NYqk4OthD@sLSo38Cbnqay?dGg7B zf*0T9r4Kq|%Z$!A`hqk5O(K40?wFSbg~URwu~b=9P!)xgD07})a~1N__ne2$M9rx$P0adDuf8;?kQRrtEq}SuRImbX z_gkMEmt6l`2ox`l5Xv~;SR~4>X|L{HZLKW0%{ga5<2I^J?WWW8L=P7Yf7x4A*gais ztW3Cd-}4_$2p*3-aHBTtllj?}Ke(6iEUX7gneco$MkHY)vUS~J;}I~WYQ7IW*Y?z z**Jh<8!yZ73Wk}Zk)*S62JhH-6$fn;F=FGGs3nm`WjKq23j3nfajxan7Tu#siB?;%_N7K;%S#KqLAyJrt^VxIS(GVbr$Y; zzdYPRS9m>E$1t<`f6X|=PO_g($UscUq7)Opf|-;BGg;$203{sJeu&xxHO1L1{Q|WX zxV^?P5iDl#I%Qis;4t2x_GV~(i?b4*`vAp$qA`Xpki9Js!_)^T9tFy73&c?O0WzXM z1KR?PVLSvXbB@WgO9$4WevZ5?86fS|9wA9WphQ7M=sH5aHSb-_(RIXjiYXC|V!quU zGrm(y$&M)I(f*jmPBA6ZqL{2k{dRScbBZiJ9xeR{(^wn*6Xs)>@wL%EV9tz{HjoHZ z3du44e-IlL>nb&?Y>fYfOu=}D-A`bT7mN+0+V1JHNtbjvQ82|P@eKJV$QH~(Vv|#* zEU1~XRY;1H6*?sgR@=#tLWpn5UmfGy`qrHoKjtU@UA}V=-{UfIaYCk zl7Tr~#0Qj2%(Fq2DJAfTwKqvAiSJmYCn;H&;+bQ}Car%kki;qbIrb)Tnm0jXptgd;@l{o-P|=C>Wu|l1OP&rfdc#1}WHN70kdi+@JST`snboaoona zptgk3^OR!PgDd!u4~Vm7kKqC(gZ+FTnHS!L*>8||LDCH}s}#wEQZMM<)nl?S2(#_b z_Az>wLbt>wx2|V&mCg}H`Bl)2;vQ#dyk~wx_SRDj4`96DoZ$lMuBkD_2Z$-BPGbv+SEqJ=%j<|0`Xx;>SMC~VD% z>g5$^^8-TN_WwQSY zrYfS8Cn^`JJB6UHBJ7ziDD2yQR75H^*FYV8vF4W^nuB(x261B7C;XdgQZo-Jb#})& zb#iDomOR~Q`lPAj$wmR2iD%L5eK2$^Ol+ZbmU3kl#+;s&8F{_5;!|L1#g?FxDPUX` z^VJ)`o2HX8BdnSPUtFV&LK{I-6QLsM#=qy-49o40Ld__%+H zFTYHHz!Lr`0F+Avu0aWR%eY&DGF0%phWK^-tb78J!YXoZz)jp2u_|IUSj+3z=WsTV qvk6->_4T~>He$En_6&9>$953A`v-O}$L^!z1LOFiQ7j|!2;eugmS;r( literal 0 HcmV?d00001 diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/service/BlogService.class" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/service/BlogService.class" new file mode 100644 index 0000000000000000000000000000000000000000..597922c19df63ffc80e960e5d177d6b873b5e4ac GIT binary patch literal 510 zcma)3!AiqG6r8QGvDMVJM*IPV^kOc8hltP~gg~H&_yaLn!j^R-$)?a>^WX>gQR3Te zDaG{Q=`pkO-p-r%{qy++-~rbzu3Y#GqlQbK>$#K*S(OdLG?*o;Y@LOz7BWmkqa%hv zDoT~ByJr&H!0npLw-ueE&%n^5O96d{;RFuhQ$jt9U7P{L Y4=~*G=Y%idS$>2|TgRr7Vq!a|zgOspZvX%Q literal 0 HcmV?d00001 diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/service/impl/BlogServiceImpl.class" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/service/impl/BlogServiceImpl.class" new file mode 100644 index 0000000000000000000000000000000000000000..7086e789782bd30e164afbe77efec052d8684c2d GIT binary patch literal 2823 zcma)8TXWk)7(J`VmpF3jhNLA;pm*xnO$D^ji_=09+G23hl9WKpt+K5;YGf(May$7K zJo5wSOCQ=9NT)EvzzfXqn}BjwQeyd%DKqi6((bp%=R148b^iMI=U)Mw!^SX%@yQ5Q zuqwkX89tR^O@_~8_&kFN+)m+6hN)l3@THvjN`|jf_$Gr<+)m@J91R(&Y1HIcPr*## zo^hvg1`W-*gjy$WqteS0g=N=0A_q$qhNt)lb4V!kE zh|74RdY`T=&D`PXxzc7G-J>OegzK-%p4lhuc0!7=(?z*prE4m?>KnBUCIlX3zq0)V z(lx`mD!-qP>qcumv^hnhyosAD<)y16=$Wmy?F)=_0j7O7^o#UfWSMSXWLDj_S2M3! z(mCT&yqNXR$btm&13S0no1W?VTbrgHZ7FFuh*wi+XqdvZh7&lcA&(givpAzc$D10? z%5VS3SnsLjpmuw=N; zvm&7imIQJgsPMdq9w!yU`TDdDv@@201hMy&yarFQ=k^Wgr}K^j^JJ9$g@7rkw3q<*ayTD?X^Yjr9hWZihwS0 zl-5WVia$XNrWCp&x$BB#WZiCZZ0`v33C9F67mI}-kWe2Nf5-6mNDMtL{)XYD(}ith zf>%C_ET3k$q|W|{kxBIr?0*Dpc2eDj7G$W>1Vb^$hZ>y=;dcow;tD;^{-&SaXBQ~+ z{$b2>ZU_Z-*aDwaED~!1$yEApjHd9xKRA%WRsN*~;+3fK%8DwvNKmOxLYB~L$dF4Y z&dzx;l?)`8IHZu*UIh6aN0pF=bEP@;av;HUuCz`8(z)Uzq-M8~y?c3jaN&h;YgG6U zuZnWep9x+cAMr_n{CDu r+t09XEVqsQlJGXh#$Ms`HpY9c7x(aVL^H00f@LBqxUqZh-30yvIvOGp literal 0 HcmV?d00001 diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" new file mode 100644 index 0000000..789825b --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" @@ -0,0 +1,10 @@ +com\config\WebConfig.class +com\service\impl\BlogServiceImpl.class +com\controller\BlogController.class +com\config\JdbcConfig.class +com\config\MyBatisConfig.class +com\entity\Blog.class +com\service\BlogService.class +com\mapper\BlogMapper.class +com\config\SpringConfig.class +com\config\SpringMvcConfig.class diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" new file mode 100644 index 0000000..e158182 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" @@ -0,0 +1,10 @@ +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\config\JdbcConfig.java +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\config\MyBatisConfig.java +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\config\SpringConfig.java +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\config\SpringMvcConfig.java +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\config\WebConfig.java +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\controller\BlogController.java +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\entity\Blog.java +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\mapper\BlogMapper.java +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\service\BlogService.java +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\service\impl\BlogServiceImpl.java diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/logging.properties" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/logging.properties" new file mode 100644 index 0000000..76c9512 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/logging.properties" @@ -0,0 +1,64 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler + +.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler + +############################################################ +# Handler specific properties. +# Describes specific configuration info for Handlers. +############################################################ + +1catalina.org.apache.juli.FileHandler.level = FINE +1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs +1catalina.org.apache.juli.FileHandler.prefix = catalina. + +2localhost.org.apache.juli.FileHandler.level = FINE +2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs +2localhost.org.apache.juli.FileHandler.prefix = localhost. + +3manager.org.apache.juli.FileHandler.level = FINE +3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs +3manager.org.apache.juli.FileHandler.prefix = manager. + +4host-manager.org.apache.juli.FileHandler.level = FINE +4host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs +4host-manager.org.apache.juli.FileHandler.prefix = host-manager. + +java.util.logging.ConsoleHandler.level = FINE +java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter + + +############################################################ +# Facility specific properties. +# Provides extra control for each logger. +############################################################ + +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler + +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.FileHandler + +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.FileHandler + +# For example, set the org.apache.catalina.util.LifecycleBase logger to log +# each component that extends LifecycleBase changing state: +#org.apache.catalina.util.LifecycleBase.level = FINE + +# To see debug messages in TldLocationsCache, uncomment the following line: +#org.apache.jasper.compiler.TldLocationsCache.level = FINE diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/tomcat-users.xml" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/tomcat-users.xml" new file mode 100644 index 0000000..7114f5d --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/tomcat-users.xml" @@ -0,0 +1,26 @@ + + + + + diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/web.xml" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/web.xml" new file mode 100644 index 0000000..cc8383c --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/web.xml" @@ -0,0 +1,4283 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + default + org.apache.catalina.servlets.DefaultServlet + + debug + 0 + + + listings + false + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + jsp + org.apache.jasper.servlet.JspServlet + + fork + false + + + xpoweredBy + false + + 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + default + / + + + + + jsp + *.jsp + *.jspx + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 30 + + + + + + + + + + + + 123 + application/vnd.lotus-1-2-3 + + + 3dml + text/vnd.in3d.3dml + + + 3g2 + video/3gpp2 + + + 3gp + video/3gpp + + + 7z + application/x-7z-compressed + + + aab + application/x-authorware-bin + + + aac + audio/x-aac + + + aam + application/x-authorware-map + + + aas + application/x-authorware-seg + + + abs + audio/x-mpeg + + + abw + application/x-abiword + + + ac + application/pkix-attr-cert + + + acc + application/vnd.americandynamics.acc + + + ace + application/x-ace-compressed + + + acu + application/vnd.acucobol + + + acutc + application/vnd.acucorp + + + adp + audio/adpcm + + + aep + application/vnd.audiograph + + + afm + application/x-font-type1 + + + afp + application/vnd.ibm.modcap + + + ahead + application/vnd.ahead.space + + + ai + application/postscript + + + aif + audio/x-aiff + + + aifc + audio/x-aiff + + + aiff + audio/x-aiff + + + aim + application/x-aim + + + air + application/vnd.adobe.air-application-installer-package+zip + + + ait + application/vnd.dvb.ait + + + ami + application/vnd.amiga.ami + + + anx + application/annodex + + + apk + application/vnd.android.package-archive + + + application + application/x-ms-application + + + apr + application/vnd.lotus-approach + + + art + image/x-jg + + + asc + application/pgp-signature + + + asf + video/x-ms-asf + + + asm + text/x-asm + + + aso + application/vnd.accpac.simply.aso + + + asx + video/x-ms-asf + + + atc + application/vnd.acucorp + + + atom + application/atom+xml + + + atomcat + application/atomcat+xml + + + atomsvc + application/atomsvc+xml + + + atx + application/vnd.antix.game-component + + + au + audio/basic + + + avi + video/x-msvideo + + + avx + video/x-rad-screenplay + + + aw + application/applixware + + + axa + audio/annodex + + + axv + video/annodex + + + azf + application/vnd.airzip.filesecure.azf + + + azs + application/vnd.airzip.filesecure.azs + + + azw + application/vnd.amazon.ebook + + + bat + application/x-msdownload + + + bcpio + application/x-bcpio + + + bdf + application/x-font-bdf + + + bdm + application/vnd.syncml.dm+wbxml + + + bed + application/vnd.realvnc.bed + + + bh2 + application/vnd.fujitsu.oasysprs + + + bin + application/octet-stream + + + bmi + application/vnd.bmi + + + bmp + image/bmp + + + body + text/html + + + book + application/vnd.framemaker + + + box + application/vnd.previewsystems.box + + + boz + application/x-bzip2 + + + bpk + application/octet-stream + + + btif + image/prs.btif + + + bz + application/x-bzip + + + bz2 + application/x-bzip2 + + + c + text/x-c + + + c11amc + application/vnd.cluetrust.cartomobile-config + + + c11amz + application/vnd.cluetrust.cartomobile-config-pkg + + + c4d + application/vnd.clonk.c4group + + + c4f + application/vnd.clonk.c4group + + + c4g + application/vnd.clonk.c4group + + + c4p + application/vnd.clonk.c4group + + + c4u + application/vnd.clonk.c4group + + + cab + application/vnd.ms-cab-compressed + + + cap + application/vnd.tcpdump.pcap + + + car + application/vnd.curl.car + + + cat + application/vnd.ms-pki.seccat + + + cc + text/x-c + + + cct + application/x-director + + + ccxml + application/ccxml+xml + + + cdbcmsg + application/vnd.contact.cmsg + + + cdf + application/x-cdf + + + cdkey + application/vnd.mediastation.cdkey + + + cdmia + application/cdmi-capability + + + cdmic + application/cdmi-container + + + cdmid + application/cdmi-domain + + + cdmio + application/cdmi-object + + + cdmiq + application/cdmi-queue + + + cdx + chemical/x-cdx + + + cdxml + application/vnd.chemdraw+xml + + + cdy + application/vnd.cinderella + + + cer + application/pkix-cert + + + cgm + image/cgm + + + chat + application/x-chat + + + chm + application/vnd.ms-htmlhelp + + + chrt + application/vnd.kde.kchart + + + cif + chemical/x-cif + + + cii + application/vnd.anser-web-certificate-issue-initiation + + + cil + application/vnd.ms-artgalry + + + cla + application/vnd.claymore + + + class + application/java + + + clkk + application/vnd.crick.clicker.keyboard + + + clkp + application/vnd.crick.clicker.palette + + + clkt + application/vnd.crick.clicker.template + + + clkw + application/vnd.crick.clicker.wordbank + + + clkx + application/vnd.crick.clicker + + + clp + application/x-msclip + + + cmc + application/vnd.cosmocaller + + + cmdf + chemical/x-cmdf + + + cml + chemical/x-cml + + + cmp + application/vnd.yellowriver-custom-menu + + + cmx + image/x-cmx + + + cod + application/vnd.rim.cod + + + com + application/x-msdownload + + + conf + text/plain + + + cpio + application/x-cpio + + + cpp + text/x-c + + + cpt + application/mac-compactpro + + + crd + application/x-mscardfile + + + crl + application/pkix-crl + + + crt + application/x-x509-ca-cert + + + cryptonote + application/vnd.rig.cryptonote + + + csh + application/x-csh + + + csml + chemical/x-csml + + + csp + application/vnd.commonspace + + + css + text/css + + + cst + application/x-director + + + csv + text/csv + + + cu + application/cu-seeme + + + curl + text/vnd.curl + + + cww + application/prs.cww + + + cxt + application/x-director + + + cxx + text/x-c + + + dae + model/vnd.collada+xml + + + daf + application/vnd.mobius.daf + + + dataless + application/vnd.fdsn.seed + + + davmount + application/davmount+xml + + + dcr + application/x-director + + + dcurl + text/vnd.curl.dcurl + + + dd2 + application/vnd.oma.dd2+xml + + + ddd + application/vnd.fujixerox.ddd + + + deb + application/x-debian-package + + + def + text/plain + + + deploy + application/octet-stream + + + der + application/x-x509-ca-cert + + + dfac + application/vnd.dreamfactory + + + dib + image/bmp + + + dic + text/x-c + + + dir + application/x-director + + + dis + application/vnd.mobius.dis + + + dist + application/octet-stream + + + distz + application/octet-stream + + + djv + image/vnd.djvu + + + djvu + image/vnd.djvu + + + dll + application/x-msdownload + + + dmg + application/octet-stream + + + dmp + application/vnd.tcpdump.pcap + + + dms + application/octet-stream + + + dna + application/vnd.dna + + + doc + application/msword + + + docm + application/vnd.ms-word.document.macroenabled.12 + + + docx + application/vnd.openxmlformats-officedocument.wordprocessingml.document + + + dot + application/msword + + + dotm + application/vnd.ms-word.template.macroenabled.12 + + + dotx + application/vnd.openxmlformats-officedocument.wordprocessingml.template + + + dp + application/vnd.osgi.dp + + + dpg + application/vnd.dpgraph + + + dra + audio/vnd.dra + + + dsc + text/prs.lines.tag + + + dssc + application/dssc+der + + + dtb + application/x-dtbook+xml + + + dtd + application/xml-dtd + + + dts + audio/vnd.dts + + + dtshd + audio/vnd.dts.hd + + + dump + application/octet-stream + + + dv + video/x-dv + + + dvb + video/vnd.dvb.file + + + dvi + application/x-dvi + + + dwf + model/vnd.dwf + + + dwg + image/vnd.dwg + + + dxf + image/vnd.dxf + + + dxp + application/vnd.spotfire.dxp + + + dxr + application/x-director + + + ecelp4800 + audio/vnd.nuera.ecelp4800 + + + ecelp7470 + audio/vnd.nuera.ecelp7470 + + + ecelp9600 + audio/vnd.nuera.ecelp9600 + + + ecma + application/ecmascript + + + edm + application/vnd.novadigm.edm + + + edx + application/vnd.novadigm.edx + + + efif + application/vnd.picsel + + + ei6 + application/vnd.pg.osasli + + + elc + application/octet-stream + + + eml + message/rfc822 + + + emma + application/emma+xml + + + eol + audio/vnd.digital-winds + + + eot + application/vnd.ms-fontobject + + + eps + application/postscript + + + epub + application/epub+zip + + + es3 + application/vnd.eszigno3+xml + + + esf + application/vnd.epson.esf + + + et3 + application/vnd.eszigno3+xml + + + etx + text/x-setext + + + exe + application/octet-stream + + + exi + application/exi + + + ext + application/vnd.novadigm.ext + + + ez + application/andrew-inset + + + ez2 + application/vnd.ezpix-album + + + ez3 + application/vnd.ezpix-package + + + f + text/x-fortran + + + f4v + video/x-f4v + + + f77 + text/x-fortran + + + f90 + text/x-fortran + + + fbs + image/vnd.fastbidsheet + + + fcs + application/vnd.isac.fcs + + + fdf + application/vnd.fdf + + + fe_launch + application/vnd.denovo.fcselayout-link + + + fg5 + application/vnd.fujitsu.oasysgp + + + fgd + application/x-director + + + fh + image/x-freehand + + + fh4 + image/x-freehand + + + fh5 + image/x-freehand + + + fh7 + image/x-freehand + + + fhc + image/x-freehand + + + fig + application/x-xfig + + + flac + audio/flac + + + fli + video/x-fli + + + flo + application/vnd.micrografx.flo + + + flv + video/x-flv + + + flw + application/vnd.kde.kivio + + + flx + text/vnd.fmi.flexstor + + + fly + text/vnd.fly + + + fm + application/vnd.framemaker + + + fnc + application/vnd.frogans.fnc + + + for + text/x-fortran + + + fpx + image/vnd.fpx + + + frame + application/vnd.framemaker + + + fsc + application/vnd.fsc.weblaunch + + + fst + image/vnd.fst + + + ftc + application/vnd.fluxtime.clip + + + fti + application/vnd.anser-web-funds-transfer-initiation + + + fvt + video/vnd.fvt + + + fxp + application/vnd.adobe.fxp + + + fxpl + application/vnd.adobe.fxp + + + fzs + application/vnd.fuzzysheet + + + g2w + application/vnd.geoplan + + + g3 + image/g3fax + + + g3w + application/vnd.geospace + + + gac + application/vnd.groove-account + + + gbr + application/rpki-ghostbusters + + + gdl + model/vnd.gdl + + + geo + application/vnd.dynageo + + + gex + application/vnd.geometry-explorer + + + ggb + application/vnd.geogebra.file + + + ggt + application/vnd.geogebra.tool + + + ghf + application/vnd.groove-help + + + gif + image/gif + + + gim + application/vnd.groove-identity-message + + + gmx + application/vnd.gmx + + + gnumeric + application/x-gnumeric + + + gph + application/vnd.flographit + + + gqf + application/vnd.grafeq + + + gqs + application/vnd.grafeq + + + gram + application/srgs + + + gre + application/vnd.geometry-explorer + + + grv + application/vnd.groove-injector + + + grxml + application/srgs+xml + + + gsf + application/x-font-ghostscript + + + gtar + application/x-gtar + + + gtm + application/vnd.groove-tool-message + + + gtw + model/vnd.gtw + + + gv + text/vnd.graphviz + + + gxt + application/vnd.geonext + + + gz + application/x-gzip + + + h + text/x-c + + + h261 + video/h261 + + + h263 + video/h263 + + + h264 + video/h264 + + + hal + application/vnd.hal+xml + + + hbci + application/vnd.hbci + + + hdf + application/x-hdf + + + hh + text/x-c + + + hlp + application/winhlp + + + hpgl + application/vnd.hp-hpgl + + + hpid + application/vnd.hp-hpid + + + hps + application/vnd.hp-hps + + + hqx + application/mac-binhex40 + + + htc + text/x-component + + + htke + application/vnd.kenameaapp + + + htm + text/html + + + html + text/html + + + hvd + application/vnd.yamaha.hv-dic + + + hvp + application/vnd.yamaha.hv-voice + + + hvs + application/vnd.yamaha.hv-script + + + i2g + application/vnd.intergeo + + + icc + application/vnd.iccprofile + + + ice + x-conference/x-cooltalk + + + icm + application/vnd.iccprofile + + + ico + image/x-icon + + + ics + text/calendar + + + ief + image/ief + + + ifb + text/calendar + + + ifm + application/vnd.shana.informed.formdata + + + iges + model/iges + + + igl + application/vnd.igloader + + + igm + application/vnd.insors.igm + + + igs + model/iges + + + igx + application/vnd.micrografx.igx + + + iif + application/vnd.shana.informed.interchange + + + imp + application/vnd.accpac.simply.imp + + + ims + application/vnd.ms-ims + + + in + text/plain + + + ink + application/inkml+xml + + + inkml + application/inkml+xml + + + iota + application/vnd.astraea-software.iota + + + ipfix + application/ipfix + + + ipk + application/vnd.shana.informed.package + + + irm + application/vnd.ibm.rights-management + + + irp + application/vnd.irepository.package+xml + + + iso + application/octet-stream + + + itp + application/vnd.shana.informed.formtemplate + + + ivp + application/vnd.immervision-ivp + + + ivu + application/vnd.immervision-ivu + + + jad + text/vnd.sun.j2me.app-descriptor + + + jam + application/vnd.jam + + + jar + application/java-archive + + + java + text/x-java-source + + + jisp + application/vnd.jisp + + + jlt + application/vnd.hp-jlyt + + + jnlp + application/x-java-jnlp-file + + + joda + application/vnd.joost.joda-archive + + + jpe + image/jpeg + + + jpeg + image/jpeg + + + jpg + image/jpeg + + + jpgm + video/jpm + + + jpgv + video/jpeg + + + jpm + video/jpm + + + js + application/javascript + + + jsf + text/plain + + + json + application/json + + + jspf + text/plain + + + kar + audio/midi + + + karbon + application/vnd.kde.karbon + + + kfo + application/vnd.kde.kformula + + + kia + application/vnd.kidspiration + + + kml + application/vnd.google-earth.kml+xml + + + kmz + application/vnd.google-earth.kmz + + + kne + application/vnd.kinar + + + knp + application/vnd.kinar + + + kon + application/vnd.kde.kontour + + + kpr + application/vnd.kde.kpresenter + + + kpt + application/vnd.kde.kpresenter + + + ksp + application/vnd.kde.kspread + + + ktr + application/vnd.kahootz + + + ktx + image/ktx + + + ktz + application/vnd.kahootz + + + kwd + application/vnd.kde.kword + + + kwt + application/vnd.kde.kword + + + lasxml + application/vnd.las.las+xml + + + latex + application/x-latex + + + lbd + application/vnd.llamagraphics.life-balance.desktop + + + lbe + application/vnd.llamagraphics.life-balance.exchange+xml + + + les + application/vnd.hhe.lesson-player + + + lha + application/octet-stream + + + link66 + application/vnd.route66.link66+xml + + + list + text/plain + + + list3820 + application/vnd.ibm.modcap + + + listafp + application/vnd.ibm.modcap + + + log + text/plain + + + lostxml + application/lost+xml + + + lrf + application/octet-stream + + + lrm + application/vnd.ms-lrm + + + ltf + application/vnd.frogans.ltf + + + lvp + audio/vnd.lucent.voice + + + lwp + application/vnd.lotus-wordpro + + + lzh + application/octet-stream + + + m13 + application/x-msmediaview + + + m14 + application/x-msmediaview + + + m1v + video/mpeg + + + m21 + application/mp21 + + + m2a + audio/mpeg + + + m2v + video/mpeg + + + m3a + audio/mpeg + + + m3u + audio/x-mpegurl + + + m3u8 + application/vnd.apple.mpegurl + + + m4a + audio/mp4 + + + m4b + audio/mp4 + + + m4r + audio/mp4 + + + m4u + video/vnd.mpegurl + + + m4v + video/mp4 + + + ma + application/mathematica + + + mac + image/x-macpaint + + + mads + application/mads+xml + + + mag + application/vnd.ecowin.chart + + + maker + application/vnd.framemaker + + + man + text/troff + + + mathml + application/mathml+xml + + + mb + application/mathematica + + + mbk + application/vnd.mobius.mbk + + + mbox + application/mbox + + + mc1 + application/vnd.medcalcdata + + + mcd + application/vnd.mcd + + + mcurl + text/vnd.curl.mcurl + + + mdb + application/x-msaccess + + + mdi + image/vnd.ms-modi + + + me + text/troff + + + mesh + model/mesh + + + meta4 + application/metalink4+xml + + + mets + application/mets+xml + + + mfm + application/vnd.mfmp + + + mft + application/rpki-manifest + + + mgp + application/vnd.osgeo.mapguide.package + + + mgz + application/vnd.proteus.magazine + + + mid + audio/midi + + + midi + audio/midi + + + mif + application/x-mif + + + mime + message/rfc822 + + + mj2 + video/mj2 + + + mjp2 + video/mj2 + + + mlp + application/vnd.dolby.mlp + + + mmd + application/vnd.chipnuts.karaoke-mmd + + + mmf + application/vnd.smaf + + + mmr + image/vnd.fujixerox.edmics-mmr + + + mny + application/x-msmoney + + + mobi + application/x-mobipocket-ebook + + + mods + application/mods+xml + + + mov + video/quicktime + + + movie + video/x-sgi-movie + + + mp1 + audio/mpeg + + + mp2 + audio/mpeg + + + mp21 + application/mp21 + + + mp2a + audio/mpeg + + + mp3 + audio/mpeg + + + mp4 + video/mp4 + + + mp4a + audio/mp4 + + + mp4s + application/mp4 + + + mp4v + video/mp4 + + + mpa + audio/mpeg + + + mpc + application/vnd.mophun.certificate + + + mpe + video/mpeg + + + mpeg + video/mpeg + + + mpega + audio/x-mpeg + + + mpg + video/mpeg + + + mpg4 + video/mp4 + + + mpga + audio/mpeg + + + mpkg + application/vnd.apple.installer+xml + + + mpm + application/vnd.blueice.multipass + + + mpn + application/vnd.mophun.application + + + mpp + application/vnd.ms-project + + + mpt + application/vnd.ms-project + + + mpv2 + video/mpeg2 + + + mpy + application/vnd.ibm.minipay + + + mqy + application/vnd.mobius.mqy + + + mrc + application/marc + + + mrcx + application/marcxml+xml + + + ms + text/troff + + + mscml + application/mediaservercontrol+xml + + + mseed + application/vnd.fdsn.mseed + + + mseq + application/vnd.mseq + + + msf + application/vnd.epson.msf + + + msh + model/mesh + + + msi + application/x-msdownload + + + msl + application/vnd.mobius.msl + + + msty + application/vnd.muvee.style + + + mts + model/vnd.mts + + + mus + application/vnd.musician + + + musicxml + application/vnd.recordare.musicxml+xml + + + mvb + application/x-msmediaview + + + mwf + application/vnd.mfer + + + mxf + application/mxf + + + mxl + application/vnd.recordare.musicxml + + + mxml + application/xv+xml + + + mxs + application/vnd.triscape.mxs + + + mxu + video/vnd.mpegurl + + + n-gage + application/vnd.nokia.n-gage.symbian.install + + + n3 + text/n3 + + + nb + application/mathematica + + + nbp + application/vnd.wolfram.player + + + nc + application/x-netcdf + + + ncx + application/x-dtbncx+xml + + + ngdat + application/vnd.nokia.n-gage.data + + + nlu + application/vnd.neurolanguage.nlu + + + nml + application/vnd.enliven + + + nnd + application/vnd.noblenet-directory + + + nns + application/vnd.noblenet-sealer + + + nnw + application/vnd.noblenet-web + + + npx + image/vnd.net-fpx + + + nsf + application/vnd.lotus-notes + + + oa2 + application/vnd.fujitsu.oasys2 + + + oa3 + application/vnd.fujitsu.oasys3 + + + oas + application/vnd.fujitsu.oasys + + + obd + application/x-msbinder + + + oda + application/oda + + + + odb + application/vnd.oasis.opendocument.database + + + + odc + application/vnd.oasis.opendocument.chart + + + + odf + application/vnd.oasis.opendocument.formula + + + odft + application/vnd.oasis.opendocument.formula-template + + + + odg + application/vnd.oasis.opendocument.graphics + + + + odi + application/vnd.oasis.opendocument.image + + + + odm + application/vnd.oasis.opendocument.text-master + + + + odp + application/vnd.oasis.opendocument.presentation + + + + ods + application/vnd.oasis.opendocument.spreadsheet + + + + odt + application/vnd.oasis.opendocument.text + + + oga + audio/ogg + + + ogg + audio/ogg + + + ogv + video/ogg + + + + ogx + application/ogg + + + onepkg + application/onenote + + + onetmp + application/onenote + + + onetoc + application/onenote + + + onetoc2 + application/onenote + + + opf + application/oebps-package+xml + + + oprc + application/vnd.palm + + + org + application/vnd.lotus-organizer + + + osf + application/vnd.yamaha.openscoreformat + + + osfpvg + application/vnd.yamaha.openscoreformat.osfpvg+xml + + + otc + application/vnd.oasis.opendocument.chart-template + + + otf + application/x-font-otf + + + + otg + application/vnd.oasis.opendocument.graphics-template + + + + oth + application/vnd.oasis.opendocument.text-web + + + oti + application/vnd.oasis.opendocument.image-template + + + + otp + application/vnd.oasis.opendocument.presentation-template + + + + ots + application/vnd.oasis.opendocument.spreadsheet-template + + + + ott + application/vnd.oasis.opendocument.text-template + + + oxps + application/oxps + + + oxt + application/vnd.openofficeorg.extension + + + p + text/x-pascal + + + p10 + application/pkcs10 + + + p12 + application/x-pkcs12 + + + p7b + application/x-pkcs7-certificates + + + p7c + application/pkcs7-mime + + + p7m + application/pkcs7-mime + + + p7r + application/x-pkcs7-certreqresp + + + p7s + application/pkcs7-signature + + + p8 + application/pkcs8 + + + pas + text/x-pascal + + + paw + application/vnd.pawaafile + + + pbd + application/vnd.powerbuilder6 + + + pbm + image/x-portable-bitmap + + + pcap + application/vnd.tcpdump.pcap + + + pcf + application/x-font-pcf + + + pcl + application/vnd.hp-pcl + + + pclxl + application/vnd.hp-pclxl + + + pct + image/pict + + + pcurl + application/vnd.curl.pcurl + + + pcx + image/x-pcx + + + pdb + application/vnd.palm + + + pdf + application/pdf + + + pfa + application/x-font-type1 + + + pfb + application/x-font-type1 + + + pfm + application/x-font-type1 + + + pfr + application/font-tdpfr + + + pfx + application/x-pkcs12 + + + pgm + image/x-portable-graymap + + + pgn + application/x-chess-pgn + + + pgp + application/pgp-encrypted + + + pic + image/pict + + + pict + image/pict + + + pkg + application/octet-stream + + + pki + application/pkixcmp + + + pkipath + application/pkix-pkipath + + + plb + application/vnd.3gpp.pic-bw-large + + + plc + application/vnd.mobius.plc + + + plf + application/vnd.pocketlearn + + + pls + audio/x-scpls + + + pml + application/vnd.ctc-posml + + + png + image/png + + + pnm + image/x-portable-anymap + + + pnt + image/x-macpaint + + + portpkg + application/vnd.macports.portpkg + + + pot + application/vnd.ms-powerpoint + + + potm + application/vnd.ms-powerpoint.template.macroenabled.12 + + + potx + application/vnd.openxmlformats-officedocument.presentationml.template + + + ppam + application/vnd.ms-powerpoint.addin.macroenabled.12 + + + ppd + application/vnd.cups-ppd + + + ppm + image/x-portable-pixmap + + + pps + application/vnd.ms-powerpoint + + + ppsm + application/vnd.ms-powerpoint.slideshow.macroenabled.12 + + + ppsx + application/vnd.openxmlformats-officedocument.presentationml.slideshow + + + ppt + application/vnd.ms-powerpoint + + + pptm + application/vnd.ms-powerpoint.presentation.macroenabled.12 + + + pptx + application/vnd.openxmlformats-officedocument.presentationml.presentation + + + pqa + application/vnd.palm + + + prc + application/x-mobipocket-ebook + + + pre + application/vnd.lotus-freelance + + + prf + application/pics-rules + + + ps + application/postscript + + + psb + application/vnd.3gpp.pic-bw-small + + + psd + image/vnd.adobe.photoshop + + + psf + application/x-font-linux-psf + + + pskcxml + application/pskc+xml + + + ptid + application/vnd.pvi.ptid1 + + + pub + application/x-mspublisher + + + pvb + application/vnd.3gpp.pic-bw-var + + + pwn + application/vnd.3m.post-it-notes + + + pya + audio/vnd.ms-playready.media.pya + + + pyv + video/vnd.ms-playready.media.pyv + + + qam + application/vnd.epson.quickanime + + + qbo + application/vnd.intu.qbo + + + qfx + application/vnd.intu.qfx + + + qps + application/vnd.publishare-delta-tree + + + qt + video/quicktime + + + qti + image/x-quicktime + + + qtif + image/x-quicktime + + + qwd + application/vnd.quark.quarkxpress + + + qwt + application/vnd.quark.quarkxpress + + + qxb + application/vnd.quark.quarkxpress + + + qxd + application/vnd.quark.quarkxpress + + + qxl + application/vnd.quark.quarkxpress + + + qxt + application/vnd.quark.quarkxpress + + + ra + audio/x-pn-realaudio + + + ram + audio/x-pn-realaudio + + + rar + application/x-rar-compressed + + + ras + image/x-cmu-raster + + + rcprofile + application/vnd.ipunplugged.rcprofile + + + rdf + application/rdf+xml + + + rdz + application/vnd.data-vision.rdz + + + rep + application/vnd.businessobjects + + + res + application/x-dtbresource+xml + + + rgb + image/x-rgb + + + rif + application/reginfo+xml + + + rip + audio/vnd.rip + + + rl + application/resource-lists+xml + + + rlc + image/vnd.fujixerox.edmics-rlc + + + rld + application/resource-lists-diff+xml + + + rm + application/vnd.rn-realmedia + + + rmi + audio/midi + + + rmp + audio/x-pn-realaudio-plugin + + + rms + application/vnd.jcp.javame.midlet-rms + + + rnc + application/relax-ng-compact-syntax + + + roa + application/rpki-roa + + + roff + text/troff + + + rp9 + application/vnd.cloanto.rp9 + + + rpss + application/vnd.nokia.radio-presets + + + rpst + application/vnd.nokia.radio-preset + + + rq + application/sparql-query + + + rs + application/rls-services+xml + + + rsd + application/rsd+xml + + + rss + application/rss+xml + + + rtf + application/rtf + + + rtx + text/richtext + + + s + text/x-asm + + + saf + application/vnd.yamaha.smaf-audio + + + sbml + application/sbml+xml + + + sc + application/vnd.ibm.secure-container + + + scd + application/x-msschedule + + + scm + application/vnd.lotus-screencam + + + scq + application/scvp-cv-request + + + scs + application/scvp-cv-response + + + scurl + text/vnd.curl.scurl + + + sda + application/vnd.stardivision.draw + + + sdc + application/vnd.stardivision.calc + + + sdd + application/vnd.stardivision.impress + + + sdkd + application/vnd.solent.sdkm+xml + + + sdkm + application/vnd.solent.sdkm+xml + + + sdp + application/sdp + + + sdw + application/vnd.stardivision.writer + + + see + application/vnd.seemail + + + seed + application/vnd.fdsn.seed + + + sema + application/vnd.sema + + + semd + application/vnd.semd + + + semf + application/vnd.semf + + + ser + application/java-serialized-object + + + setpay + application/set-payment-initiation + + + setreg + application/set-registration-initiation + + + sfd-hdstx + application/vnd.hydrostatix.sof-data + + + sfs + application/vnd.spotfire.sfs + + + sgl + application/vnd.stardivision.writer-global + + + sgm + text/sgml + + + sgml + text/sgml + + + sh + application/x-sh + + + shar + application/x-shar + + + shf + application/shf+xml + + + + sig + application/pgp-signature + + + silo + model/mesh + + + sis + application/vnd.symbian.install + + + sisx + application/vnd.symbian.install + + + sit + application/x-stuffit + + + sitx + application/x-stuffitx + + + skd + application/vnd.koan + + + skm + application/vnd.koan + + + skp + application/vnd.koan + + + skt + application/vnd.koan + + + sldm + application/vnd.ms-powerpoint.slide.macroenabled.12 + + + sldx + application/vnd.openxmlformats-officedocument.presentationml.slide + + + slt + application/vnd.epson.salt + + + sm + application/vnd.stepmania.stepchart + + + smf + application/vnd.stardivision.math + + + smi + application/smil+xml + + + smil + application/smil+xml + + + smzip + application/vnd.stepmania.package + + + snd + audio/basic + + + snf + application/x-font-snf + + + so + application/octet-stream + + + spc + application/x-pkcs7-certificates + + + spf + application/vnd.yamaha.smaf-phrase + + + spl + application/x-futuresplash + + + spot + text/vnd.in3d.spot + + + spp + application/scvp-vp-response + + + spq + application/scvp-vp-request + + + spx + audio/ogg + + + src + application/x-wais-source + + + sru + application/sru+xml + + + srx + application/sparql-results+xml + + + sse + application/vnd.kodak-descriptor + + + ssf + application/vnd.epson.ssf + + + ssml + application/ssml+xml + + + st + application/vnd.sailingtracker.track + + + stc + application/vnd.sun.xml.calc.template + + + std + application/vnd.sun.xml.draw.template + + + stf + application/vnd.wt.stf + + + sti + application/vnd.sun.xml.impress.template + + + stk + application/hyperstudio + + + stl + application/vnd.ms-pki.stl + + + str + application/vnd.pg.format + + + stw + application/vnd.sun.xml.writer.template + + + sub + text/vnd.dvb.subtitle + + + sus + application/vnd.sus-calendar + + + susp + application/vnd.sus-calendar + + + sv4cpio + application/x-sv4cpio + + + sv4crc + application/x-sv4crc + + + svc + application/vnd.dvb.service + + + svd + application/vnd.svd + + + svg + image/svg+xml + + + svgz + image/svg+xml + + + swa + application/x-director + + + swf + application/x-shockwave-flash + + + swi + application/vnd.aristanetworks.swi + + + sxc + application/vnd.sun.xml.calc + + + sxd + application/vnd.sun.xml.draw + + + sxg + application/vnd.sun.xml.writer.global + + + sxi + application/vnd.sun.xml.impress + + + sxm + application/vnd.sun.xml.math + + + sxw + application/vnd.sun.xml.writer + + + t + text/troff + + + taglet + application/vnd.mynfc + + + tao + application/vnd.tao.intent-module-archive + + + tar + application/x-tar + + + tcap + application/vnd.3gpp2.tcap + + + tcl + application/x-tcl + + + teacher + application/vnd.smart.teacher + + + tei + application/tei+xml + + + teicorpus + application/tei+xml + + + tex + application/x-tex + + + texi + application/x-texinfo + + + texinfo + application/x-texinfo + + + text + text/plain + + + tfi + application/thraud+xml + + + tfm + application/x-tex-tfm + + + thmx + application/vnd.ms-officetheme + + + tif + image/tiff + + + tiff + image/tiff + + + tmo + application/vnd.tmobile-livetv + + + torrent + application/x-bittorrent + + + tpl + application/vnd.groove-tool-template + + + tpt + application/vnd.trid.tpt + + + tr + text/troff + + + tra + application/vnd.trueapp + + + trm + application/x-msterminal + + + tsd + application/timestamped-data + + + tsv + text/tab-separated-values + + + ttc + application/x-font-ttf + + + ttf + application/x-font-ttf + + + ttl + text/turtle + + + twd + application/vnd.simtech-mindmapper + + + twds + application/vnd.simtech-mindmapper + + + txd + application/vnd.genomatix.tuxedo + + + txf + application/vnd.mobius.txf + + + txt + text/plain + + + u32 + application/x-authorware-bin + + + udeb + application/x-debian-package + + + ufd + application/vnd.ufdl + + + ufdl + application/vnd.ufdl + + + ulw + audio/basic + + + umj + application/vnd.umajin + + + unityweb + application/vnd.unity + + + uoml + application/vnd.uoml+xml + + + uri + text/uri-list + + + uris + text/uri-list + + + urls + text/uri-list + + + ustar + application/x-ustar + + + utz + application/vnd.uiq.theme + + + uu + text/x-uuencode + + + uva + audio/vnd.dece.audio + + + uvd + application/vnd.dece.data + + + uvf + application/vnd.dece.data + + + uvg + image/vnd.dece.graphic + + + uvh + video/vnd.dece.hd + + + uvi + image/vnd.dece.graphic + + + uvm + video/vnd.dece.mobile + + + uvp + video/vnd.dece.pd + + + uvs + video/vnd.dece.sd + + + uvt + application/vnd.dece.ttml+xml + + + uvu + video/vnd.uvvu.mp4 + + + uvv + video/vnd.dece.video + + + uvva + audio/vnd.dece.audio + + + uvvd + application/vnd.dece.data + + + uvvf + application/vnd.dece.data + + + uvvg + image/vnd.dece.graphic + + + uvvh + video/vnd.dece.hd + + + uvvi + image/vnd.dece.graphic + + + uvvm + video/vnd.dece.mobile + + + uvvp + video/vnd.dece.pd + + + uvvs + video/vnd.dece.sd + + + uvvt + application/vnd.dece.ttml+xml + + + uvvu + video/vnd.uvvu.mp4 + + + uvvv + video/vnd.dece.video + + + uvvx + application/vnd.dece.unspecified + + + uvvz + application/vnd.dece.zip + + + uvx + application/vnd.dece.unspecified + + + uvz + application/vnd.dece.zip + + + vcard + text/vcard + + + vcd + application/x-cdlink + + + vcf + text/x-vcard + + + vcg + application/vnd.groove-vcard + + + vcs + text/x-vcalendar + + + vcx + application/vnd.vcx + + + vis + application/vnd.visionary + + + viv + video/vnd.vivo + + + vor + application/vnd.stardivision.writer + + + vox + application/x-authorware-bin + + + vrml + model/vrml + + + vsd + application/vnd.visio + + + vsf + application/vnd.vsf + + + vss + application/vnd.visio + + + vst + application/vnd.visio + + + vsw + application/vnd.visio + + + vtu + model/vnd.vtu + + + vxml + application/voicexml+xml + + + w3d + application/x-director + + + wad + application/x-doom + + + wav + audio/x-wav + + + wax + audio/x-ms-wax + + + + wbmp + image/vnd.wap.wbmp + + + wbs + application/vnd.criticaltools.wbs+xml + + + wbxml + application/vnd.wap.wbxml + + + wcm + application/vnd.ms-works + + + wdb + application/vnd.ms-works + + + weba + audio/webm + + + webm + video/webm + + + webp + image/webp + + + wg + application/vnd.pmi.widget + + + wgt + application/widget + + + wks + application/vnd.ms-works + + + wm + video/x-ms-wm + + + wma + audio/x-ms-wma + + + wmd + application/x-ms-wmd + + + wmf + application/x-msmetafile + + + + wml + text/vnd.wap.wml + + + + wmlc + application/vnd.wap.wmlc + + + + wmls + text/vnd.wap.wmlscript + + + + wmlsc + application/vnd.wap.wmlscriptc + + + wmv + video/x-ms-wmv + + + wmx + video/x-ms-wmx + + + wmz + application/x-ms-wmz + + + woff + application/x-font-woff + + + wpd + application/vnd.wordperfect + + + wpl + application/vnd.ms-wpl + + + wps + application/vnd.ms-works + + + wqd + application/vnd.wqd + + + wri + application/x-mswrite + + + wrl + model/vrml + + + wsdl + application/wsdl+xml + + + wspolicy + application/wspolicy+xml + + + wtb + application/vnd.webturbo + + + wvx + video/x-ms-wvx + + + x32 + application/x-authorware-bin + + + x3d + application/vnd.hzn-3d-crossword + + + xap + application/x-silverlight-app + + + xar + application/vnd.xara + + + xbap + application/x-ms-xbap + + + xbd + application/vnd.fujixerox.docuworks.binder + + + xbm + image/x-xbitmap + + + xdf + application/xcap-diff+xml + + + xdm + application/vnd.syncml.dm+xml + + + xdp + application/vnd.adobe.xdp+xml + + + xdssc + application/dssc+xml + + + xdw + application/vnd.fujixerox.docuworks + + + xenc + application/xenc+xml + + + xer + application/patch-ops-error+xml + + + xfdf + application/vnd.adobe.xfdf + + + xfdl + application/vnd.xfdl + + + xht + application/xhtml+xml + + + xhtml + application/xhtml+xml + + + xhvml + application/xv+xml + + + xif + image/vnd.xiff + + + xla + application/vnd.ms-excel + + + xlam + application/vnd.ms-excel.addin.macroenabled.12 + + + xlc + application/vnd.ms-excel + + + xlm + application/vnd.ms-excel + + + xls + application/vnd.ms-excel + + + xlsb + application/vnd.ms-excel.sheet.binary.macroenabled.12 + + + xlsm + application/vnd.ms-excel.sheet.macroenabled.12 + + + xlsx + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + xlt + application/vnd.ms-excel + + + xltm + application/vnd.ms-excel.template.macroenabled.12 + + + xltx + application/vnd.openxmlformats-officedocument.spreadsheetml.template + + + xlw + application/vnd.ms-excel + + + xml + application/xml + + + xo + application/vnd.olpc-sugar + + + xop + application/xop+xml + + + xpi + application/x-xpinstall + + + xpm + image/x-xpixmap + + + xpr + application/vnd.is-xpr + + + xps + application/vnd.ms-xpsdocument + + + xpw + application/vnd.intercon.formnet + + + xpx + application/vnd.intercon.formnet + + + xsl + application/xml + + + xslt + application/xslt+xml + + + xsm + application/vnd.syncml+xml + + + xspf + application/xspf+xml + + + xul + application/vnd.mozilla.xul+xml + + + xvm + application/xv+xml + + + xvml + application/xv+xml + + + xwd + image/x-xwindowdump + + + xyz + chemical/x-xyz + + + yang + application/yang + + + yin + application/yin+xml + + + z + application/x-compress + + + Z + application/x-compress + + + zaz + application/vnd.zzazz.deck+xml + + + zip + application/zip + + + zir + application/vnd.zul + + + zirz + application/vnd.zul + + + zmm + application/vnd.handheld-entertainment+xml + + + + + + + + + + + + + + + + + + index.html + index.htm + index.jsp + + + diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/logs/access_log.2025-01-06" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/logs/access_log.2025-01-06" new file mode 100644 index 0000000..773f569 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/logs/access_log.2025-01-06" @@ -0,0 +1,103 @@ +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:17:59 +0800] "GET / HTTP/1.1" 200 2139 http-bio-80-exec-1 35 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:17:59 +0800] "GET /css/styles.css HTTP/1.1" 200 3191 http-bio-80-exec-3 3 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:17:59 +0800] "GET /js/axios.min.js HTTP/1.1" 200 54050 http-bio-80-exec-2 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:17:59 +0800] "GET /js/data.js HTTP/1.1" 200 5206 http-bio-80-exec-5 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:17:59 +0800] "GET /student HTTP/1.1" 404 965 http-bio-80-exec-7 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:18:00 +0800] "GET /favicon.ico HTTP/1.1" 404 973 http-bio-80-exec-8 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:18:00 +0800] "GET /student HTTP/1.1" 404 965 http-bio-80-exec-9 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:47:02 +0800] "GET /favicon.ico HTTP/1.1" 404 949 http-bio-80-exec-2 7 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:47:02 +0800] "GET /student HTTP/1.1" 404 949 http-bio-80-exec-1 96 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:47:02 +0800] "GET /student HTTP/1.1" 404 949 http-bio-80-exec-4 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:47:20 +0800] "GET /student HTTP/1.1" 404 949 http-bio-80-exec-6 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:47:20 +0800] "GET /student HTTP/1.1" 404 949 http-bio-80-exec-8 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:47:20 +0800] "GET /favicon.ico HTTP/1.1" 404 949 http-bio-80-exec-9 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:47:20 +0800] "GET /favicon.ico HTTP/1.1" 404 949 http-bio-80-exec-10 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:47:25 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-10 698 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:50:09 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-1 774 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:50:12 +0800] "GET /blog/1 HTTP/1.1" 200 116 http-bio-80-exec-3 20 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:50:26 +0800] "GET /blog?title=1 HTTP/1.1" 200 12 http-bio-80-exec-4 102 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:13 +0800] "GET /blog/1 HTTP/1.1" 200 116 http-bio-80-exec-6 17 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:50 +0800] "GET /student HTTP/1.1" 404 949 http-bio-80-exec-8 5 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:55 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-9 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:57 +0800] "GET / HTTP/1.1" 200 2139 http-bio-80-exec-10 8 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:57 +0800] "GET /css/styles.css HTTP/1.1" 200 3191 http-bio-80-exec-10 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:57 +0800] "GET /js/axios.min.js HTTP/1.1" 200 54050 http-bio-80-exec-7 3 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:57 +0800] "GET /js/data.js HTTP/1.1" 200 5193 http-bio-80-exec-4 5 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:57 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-4 4 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:57 +0800] "GET /favicon.ico HTTP/1.1" 404 949 http-bio-80-exec-7 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:57 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-7 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:53:53 +0800] "GET / HTTP/1.1" 200 2136 http-bio-80-exec-7 5 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:53:53 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-7 3 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:53:54 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-7 10 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:54:01 +0800] "GET /blog?title=%E8%BE%89%E8%BE%89 HTTP/1.1" 200 118 http-bio-80-exec-7 5 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:54:03 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-7 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:54:03 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-7 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:54:03 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-7 4 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:54:13 +0800] "GET /blog/2 HTTP/1.1" 200 119 http-bio-80-exec-7 3 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:54:37 +0800] "GET / HTTP/1.1" 200 2133 http-bio-80-exec-7 3 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:54:37 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-7 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:54:38 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-7 233 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:30 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-7 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:30 +0800] "GET /js/data.js HTTP/1.1" 200 5177 http-bio-80-exec-7 3 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:30 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-7 9 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:32 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-7 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:33 +0800] "GET / HTTP/1.1" 200 2133 http-bio-80-exec-7 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:33 +0800] "GET /css/styles.css HTTP/1.1" 200 3191 http-bio-80-exec-7 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:33 +0800] "GET /js/axios.min.js HTTP/1.1" 200 54050 http-bio-80-exec-5 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:33 +0800] "GET /js/data.js HTTP/1.1" 200 5177 http-bio-80-exec-5 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:33 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-4 4 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:33 +0800] "GET /favicon.ico HTTP/1.1" 404 949 http-bio-80-exec-4 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:33 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-4 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:35 +0800] "GET /blog/1 HTTP/1.1" 200 116 http-bio-80-exec-4 3 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:37 +0800] "PUT /blog HTTP/1.1" 200 11 http-bio-80-exec-4 47 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:38 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-4 7 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:03 +0800] "POST /blog HTTP/1.1" 200 11 http-bio-80-exec-4 5 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:04 +0800] "GET /blog HTTP/1.1" 200 337 http-bio-80-exec-4 4 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:05 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-4 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:05 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-4 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:05 +0800] "GET /blog HTTP/1.1" 200 337 http-bio-80-exec-4 4 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:05 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-4 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:05 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-4 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:05 +0800] "GET /blog HTTP/1.1" 200 337 http-bio-80-exec-4 4 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:05 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-4 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:07 +0800] "GET /blog/3 HTTP/1.1" 200 119 http-bio-80-exec-4 3 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:12 +0800] "DELETE /blog/3 HTTP/1.1" 500 4607 http-bio-80-exec-4 20 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:24 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-5 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:24 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-5 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:24 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-5 11 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:24 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-5 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:52 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-5 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:52 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-5 3 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:52 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-5 5 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:52 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-5 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:58:55 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-1 48 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:58:55 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-3 7 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:58:55 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-2 14 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:58:56 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-4 776 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:59:00 +0800] "POST /blog HTTP/1.1" 200 11 http-bio-80-exec-6 56 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:59:01 +0800] "GET /blog HTTP/1.1" 200 337 http-bio-80-exec-7 5 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:59:04 +0800] "DELETE /blog/4 HTTP/1.1" 200 11 http-bio-80-exec-8 21 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:59:05 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-9 3 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:32:36 +0800] "GET / HTTP/1.1" 200 2133 http-bio-80-exec-1 132 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:32:36 +0800] "GET /js/data.js HTTP/1.1" 200 5177 http-bio-80-exec-3 24 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:32:36 +0800] "GET /favicon.ico HTTP/1.1" 404 949 http-bio-80-exec-2 5 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:32:37 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-4 1045 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:32:37 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-5 4 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:34:27 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-8 12 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:34:27 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-10 15 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:34:53 +0800] "GET /blog?title=%E9%99%88 HTTP/1.1" 200 121 http-bio-80-exec-10 77 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:35:24 +0800] "GET /blog/1 HTTP/1.1" 200 116 http-bio-80-exec-10 8 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:35:55 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-10 12 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:35:55 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-10 7 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:36:18 +0800] "DELETE /blog/2 HTTP/1.1" 200 11 http-bio-80-exec-10 237 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:36:19 +0800] "GET /blog HTTP/1.1" 200 118 http-bio-80-exec-10 3 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:36:36 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-10 13 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:36:36 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-10 14 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:36:36 +0800] "GET /blog HTTP/1.1" 200 118 http-bio-80-exec-10 4 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:36:55 +0800] "POST /blog HTTP/1.1" 200 11 http-bio-80-exec-10 48 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:36:56 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-10 3 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:37:23 +0800] "GET /blog/5 HTTP/1.1" 200 119 http-bio-80-exec-10 4 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:38:19 +0800] "PUT /blog HTTP/1.1" 200 11 http-bio-80-exec-10 7 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:38:20 +0800] "GET /blog HTTP/1.1" 200 230 http-bio-80-exec-10 7 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:39:30 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-1 13 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:39:30 +0800] "GET /blog HTTP/1.1" 200 230 http-bio-80-exec-1 8 -- Gitee From fe7f0ff0ae4492b29480ee7112391875c4e3a0bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=94=A1=E7=8E=AE=E9=93=AD?= <2373854303@qq.com> Date: Mon, 6 Jan 2025 10:33:34 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E6=8F=90=E4=BA=A4106=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...73\274\345\220\210\347\273\203\344\271\240(\345\233\233).md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233).md" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233).md" index 724c1e7..4f1b137 100644 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233).md" +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233).md" @@ -924,7 +924,7 @@ init(); ![image-20241230173052834](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/202412301730861.png) -![image-20250106093625644](C:/Users/Administrator/AppData/Roaming/Typora/typora-user-images/image-20250106093625644.png) +![image-20250106093625644](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736130733.png) **新增博客信息请求** -- Gitee From 94c56e014917d373d53efd1aa2541603dd109d5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=94=A1=E7=8E=AE=E9=93=AD?= <2373854303@qq.com> Date: Mon, 6 Jan 2025 10:37:19 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=8F=90=E4=BA=A4106=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\347\273\203\344\271\240(\345\233\233).md" | 943 ---- .../MyBlog/.idea/.gitignore" | 8 - .../MyBlog/.idea/compiler.xml" | 16 - .../MyBlog/.idea/dataSources.xml" | 12 - .../MyBlog/.idea/encodings.xml" | 7 - .../MyBlog/.idea/jarRepositories.xml" | 20 - .../MyBlog/.idea/misc.xml" | 17 - .../MyBlog/.idea/sqldialects.xml" | 6 - .../MyBlog/pom.xml" | 103 - .../src/main/java/com/config/JdbcConfig.java" | 20 - .../main/java/com/config/MyBatisConfig.java" | 19 - .../main/java/com/config/SpringConfig.java" | 11 - .../java/com/config/SpringMvcConfig.java" | 17 - .../src/main/java/com/config/WebConfig.java" | 20 - .../java/com/controller/BlogController.java" | 55 - .../src/main/java/com/entity/Blog.java" | 15 - .../src/main/java/com/mapper/BlogMapper.java" | 33 - .../main/java/com/service/BlogService.java" | 25 - .../com/service/impl/BlogServiceImpl.java" | 53 - .../MyBlog/src/main/webapp/css/styles.css" | 128 - .../MyBlog/src/main/webapp/index.html" | 62 - .../MyBlog/src/main/webapp/js/axios.min.js" | 2 - .../MyBlog/src/main/webapp/js/book.js" | 188 - .../MyBlog/src/main/webapp/js/data.js" | 182 - .../classes/com/config/JdbcConfig.class" | Bin 890 -> 0 bytes .../classes/com/config/MyBatisConfig.class" | Bin 889 -> 0 bytes .../classes/com/config/SpringConfig.class" | Bin 591 -> 0 bytes .../classes/com/config/SpringMvcConfig.class" | Bin 1284 -> 0 bytes .../classes/com/config/WebConfig.class" | Bin 830 -> 0 bytes .../com/controller/BlogController.class" | Bin 3615 -> 0 bytes .../target/classes/com/entity/Blog.class" | Bin 2949 -> 0 bytes .../classes/com/mapper/BlogMapper.class" | Bin 1261 -> 0 bytes .../classes/com/service/BlogService.class" | Bin 510 -> 0 bytes .../com/service/impl/BlogServiceImpl.class" | Bin 2823 -> 0 bytes .../compile/default-compile/createdFiles.lst" | 10 - .../compile/default-compile/inputFiles.lst" | 10 - .../target/tomcat/conf/logging.properties" | 64 - .../target/tomcat/conf/tomcat-users.xml" | 26 - .../MyBlog/target/tomcat/conf/web.xml" | 4283 ----------------- .../target/tomcat/logs/access_log.2025-01-06" | 103 - 40 files changed, 6458 deletions(-) delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233).md" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/.gitignore" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/compiler.xml" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/dataSources.xml" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/encodings.xml" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/jarRepositories.xml" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/misc.xml" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/sqldialects.xml" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/pom.xml" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/JdbcConfig.java" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/MyBatisConfig.java" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/SpringConfig.java" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/SpringMvcConfig.java" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/WebConfig.java" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/controller/BlogController.java" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/entity/Blog.java" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/mapper/BlogMapper.java" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/service/BlogService.java" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/service/impl/BlogServiceImpl.java" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/css/styles.css" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/index.html" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/axios.min.js" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/book.js" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/data.js" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/JdbcConfig.class" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/MyBatisConfig.class" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/SpringConfig.class" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/SpringMvcConfig.class" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/WebConfig.class" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/controller/BlogController.class" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/entity/Blog.class" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/mapper/BlogMapper.class" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/service/BlogService.class" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/service/impl/BlogServiceImpl.class" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/logging.properties" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/tomcat-users.xml" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/web.xml" delete mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/logs/access_log.2025-01-06" diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233).md" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233).md" deleted file mode 100644 index 4f1b137..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233).md" +++ /dev/null @@ -1,943 +0,0 @@ -## 课堂笔记 - -#### **综合练习(四)(博客管理系统)** - -**一、准备sql数据** - -**二、设置好 Maven 并导入依赖项** - -**三、构建好项目结构** - -**四、编写 Blog 实体类、Blog 里的各种配置类** - -**五、编写 BlogMapper 接口、BlogService 接口、BlogServiceImpl 实现类** - -**六、编写 BlogController 类** - -**七、启动Tomcat** - -**八、修改前端请求页面** - -**九、浏览器 开始测试各个请求** - -## 课后作业 - -#### **综合练习(四)(博客管理系统)** - -#### **项目结构预览** - -![image-20250106093256468](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128919.png) - -#### 具体步骤 - -##### **一、准备sql数据** - -```sql -/* - Navicat Premium Dump SQL - - Source Server : mysql - Source Server Type : MySQL - Source Server Version : 80034 (8.0.34) - Source Host : localhost:3306 - Source Schema : demo - - Target Server Type : MySQL - Target Server Version : 80034 (8.0.34) - File Encoding : 65001 - - Date: 06/01/2025 08:15:18 -*/ - -SET NAMES utf8mb4; -SET FOREIGN_KEY_CHECKS = 0; - --- ---------------------------- --- Table structure for blog --- ---------------------------- -DROP TABLE IF EXISTS `blog`; -CREATE TABLE `blog` ( - `blogId` int NOT NULL AUTO_INCREMENT, - `blogTitle` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, - `blogAuthor` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, - `blogText` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, - PRIMARY KEY (`blogId`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci ROW_FORMAT = Dynamic; - --- ---------------------------- --- Records of blog --- ---------------------------- -INSERT INTO `blog` VALUES (1, '辉辉的个人博客', '刘文辉', '这是一个博客'); -INSERT INTO `blog` VALUES (2, '陈俊杰的个人博客', '陈俊杰', '这是一个博客'); - -SET FOREIGN_KEY_CHECKS = 1; -``` - -##### **二、设置好 Maven 并导入依赖项** - -**pom.xml 依赖配置文件** - -```xml - - 4.0.0 - com.jd - myBlog - war - 1.0-SNAPSHOT - - - UTF-8 - - - - - org.springframework - spring-webmvc - 5.2.25.RELEASE - - - - - org.springframework - spring-test - 5.2.25.RELEASE - - - - - org.springframework - spring-jdbc - 5.2.25.RELEASE - - - - javax.servlet - javax.servlet-api - 3.1.0 - provided - - - - com.fasterxml.jackson.core - jackson-databind - 2.9.0 - - - - - org.projectlombok - lombok - 1.18.36 - - - - org.mybatis - mybatis - 3.5.16 - - - - - com.mysql - mysql-connector-j - 8.3.0 - - - - junit - junit - 4.13.2 - test - - - - - com.alibaba - druid - 1.1.20 - - - - - - org.mybatis - mybatis-spring - 2.0.6 - - - - - - org.apache.tomcat.maven - tomcat7-maven-plugin - 2.2 - - / - 80 - utf-8 - - - - - -``` - -##### **三、构建好项目结构** - -![image-20250106093316939](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128929.png) - -##### **四、编写 Blog 实体类、config 里的各种配置类** - - **Blog 实体类** - -```java -package com.entity; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data // 自动生成 set,get,toString 方法 -@AllArgsConstructor // 自动生成 有参构造 方法 -@NoArgsConstructor // 自动生成 无参构造 方法 -public class Blog { - private int blogId; - private String blogTitle; - private String blogAuthor; - private String blogText; -} -``` - -**JdbcConfig 配置类** - -```java -package com.config; - -import com.alibaba.druid.pool.DruidDataSource; -import org.springframework.context.annotation.Bean; -import org.springframework.stereotype.Component; - -import javax.sql.DataSource; - -@Component // 声明组件 -public class JdbcConfig { - @Bean // 创建一个Bean - public DataSource dataSource(){ - DruidDataSource druidDataSource = new DruidDataSource(); - druidDataSource.setDriverClassName("com.mysql.cj.jdbc.Driver"); - druidDataSource.setUrl("jdbc:mysql:///demo"); - druidDataSource.setUsername("root"); - druidDataSource.setPassword("123456"); - return druidDataSource; - } -} -``` - -**MybatisConfig 配置类** - -```java -package com.config; - -import org.mybatis.spring.SqlSessionFactoryBean; -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Bean; -import org.springframework.stereotype.Component; - -import javax.sql.DataSource; - -@Component // 声明组件 -@MapperScan("com.mapper") // 扫包 -public class MyBatisConfig { - @Bean // 创建一个Bean - public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){ - SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); - sqlSessionFactoryBean.setDataSource(dataSource); - return sqlSessionFactoryBean; - } -} -``` - -**SpringConfig 配置类** - -```java -package com.config; - -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; - -@Configuration // 声明为配置文件 -@ComponentScan("com.service") // 扫包 -@Import({JdbcConfig.class, MyBatisConfig.class}) // 导入类 -public class SpringConfig { -} -``` - -**SpringMvcConfig 配置类** - -```java -package com.config; - -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.EnableWebMvc; -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; - -@Configuration // 声明为配置文件 -@ComponentScan("com.controller") // 扫包 -@EnableWebMvc // MVC 核心注解 -public class SpringMvcConfig implements WebMvcConfigurer { - @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) { - registry.addResourceHandler("/**").addResourceLocations("/"); - } -} -``` - -**WebConfig 配置类** - -```java -package com.config; - -import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; - -public class WebConfig extends AbstractAnnotationConfigDispatcherServletInitializer { - @Override - protected Class[] getRootConfigClasses() { - return new Class[]{SpringConfig.class}; - } - - @Override - protected Class[] getServletConfigClasses() { - return new Class[]{SpringMvcConfig.class}; - } - - @Override - protected String[] getServletMappings() { - return new String[]{"/"}; - } -} -``` - -##### **五、编写 BlogMapper 接口、BlogService 接口、BlogServiceImpl 实现类** - -**BlogMapper 接口** - -```java -package com.mapper; - -import com.entity.Blog; -import org.apache.ibatis.annotations.*; - -import java.util.List; - -@Mapper // 声明为 Mapper 配置文件 -public interface BlogMapper { - // 查询所有博客信息 - @Select("select * from blog;") - List selectAllBlogs(); - - // id 查询一个博客信息 - @Select("select * from blog where blogId = #{id};") - Blog selectOneBlogById(int id); - - // title 查询博客信息 - @Select("select * from blog where blogTitle like '%${title}%';") - List selectOneBlogByTitle(String title); - - // id 删除一个博客信息 - @Delete("delete from blog where blogId = #{id};") - int deleteOneBlog(int id); - - // 新增一个博客信息 - @Insert("insert into blog (blogTitle, blogAuthor, blogText) values (#{blogTitle},#{blogAuthor},#{blogText});") - int insertOneBlog(Blog blog); - - // 修改一个博客信息 - @Update("update blog set blogTitle= #{blogTitle},blogAuthor= #{blogAuthor}, blogText= #{blogText} where blogId = #{blogId};") - int updateOneBlog(Blog blog); -} -``` - -**BlogService 接口** - -```java -package com.service; - -import com.entity.Blog; - -import java.util.List; - -public interface BlogService { - // 查询所有博客信息 - List selectAllBlogs(); - - // id 查询一个博客信息 - Blog selectOneBlogById(int id); - - // title 查询博客信息 - List selectOneBlogByTitle(String title); - - // id 删除一个博客信息 - int deleteOneBlog(int id); - - // 新增一个博客信息 - int insertOneBlog(Blog blog); - - // 修改一个博客信息 - int updateOneBlog(Blog blog); -} -``` - -**BlogServiceImpl 实现类** - -```java -package com.service.impl; - -import com.entity.Blog; -import com.mapper.BlogMapper; -import com.service.BlogService; -import lombok.Data; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -@Data // 自动生成 set,get,toString 方法 -@Service // 声明为 Service 配置文件 -public class BlogServiceImpl implements BlogService { - @Autowired // 自动装配 - private BlogMapper blogMapper; // 注入接口 - - // 查询所有博客信息 - @Override - public List selectAllBlogs() { - return blogMapper.selectAllBlogs(); - } - - // id 查询一个博客信息 - @Override - public Blog selectOneBlogById(int id) { - return blogMapper.selectOneBlogById(id); - } - - // title 查询博客信息 - @Override - public List selectOneBlogByTitle(String title) { - return blogMapper.selectOneBlogByTitle(title); - } - - // id 删除一个博客信息 - @Override - public int deleteOneBlog(int id) { - return blogMapper.deleteOneBlog(id); - } - - // 新增一个博客信息 - @Override - public int insertOneBlog(Blog blog) { - return blogMapper.insertOneBlog(blog); - } - - // 修改一个博客信息 - @Override - public int updateOneBlog(Blog blog) { - return blogMapper.updateOneBlog(blog); - } -} -``` - -##### **六、编写 BlogController 类** - -**BlogController 类** - -```java -package com.controller; - -import com.entity.Blog; -import com.service.BlogService; -import lombok.Data; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -@Data // 自动生成 set,get,toString 方法 -@RestController // 声明为 RestController 配置文件 -@CrossOrigin // 跨域运行 -@RequestMapping("/blog") // 请求地址 - -public class BlogController { - @Autowired // 自动装配 - private BlogService blogService; // 注入接口 - - // 查询所有博客信息 - @GetMapping - public List selectAllBlogs() { - return blogService.selectAllBlogs(); - } - - // id 查询一个博客信息 - @GetMapping("/{id}") - public Blog selectOneBlogById(@PathVariable String id) { - return blogService.selectOneBlogById(Integer.parseInt(id)); - } - - // title 查询博客信息 - @GetMapping(params = "title") - public List selectOneBlogByTitle(String title) { - return blogService.selectOneBlogByTitle(title); - } - - // id 删除一个博客信息 - @DeleteMapping("/{id}") - public int deleteOneBlog(@PathVariable String id) { - return blogService.deleteOneBlog(Integer.parseInt(id)); - } - - // 新增一个博客信息 - @PostMapping - public int insertOneBlog(@RequestBody Blog blog) { - return blogService.insertOneBlog(blog); - } - - // 修改一个博客信息 - @PutMapping - public int updateOneBlog(@RequestBody Blog blog) { - return blogService.updateOneBlog(blog); - } -} -``` - -##### **七、启动Tomcat** - -![image-20250106093354463](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128936.png) - -##### **八、修改前端请求页面** - -**index.html** - -```html - - - - - - - 学生管理系统 - - - - -
- -

博客管理系统

-
- - - - -
- - - - - - - - - - - - - - - - -
ID标题作者文本操作
- -
- - - -``` - -**styles.css** - -```css -body { - font-family: Arial, sans-serif; - background-color: #e0f7fa; /* 浅蓝色背景 */ - margin: 0; - padding: 20px; -} - -.container { - max-width: 800px; - margin: 0 auto; - background: #ffffff; /* 保持白色背景,或者可以更改为更浅的蓝色 */ - padding: 20px; - box-shadow: 0 0 10px rgba(0, 123, 255, 0.1); /* 蓝色阴影 */ -} - -h1 { - text-align: center; - color: #007bff; /* 深蓝色标题 */ -} - -#search-box { - padding: 10px; - width: calc(100% - 120px); - border: 1px solid #cce5ff; /* 浅蓝色边框 */ - border-radius: 4px; - height: 18px; -} - -#add-book-btn { - padding: 10px 20px; - background-color: #007bff; /* 深蓝色按钮 */ - color: white; - border: none; - height: 40px; - border-radius: 4px; - cursor: pointer; -} - -#add-book-btn:hover { - background-color: #0056b3; /* 深一些的蓝色按钮悬停效果 */ -} - -table { - width: 100%; - border-collapse: collapse; - margin-bottom: 20px; -} - -th, td { - padding: 10px; - border: 1px solid #cce5ff; /* 浅蓝色边框 */ - text-align: center; -} - -th { - background-color: #d1ecf1; /* 浅蓝色表头背景 */ -} -tr:hover { - background-color: #e0f7fa; /* 浅蓝色高亮背景,与页面背景相近但稍浅 */ -} -.modal { - display: none; - position: fixed; - z-index: 1; - left: 0; - top: 0; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 0.4); /* 蓝色半透明背景 */ -} - -.modal-content { - background-color: #fefefe; /* 保持白色背景,或者可以更改为更浅的蓝色 */ - /* 注意:以下两行原本用于居中的代码是错误的,应该移除或更正 */ - transform: translate(60%, 40%); - /* margin应该用于.modal而不是.modal-content来实现居中 */ - padding: 35px; - border: 1px solid #cce5ff; /* 浅蓝色边框 */ - width: 40%; - box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); /* 蓝色阴影 */ - /* 为了实现.modal-content的居中,您可能需要添加额外的CSS或使用JavaScript */ -} - -/* 注意:.close-btn的颜色已经在.modal-content之外定义,如果需要更改为蓝色调,可以如下修改 */ -.close-btn { - color: #007bff; /* 深蓝色关闭按钮 */ - float: right; - font-size: 28px; - font-weight: bold; - cursor: pointer; -} - -.close-btn:hover, -.close-btn:focus { - color: #0056b3; /* 深一些的蓝色关闭按钮悬停效果 */ - text-decoration: none; - cursor: pointer; -} - -form { - display: flex; - flex-direction: column; -} - -label { - margin-bottom: 8px; - color: #007bff; /* 深蓝色标签 */ -} - -input[type="text"], input[type="hidden"] { - margin-bottom: 15px; - padding: 10px; - border: 1px solid #cce5ff; /* 浅蓝色边框 */ - border-radius: 4px; -} - -button[type="submit"] { - padding: 10px 20px; - background-color: #007bff; /* 深蓝色提交按钮 */ - color: white; - border: none; - border-radius: 4px; - cursor: pointer; -} - -button[type="submit"]:hover { - background-color: #0056b3; /* 深一些的蓝色提交按钮悬停效果 */ -} -``` - -**data.js** - -```javascript -// 私有变量 -const addBtn = document.querySelector('#add-btn'); -const modal = document.querySelector('.modal'); -const closeModalBtn = document.querySelector('#close-form-btn'); -const tbody = document.querySelector('tbody'); -const form = document.querySelector('#item-form'); -const searchBox = document.querySelector("#search-box"); -const formTitle = document.querySelector("#form-title"); - -// 表单选项 -//#######################改改改################################ -let studentId = document.querySelector("#studentId"); -let studentName = document.querySelector("#studentName"); -let classname = document.querySelector("#classname"); -let classTeacher = document.querySelector("#classTeacher"); -//############################################################# - - -let data = []; -// api接口设置 -// const API_BASE_URL = "http://localhost/book"; -const API_BASE_URL = "http://localhost/blog"; // #### 改改改 #### - -// 搜索功能 -function search(name) { - axios.get(API_BASE_URL + `?title=${name}`).then(res => { - data = res.data; - renderTable(data); - }); -} - -// 渲染表格数据 # 修改item.后面的属性名称 -function renderTable(data) { - if (data.length === 0) return alert("无内容"); - tbody.innerHTML = data.map(item => { - return ` - ${item.blogId} - ${item.blogTitle} - ${item.blogAuthor} - ${item.blogText} - - - - - `; - }).join(''); - - // 添加事件监听器(事件委托) - tbody.addEventListener('click', handleTableClick); -} - -// 更新,先回显要被修改的旧数据 -function update(id) { - axios.get(API_BASE_URL + `/${id}`).then(res => { - const data = res.data; - showOrCloseModal(); - form.reset(); - - // ########以下内容要修改########## - - // formTitle.innerText = '更新图书'; - formTitle.innerText = '更新博客'; - studentId.value = data.blogId; - studentName.value = data.blogTitle; - classname.value = data.blogAuthor; - classTeacher.value = data.blogText; - - // ######以上内容要修改##### - }); -} - - -// 处理表格点击事件 -function handleTableClick(e) { - if (e.target.classList.contains('delete-btn')) { - deleteItem(e.target.closest('tr').dataset.id); - } else if (e.target.classList.contains('update-btn')) { - update(e.target.closest('tr').dataset.id); - } -} - -// 开关浮层 -function showOrCloseModal(show = true) { - if (show) { - modal.style.display = 'block'; - } else { - modal.style.display = 'none'; - } - - studentId.value = null; // 重置当前编辑的图书ID - -} - -// 获取列表 -function fetch() { - axios.get(API_BASE_URL).then(res => { - console.log(res) - data = res.data; - renderTable(data); - }); - -} - -// 根据id删除 -function deleteItem(id) { - if (!confirm("真的要删除吗?")) return; - axios.delete(API_BASE_URL + `/${id}`).then(res => { - alert("删除成功!") - fetch(); - }); -} - - -// 点击保存按钮:添加或更新图书 -function save() { - - // 获取表单项的值######改改##### - - // 非空判断 - if (!studentName.value || !classname.value || !classTeacher.value) { - alert("所有字段都必须填写!"); - return; - } - // 表单项的值,封装成一个对象 - const item = { - blogId: studentId.value || null, // 如果为空,则视为添加新图书 - blogTitle: studentName.value, - blogAuthor: classname.value, - blogText: classTeacher.value - }; - - // 根据编号判断是添加还是更新 - if (studentId.value!='') { - axios.put(API_BASE_URL, item).then(res => { - alert("修改成功") - fetch(); - showOrCloseModal(false); - }) - } else { - axios.post(API_BASE_URL, item).then(res => { - console.log(item) - alert("添加成功") - fetch(); - showOrCloseModal(false); - }) - } - -} - - -// 初始化事件监听器 -function init() { - addBtn.addEventListener('click', () => { - form.reset(); - // formTitle.innerText = '添加图书'; - formTitle.innerText = '添加博客'; - showOrCloseModal(); - }); - - closeModalBtn.addEventListener('click', () => { - studentId.value = null; //### 初始化id - showOrCloseModal(false); - }); - - form.addEventListener('submit', (e) => { - e.preventDefault(); - save(); - }); - - searchBox.addEventListener('keyup', (e) => { - if (e.key === "Enter") { - search(searchBox.value); - searchBox.value = ''; - } - }); - - // 初始加载列表 - fetch(); -} - -// 执行初始化函数 -init(); -``` - -##### **九、浏览器 开始测试各个请求** - -**查询所有博客信息请求并渲染展示** - -![image-20250106093434569](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128943.png) - -**用 name 查询博客信息请求并渲染展示** - -![image-20250106093506695](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128948.png) - -**用 id 查询博客信息请求** - -![image-20250106093532205](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128952.png) - -**用 id 删除博客信息请求** - -![image-20250106093607926](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128955.png) - -![image-20241230173052834](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/202412301730861.png) - -![image-20250106093625644](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736130733.png) - -**新增博客信息请求** - -![image-20250106093647461](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128957.png) - -![image-20241231170531708](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20241231_1735635931.png) - -![image-20250106093709919](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128972.png) - -**修改博客信息请求** - -![image-20250106093815883](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128977.png) - -![image-20241231170614831](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20241231_1735635974.png) - -![image-20250106093828905](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128982.png) diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/.gitignore" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/.gitignore" deleted file mode 100644 index 35410ca..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/.gitignore" +++ /dev/null @@ -1,8 +0,0 @@ -# 默认忽略的文件 -/shelf/ -/workspace.xml -# 基于编辑器的 HTTP 客户端请求 -/httpRequests/ -# Datasource local storage ignored files -/dataSources/ -/dataSources.local.xml diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/compiler.xml" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/compiler.xml" deleted file mode 100644 index 1a4bf9d..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/compiler.xml" +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/dataSources.xml" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/dataSources.xml" deleted file mode 100644 index 35a8929..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/dataSources.xml" +++ /dev/null @@ -1,12 +0,0 @@ - - - - - mysql.8 - true - com.mysql.cj.jdbc.Driver - jdbc:mysql://localhost:3306 - $ProjectFileDir$ - - - \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/encodings.xml" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/encodings.xml" deleted file mode 100644 index aa00ffa..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/encodings.xml" +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/jarRepositories.xml" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/jarRepositories.xml" deleted file mode 100644 index abb532a..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/jarRepositories.xml" +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/misc.xml" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/misc.xml" deleted file mode 100644 index 79a352f..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/misc.xml" +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/sqldialects.xml" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/sqldialects.xml" deleted file mode 100644 index 56782ca..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/sqldialects.xml" +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/pom.xml" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/pom.xml" deleted file mode 100644 index b37d3ae..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/pom.xml" +++ /dev/null @@ -1,103 +0,0 @@ - - 4.0.0 - com.jd - myBlog - war - 1.0-SNAPSHOT - - - UTF-8 - - - - - org.springframework - spring-webmvc - 5.2.25.RELEASE - - - - - org.springframework - spring-test - 5.2.25.RELEASE - - - - - org.springframework - spring-jdbc - 5.2.25.RELEASE - - - - javax.servlet - javax.servlet-api - 3.1.0 - provided - - - - com.fasterxml.jackson.core - jackson-databind - 2.9.0 - - - - - org.projectlombok - lombok - 1.18.36 - - - - org.mybatis - mybatis - 3.5.16 - - - - - com.mysql - mysql-connector-j - 8.3.0 - - - - junit - junit - 4.13.2 - test - - - - - com.alibaba - druid - 1.1.20 - - - - - - org.mybatis - mybatis-spring - 2.0.6 - - - - - - org.apache.tomcat.maven - tomcat7-maven-plugin - 2.2 - - / - 80 - utf-8 - - - - - diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/JdbcConfig.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/JdbcConfig.java" deleted file mode 100644 index d379cd1..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/JdbcConfig.java" +++ /dev/null @@ -1,20 +0,0 @@ -package com.config; - -import com.alibaba.druid.pool.DruidDataSource; -import org.springframework.context.annotation.Bean; -import org.springframework.stereotype.Component; - -import javax.sql.DataSource; - -@Component // 声明组件 -public class JdbcConfig { - @Bean // 创建一个Bean - public DataSource dataSource(){ - DruidDataSource druidDataSource = new DruidDataSource(); - druidDataSource.setDriverClassName("com.mysql.cj.jdbc.Driver"); - druidDataSource.setUrl("jdbc:mysql:///demo"); - druidDataSource.setUsername("root"); - druidDataSource.setPassword("123456"); - return druidDataSource; - } -} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/MyBatisConfig.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/MyBatisConfig.java" deleted file mode 100644 index 81472cf..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/MyBatisConfig.java" +++ /dev/null @@ -1,19 +0,0 @@ -package com.config; - -import org.mybatis.spring.SqlSessionFactoryBean; -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.context.annotation.Bean; -import org.springframework.stereotype.Component; - -import javax.sql.DataSource; - -@Component // 声明组件 -@MapperScan("com.mapper") // 扫包 -public class MyBatisConfig { - @Bean // 创建一个Bean - public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){ - SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); - sqlSessionFactoryBean.setDataSource(dataSource); - return sqlSessionFactoryBean; - } -} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/SpringConfig.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/SpringConfig.java" deleted file mode 100644 index 3047958..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/SpringConfig.java" +++ /dev/null @@ -1,11 +0,0 @@ -package com.config; - -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Import; - -@Configuration // 声明为配置文件 -@ComponentScan("com.service") // 扫包 -@Import({JdbcConfig.class, MyBatisConfig.class}) // 导入类 -public class SpringConfig { -} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/SpringMvcConfig.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/SpringMvcConfig.java" deleted file mode 100644 index 7c074af..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/SpringMvcConfig.java" +++ /dev/null @@ -1,17 +0,0 @@ -package com.config; - -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.EnableWebMvc; -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; - -@Configuration // 声明为配置文件 -@ComponentScan("com.controller") // 扫包 -@EnableWebMvc // MVC 核心注解 -public class SpringMvcConfig implements WebMvcConfigurer { - @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) { - registry.addResourceHandler("/**").addResourceLocations("/"); - } -} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/WebConfig.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/WebConfig.java" deleted file mode 100644 index 8d00677..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/WebConfig.java" +++ /dev/null @@ -1,20 +0,0 @@ -package com.config; - -import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; - -public class WebConfig extends AbstractAnnotationConfigDispatcherServletInitializer { - @Override - protected Class[] getRootConfigClasses() { - return new Class[]{SpringConfig.class}; - } - - @Override - protected Class[] getServletConfigClasses() { - return new Class[]{SpringMvcConfig.class}; - } - - @Override - protected String[] getServletMappings() { - return new String[]{"/"}; - } -} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/controller/BlogController.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/controller/BlogController.java" deleted file mode 100644 index ca9934d..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/controller/BlogController.java" +++ /dev/null @@ -1,55 +0,0 @@ -package com.controller; - -import com.entity.Blog; -import com.service.BlogService; -import lombok.Data; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -import java.util.List; - -@Data // 自动生成 set,get,toString 方法 -@RestController // 声明为 RestController 配置文件 -@CrossOrigin // 跨域运行 -@RequestMapping("/blog") // 请求地址 - -public class BlogController { - @Autowired // 自动装配 - private BlogService blogService; // 注入接口 - - // 查询所有博客信息 - @GetMapping - public List selectAllBlogs() { - return blogService.selectAllBlogs(); - } - - // id 查询一个博客信息 - @GetMapping("/{id}") - public Blog selectOneBlogById(@PathVariable String id) { - return blogService.selectOneBlogById(Integer.parseInt(id)); - } - - // title 查询博客信息 - @GetMapping(params = "title") - public List selectOneBlogByTitle(String title) { - return blogService.selectOneBlogByTitle(title); - } - - // id 删除一个博客信息 - @DeleteMapping("/{id}") - public int deleteOneBlog(@PathVariable String id) { - return blogService.deleteOneBlog(Integer.parseInt(id)); - } - - // 新增一个博客信息 - @PostMapping - public int insertOneBlog(@RequestBody Blog blog) { - return blogService.insertOneBlog(blog); - } - - // 修改一个博客信息 - @PutMapping - public int updateOneBlog(@RequestBody Blog blog) { - return blogService.updateOneBlog(blog); - } -} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/entity/Blog.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/entity/Blog.java" deleted file mode 100644 index dcf5906..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/entity/Blog.java" +++ /dev/null @@ -1,15 +0,0 @@ -package com.entity; - -import lombok.AllArgsConstructor; -import lombok.Data; -import lombok.NoArgsConstructor; - -@Data // 自动生成 set,get,toString 方法 -@AllArgsConstructor // 自动生成 有参构造 方法 -@NoArgsConstructor // 自动生成 无参构造 方法 -public class Blog { - private int blogId; - private String blogTitle; - private String blogAuthor; - private String blogText; -} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/mapper/BlogMapper.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/mapper/BlogMapper.java" deleted file mode 100644 index 7df0e32..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/mapper/BlogMapper.java" +++ /dev/null @@ -1,33 +0,0 @@ -package com.mapper; - -import com.entity.Blog; -import org.apache.ibatis.annotations.*; - -import java.util.List; - -@Mapper // 声明为 Mapper 配置文件 -public interface BlogMapper { - // 查询所有博客信息 - @Select("select * from blog;") - List selectAllBlogs(); - - // id 查询一个博客信息 - @Select("select * from blog where blogId = #{id};") - Blog selectOneBlogById(int id); - - // title 查询博客信息 - @Select("select * from blog where blogTitle like '%${title}%';") - List selectOneBlogByTitle(String title); - - // id 删除一个博客信息 - @Delete("delete from blog where blogId = #{id};") - int deleteOneBlog(int id); - - // 新增一个博客信息 - @Insert("insert into blog (blogTitle, blogAuthor, blogText) values (#{blogTitle},#{blogAuthor},#{blogText});") - int insertOneBlog(Blog blog); - - // 修改一个博客信息 - @Update("update blog set blogTitle= #{blogTitle},blogAuthor= #{blogAuthor}, blogText= #{blogText} where blogId = #{blogId};") - int updateOneBlog(Blog blog); -} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/service/BlogService.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/service/BlogService.java" deleted file mode 100644 index 28e72ec..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/service/BlogService.java" +++ /dev/null @@ -1,25 +0,0 @@ -package com.service; - -import com.entity.Blog; - -import java.util.List; - -public interface BlogService { - // 查询所有博客信息 - List selectAllBlogs(); - - // id 查询一个博客信息 - Blog selectOneBlogById(int id); - - // title 查询博客信息 - List selectOneBlogByTitle(String title); - - // id 删除一个博客信息 - int deleteOneBlog(int id); - - // 新增一个博客信息 - int insertOneBlog(Blog blog); - - // 修改一个博客信息 - int updateOneBlog(Blog blog); -} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/service/impl/BlogServiceImpl.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/service/impl/BlogServiceImpl.java" deleted file mode 100644 index 9d140f7..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/service/impl/BlogServiceImpl.java" +++ /dev/null @@ -1,53 +0,0 @@ -package com.service.impl; - -import com.entity.Blog; -import com.mapper.BlogMapper; -import com.service.BlogService; -import lombok.Data; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.List; - -@Data // 自动生成 set,get,toString 方法 -@Service // 声明为 Service 配置文件 -public class BlogServiceImpl implements BlogService { - @Autowired // 自动装配 - private BlogMapper blogMapper; // 注入接口 - - // 查询所有博客信息 - @Override - public List selectAllBlogs() { - return blogMapper.selectAllBlogs(); - } - - // id 查询一个博客信息 - @Override - public Blog selectOneBlogById(int id) { - return blogMapper.selectOneBlogById(id); - } - - // title 查询博客信息 - @Override - public List selectOneBlogByTitle(String title) { - return blogMapper.selectOneBlogByTitle(title); - } - - // id 删除一个博客信息 - @Override - public int deleteOneBlog(int id) { - return blogMapper.deleteOneBlog(id); - } - - // 新增一个博客信息 - @Override - public int insertOneBlog(Blog blog) { - return blogMapper.insertOneBlog(blog); - } - - // 修改一个博客信息 - @Override - public int updateOneBlog(Blog blog) { - return blogMapper.updateOneBlog(blog); - } -} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/css/styles.css" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/css/styles.css" deleted file mode 100644 index fb397cd..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/css/styles.css" +++ /dev/null @@ -1,128 +0,0 @@ -body { - font-family: Arial, sans-serif; - background-color: #e0f7fa; /* 浅蓝色背景 */ - margin: 0; - padding: 20px; -} - -.container { - max-width: 800px; - margin: 0 auto; - background: #ffffff; /* 保持白色背景,或者可以更改为更浅的蓝色 */ - padding: 20px; - box-shadow: 0 0 10px rgba(0, 123, 255, 0.1); /* 蓝色阴影 */ -} - -h1 { - text-align: center; - color: #007bff; /* 深蓝色标题 */ -} - -#search-box { - padding: 10px; - width: calc(100% - 120px); - border: 1px solid #cce5ff; /* 浅蓝色边框 */ - border-radius: 4px; - height: 18px; -} - -#add-book-btn { - padding: 10px 20px; - background-color: #007bff; /* 深蓝色按钮 */ - color: white; - border: none; - height: 40px; - border-radius: 4px; - cursor: pointer; -} - -#add-book-btn:hover { - background-color: #0056b3; /* 深一些的蓝色按钮悬停效果 */ -} - -table { - width: 100%; - border-collapse: collapse; - margin-bottom: 20px; -} - -th, td { - padding: 10px; - border: 1px solid #cce5ff; /* 浅蓝色边框 */ - text-align: center; -} - -th { - background-color: #d1ecf1; /* 浅蓝色表头背景 */ -} -tr:hover { - background-color: #e0f7fa; /* 浅蓝色高亮背景,与页面背景相近但稍浅 */ -} -.modal { - display: none; - position: fixed; - z-index: 1; - left: 0; - top: 0; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 0.4); /* 蓝色半透明背景 */ -} - -.modal-content { - background-color: #fefefe; /* 保持白色背景,或者可以更改为更浅的蓝色 */ - /* 注意:以下两行原本用于居中的代码是错误的,应该移除或更正 */ - transform: translate(60%, 40%); - /* margin应该用于.modal而不是.modal-content来实现居中 */ - padding: 35px; - border: 1px solid #cce5ff; /* 浅蓝色边框 */ - width: 40%; - box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); /* 蓝色阴影 */ - /* 为了实现.modal-content的居中,您可能需要添加额外的CSS或使用JavaScript */ -} - -/* 注意:.close-btn的颜色已经在.modal-content之外定义,如果需要更改为蓝色调,可以如下修改 */ -.close-btn { - color: #007bff; /* 深蓝色关闭按钮 */ - float: right; - font-size: 28px; - font-weight: bold; - cursor: pointer; -} - -.close-btn:hover, -.close-btn:focus { - color: #0056b3; /* 深一些的蓝色关闭按钮悬停效果 */ - text-decoration: none; - cursor: pointer; -} - -form { - display: flex; - flex-direction: column; -} - -label { - margin-bottom: 8px; - color: #007bff; /* 深蓝色标签 */ -} - -input[type="text"], input[type="hidden"] { - margin-bottom: 15px; - padding: 10px; - border: 1px solid #cce5ff; /* 浅蓝色边框 */ - border-radius: 4px; -} - -button[type="submit"] { - padding: 10px 20px; - background-color: #007bff; /* 深蓝色提交按钮 */ - color: white; - border: none; - border-radius: 4px; - cursor: pointer; -} - -button[type="submit"]:hover { - background-color: #0056b3; /* 深一些的蓝色提交按钮悬停效果 */ -} \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/index.html" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/index.html" deleted file mode 100644 index 953d54d..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/index.html" +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - 学生管理系统 - - - - -
- -

博客管理系统

-
- - - - -
- - - - - - - - - - - - - - - - -
ID标题作者文本操作
- -
- - - \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/axios.min.js" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/axios.min.js" deleted file mode 100644 index 0ac6c50..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/axios.min.js" +++ /dev/null @@ -1,2 +0,0 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).axios=t()}(this,(function(){"use strict";function e(e){var r,n;function o(r,n){try{var a=e[r](n),u=a.value,s=u instanceof t;Promise.resolve(s?u.v:u).then((function(t){if(s){var n="return"===r?"return":"next";if(!u.k||t.done)return o(n,t);t=e[n](t).value}i(a.done?"return":"normal",t)}),(function(e){o("throw",e)}))}catch(e){i("throw",e)}}function i(e,t){switch(e){case"return":r.resolve({value:t,done:!0});break;case"throw":r.reject(t);break;default:r.resolve({value:t,done:!1})}(r=r.next)?o(r.key,r.arg):n=null}this._invoke=function(e,t){return new Promise((function(i,a){var u={key:e,arg:t,resolve:i,reject:a,next:null};n?n=n.next=u:(r=n=u,o(e,t))}))},"function"!=typeof e.return&&(this.return=void 0)}function t(e,t){this.v=e,this.k=t}function r(e){var r={},n=!1;function o(r,o){return n=!0,o=new Promise((function(t){t(e[r](o))})),{done:!1,value:new t(o,1)}}return r["undefined"!=typeof Symbol&&Symbol.iterator||"@@iterator"]=function(){return this},r.next=function(e){return n?(n=!1,e):o("next",e)},"function"==typeof e.throw&&(r.throw=function(e){if(n)throw n=!1,e;return o("throw",e)}),"function"==typeof e.return&&(r.return=function(e){return n?(n=!1,e):o("return",e)}),r}function n(e){var t,r,n,i=2;for("undefined"!=typeof Symbol&&(r=Symbol.asyncIterator,n=Symbol.iterator);i--;){if(r&&null!=(t=e[r]))return t.call(e);if(n&&null!=(t=e[n]))return new o(t.call(e));r="@@asyncIterator",n="@@iterator"}throw new TypeError("Object is not async iterable")}function o(e){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var t=e.done;return Promise.resolve(e.value).then((function(e){return{value:e,done:t}}))}return o=function(e){this.s=e,this.n=e.next},o.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var r=this.s.return;return void 0===r?Promise.resolve({value:e,done:!0}):t(r.apply(this.s,arguments))},throw:function(e){var r=this.s.return;return void 0===r?Promise.reject(e):t(r.apply(this.s,arguments))}},new o(e)}function i(e){return new t(e,0)}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function u(e){for(var t=1;t=0;--i){var a=this.tryEntries[i],u=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var s=n.call(a,"catchLoc"),c=n.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),A(r),y}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;A(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:L(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),y}},t}function c(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}function f(e){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f(e)}function l(t){return function(){return new e(t.apply(this,arguments))}}function p(e,t,r,n,o,i,a){try{var u=e[i](a),s=u.value}catch(e){return void r(e)}u.done?t(s):Promise.resolve(s).then(n,o)}function h(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(e){p(i,n,o,a,u,"next",e)}function u(e){p(i,n,o,a,u,"throw",e)}a(void 0)}))}}function d(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function v(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r2&&void 0!==arguments[2]?arguments[2]:{},i=o.allOwnKeys,a=void 0!==i&&i;if(null!=e)if("object"!==f(e)&&(e=[e]),N(e))for(r=0,n=e.length;r0;)if(t===(r=n[o]).toLowerCase())return r;return null}var Q="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,Z=function(e){return!_(e)&&e!==Q};var ee,te=(ee="undefined"!=typeof Uint8Array&&j(Uint8Array),function(e){return ee&&e instanceof ee}),re=P("HTMLFormElement"),ne=function(e){var t=Object.prototype.hasOwnProperty;return function(e,r){return t.call(e,r)}}(),oe=P("RegExp"),ie=function(e,t){var r=Object.getOwnPropertyDescriptors(e),n={};$(r,(function(r,o){var i;!1!==(i=t(r,o,e))&&(n[o]=i||r)})),Object.defineProperties(e,n)},ae="abcdefghijklmnopqrstuvwxyz",ue="0123456789",se={DIGIT:ue,ALPHA:ae,ALPHA_DIGIT:ae+ae.toUpperCase()+ue};var ce,fe,le,pe,he=P("AsyncFunction"),de=(ce="function"==typeof setImmediate,fe=U(Q.postMessage),ce?setImmediate:fe?(le="axios@".concat(Math.random()),pe=[],Q.addEventListener("message",(function(e){var t=e.source,r=e.data;t===Q&&r===le&&pe.length&&pe.shift()()}),!1),function(e){pe.push(e),Q.postMessage(le,"*")}):function(e){return setTimeout(e)}),ve="undefined"!=typeof queueMicrotask?queueMicrotask.bind(Q):"undefined"!=typeof process&&process.nextTick||de,ye={isArray:N,isArrayBuffer:C,isBuffer:function(e){return null!==e&&!_(e)&&null!==e.constructor&&!_(e.constructor)&&U(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:function(e){var t;return e&&("function"==typeof FormData&&e instanceof FormData||U(e.append)&&("formdata"===(t=A(e))||"object"===t&&U(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&C(e.buffer)},isString:F,isNumber:B,isBoolean:function(e){return!0===e||!1===e},isObject:D,isPlainObject:I,isReadableStream:G,isRequest:K,isResponse:V,isHeaders:X,isUndefined:_,isDate:q,isFile:M,isBlob:z,isRegExp:oe,isFunction:U,isStream:function(e){return D(e)&&U(e.pipe)},isURLSearchParams:J,isTypedArray:te,isFileList:H,forEach:$,merge:function e(){for(var t=Z(this)&&this||{},r=t.caseless,n={},o=function(t,o){var i=r&&Y(n,o)||o;I(n[i])&&I(t)?n[i]=e(n[i],t):I(t)?n[i]=e({},t):N(t)?n[i]=t.slice():n[i]=t},i=0,a=arguments.length;i3&&void 0!==arguments[3]?arguments[3]:{},o=n.allOwnKeys;return $(t,(function(t,n){r&&U(t)?e[n]=R(t,r):e[n]=t}),{allOwnKeys:o}),e},trim:function(e){return e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},stripBOM:function(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e},inherits:function(e,t,r,n){e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},toFlatObject:function(e,t,r,n){var o,i,a,u={};if(t=t||{},null==e)return t;do{for(i=(o=Object.getOwnPropertyNames(e)).length;i-- >0;)a=o[i],n&&!n(a,e,t)||u[a]||(t[a]=e[a],u[a]=!0);e=!1!==r&&j(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},kindOf:A,kindOfTest:P,endsWith:function(e,t,r){e=String(e),(void 0===r||r>e.length)&&(r=e.length),r-=t.length;var n=e.indexOf(t,r);return-1!==n&&n===r},toArray:function(e){if(!e)return null;if(N(e))return e;var t=e.length;if(!B(t))return null;for(var r=new Array(t);t-- >0;)r[t]=e[t];return r},forEachEntry:function(e,t){for(var r,n=(e&&e[Symbol.iterator]).call(e);(r=n.next())&&!r.done;){var o=r.value;t.call(e,o[0],o[1])}},matchAll:function(e,t){for(var r,n=[];null!==(r=e.exec(t));)n.push(r);return n},isHTMLForm:re,hasOwnProperty:ne,hasOwnProp:ne,reduceDescriptors:ie,freezeMethods:function(e){ie(e,(function(t,r){if(U(e)&&-1!==["arguments","caller","callee"].indexOf(r))return!1;var n=e[r];U(n)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=function(){throw Error("Can not rewrite read-only method '"+r+"'")}))}))},toObjectSet:function(e,t){var r={},n=function(e){e.forEach((function(e){r[e]=!0}))};return N(e)?n(e):n(String(e).split(t)),r},toCamelCase:function(e){return e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,r){return t.toUpperCase()+r}))},noop:function(){},toFiniteNumber:function(e,t){return null!=e&&Number.isFinite(e=+e)?e:t},findKey:Y,global:Q,isContextDefined:Z,ALPHABET:se,generateString:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:se.ALPHA_DIGIT,r="",n=t.length;e--;)r+=t[Math.random()*n|0];return r},isSpecCompliantForm:function(e){return!!(e&&U(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:function(e){var t=new Array(10);return function e(r,n){if(D(r)){if(t.indexOf(r)>=0)return;if(!("toJSON"in r)){t[n]=r;var o=N(r)?[]:{};return $(r,(function(t,r){var i=e(t,n+1);!_(i)&&(o[r]=i)})),t[n]=void 0,o}}return r}(e,0)},isAsyncFn:he,isThenable:function(e){return e&&(D(e)||U(e))&&U(e.then)&&U(e.catch)},setImmediate:de,asap:ve};function me(e,t,r,n,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),o&&(this.response=o,this.status=o.status?o.status:null)}ye.inherits(me,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:ye.toJSONObject(this.config),code:this.code,status:this.status}}});var be=me.prototype,ge={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((function(e){ge[e]={value:e}})),Object.defineProperties(me,ge),Object.defineProperty(be,"isAxiosError",{value:!0}),me.from=function(e,t,r,n,o,i){var a=Object.create(be);return ye.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(function(e){return"isAxiosError"!==e})),me.call(a,e.message,t,r,n,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};function we(e){return ye.isPlainObject(e)||ye.isArray(e)}function Ee(e){return ye.endsWith(e,"[]")?e.slice(0,-2):e}function Oe(e,t,r){return e?e.concat(t).map((function(e,t){return e=Ee(e),!r&&t?"["+e+"]":e})).join(r?".":""):t}var Se=ye.toFlatObject(ye,{},null,(function(e){return/^is[A-Z]/.test(e)}));function xe(e,t,r){if(!ye.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;var n=(r=ye.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!ye.isUndefined(t[e])}))).metaTokens,o=r.visitor||c,i=r.dots,a=r.indexes,u=(r.Blob||"undefined"!=typeof Blob&&Blob)&&ye.isSpecCompliantForm(t);if(!ye.isFunction(o))throw new TypeError("visitor must be a function");function s(e){if(null===e)return"";if(ye.isDate(e))return e.toISOString();if(!u&&ye.isBlob(e))throw new me("Blob is not supported. Use a Buffer instead.");return ye.isArrayBuffer(e)||ye.isTypedArray(e)?u&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function c(e,r,o){var u=e;if(e&&!o&&"object"===f(e))if(ye.endsWith(r,"{}"))r=n?r:r.slice(0,-2),e=JSON.stringify(e);else if(ye.isArray(e)&&function(e){return ye.isArray(e)&&!e.some(we)}(e)||(ye.isFileList(e)||ye.endsWith(r,"[]"))&&(u=ye.toArray(e)))return r=Ee(r),u.forEach((function(e,n){!ye.isUndefined(e)&&null!==e&&t.append(!0===a?Oe([r],n,i):null===a?r:r+"[]",s(e))})),!1;return!!we(e)||(t.append(Oe(o,r,i),s(e)),!1)}var l=[],p=Object.assign(Se,{defaultVisitor:c,convertValue:s,isVisitable:we});if(!ye.isObject(e))throw new TypeError("data must be an object");return function e(r,n){if(!ye.isUndefined(r)){if(-1!==l.indexOf(r))throw Error("Circular reference detected in "+n.join("."));l.push(r),ye.forEach(r,(function(r,i){!0===(!(ye.isUndefined(r)||null===r)&&o.call(t,r,ye.isString(i)?i.trim():i,n,p))&&e(r,n?n.concat(i):[i])})),l.pop()}}(e),t}function Re(e){var t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function Te(e,t){this._pairs=[],e&&xe(e,this,t)}var ke=Te.prototype;function je(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Ae(e,t,r){if(!t)return e;var n=r&&r.encode||je;ye.isFunction(r)&&(r={serialize:r});var o,i=r&&r.serialize;if(o=i?i(t,r):ye.isURLSearchParams(t)?t.toString():new Te(t,r).toString(n)){var a=e.indexOf("#");-1!==a&&(e=e.slice(0,a)),e+=(-1===e.indexOf("?")?"?":"&")+o}return e}ke.append=function(e,t){this._pairs.push([e,t])},ke.toString=function(e){var t=e?function(t){return e.call(this,t,Re)}:Re;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var Pe=function(){function e(){d(this,e),this.handlers=[]}return y(e,[{key:"use",value:function(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1}},{key:"eject",value:function(e){this.handlers[e]&&(this.handlers[e]=null)}},{key:"clear",value:function(){this.handlers&&(this.handlers=[])}},{key:"forEach",value:function(e){ye.forEach(this.handlers,(function(t){null!==t&&e(t)}))}}]),e}(),Le={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Ne={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:Te,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},_e="undefined"!=typeof window&&"undefined"!=typeof document,Ce="object"===("undefined"==typeof navigator?"undefined":f(navigator))&&navigator||void 0,Fe=_e&&(!Ce||["ReactNative","NativeScript","NS"].indexOf(Ce.product)<0),Ue="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,Be=_e&&window.location.href||"http://localhost",De=u(u({},Object.freeze({__proto__:null,hasBrowserEnv:_e,hasStandardBrowserWebWorkerEnv:Ue,hasStandardBrowserEnv:Fe,navigator:Ce,origin:Be})),Ne);function Ie(e){function t(e,r,n,o){var i=e[o++];if("__proto__"===i)return!0;var a=Number.isFinite(+i),u=o>=e.length;return i=!i&&ye.isArray(n)?n.length:i,u?(ye.hasOwnProp(n,i)?n[i]=[n[i],r]:n[i]=r,!a):(n[i]&&ye.isObject(n[i])||(n[i]=[]),t(e,r,n[i],o)&&ye.isArray(n[i])&&(n[i]=function(e){var t,r,n={},o=Object.keys(e),i=o.length;for(t=0;t-1,i=ye.isObject(e);if(i&&ye.isHTMLForm(e)&&(e=new FormData(e)),ye.isFormData(e))return o?JSON.stringify(Ie(e)):e;if(ye.isArrayBuffer(e)||ye.isBuffer(e)||ye.isStream(e)||ye.isFile(e)||ye.isBlob(e)||ye.isReadableStream(e))return e;if(ye.isArrayBufferView(e))return e.buffer;if(ye.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();if(i){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return xe(e,new De.classes.URLSearchParams,Object.assign({visitor:function(e,t,r,n){return De.isNode&&ye.isBuffer(e)?(this.append(t,e.toString("base64")),!1):n.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((r=ye.isFileList(e))||n.indexOf("multipart/form-data")>-1){var a=this.env&&this.env.FormData;return xe(r?{"files[]":e}:e,a&&new a,this.formSerializer)}}return i||o?(t.setContentType("application/json",!1),function(e,t,r){if(ye.isString(e))try{return(t||JSON.parse)(e),ye.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(r||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional||qe.transitional,r=t&&t.forcedJSONParsing,n="json"===this.responseType;if(ye.isResponse(e)||ye.isReadableStream(e))return e;if(e&&ye.isString(e)&&(r&&!this.responseType||n)){var o=!(t&&t.silentJSONParsing)&&n;try{return JSON.parse(e)}catch(e){if(o){if("SyntaxError"===e.name)throw me.from(e,me.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:De.classes.FormData,Blob:De.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};ye.forEach(["delete","get","head","post","put","patch"],(function(e){qe.headers[e]={}}));var Me=qe,ze=ye.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),He=Symbol("internals");function Je(e){return e&&String(e).trim().toLowerCase()}function We(e){return!1===e||null==e?e:ye.isArray(e)?e.map(We):String(e)}function Ge(e,t,r,n,o){return ye.isFunction(n)?n.call(this,t,r):(o&&(t=r),ye.isString(t)?ye.isString(n)?-1!==t.indexOf(n):ye.isRegExp(n)?n.test(t):void 0:void 0)}var Ke=function(e,t){function r(e){d(this,r),e&&this.set(e)}return y(r,[{key:"set",value:function(e,t,r){var n=this;function o(e,t,r){var o=Je(t);if(!o)throw new Error("header name must be a non-empty string");var i=ye.findKey(n,o);(!i||void 0===n[i]||!0===r||void 0===r&&!1!==n[i])&&(n[i||t]=We(e))}var i=function(e,t){return ye.forEach(e,(function(e,r){return o(e,r,t)}))};if(ye.isPlainObject(e)||e instanceof this.constructor)i(e,t);else if(ye.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))i(function(e){var t,r,n,o={};return e&&e.split("\n").forEach((function(e){n=e.indexOf(":"),t=e.substring(0,n).trim().toLowerCase(),r=e.substring(n+1).trim(),!t||o[t]&&ze[t]||("set-cookie"===t?o[t]?o[t].push(r):o[t]=[r]:o[t]=o[t]?o[t]+", "+r:r)})),o}(e),t);else if(ye.isHeaders(e)){var a,u=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=O(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){u=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(e.entries());try{for(u.s();!(a=u.n()).done;){var s=b(a.value,2),c=s[0];o(s[1],c,r)}}catch(e){u.e(e)}finally{u.f()}}else null!=e&&o(t,e,r);return this}},{key:"get",value:function(e,t){if(e=Je(e)){var r=ye.findKey(this,e);if(r){var n=this[r];if(!t)return n;if(!0===t)return function(e){for(var t,r=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;t=n.exec(e);)r[t[1]]=t[2];return r}(n);if(ye.isFunction(t))return t.call(this,n,r);if(ye.isRegExp(t))return t.exec(n);throw new TypeError("parser must be boolean|regexp|function")}}}},{key:"has",value:function(e,t){if(e=Je(e)){var r=ye.findKey(this,e);return!(!r||void 0===this[r]||t&&!Ge(0,this[r],r,t))}return!1}},{key:"delete",value:function(e,t){var r=this,n=!1;function o(e){if(e=Je(e)){var o=ye.findKey(r,e);!o||t&&!Ge(0,r[o],o,t)||(delete r[o],n=!0)}}return ye.isArray(e)?e.forEach(o):o(e),n}},{key:"clear",value:function(e){for(var t=Object.keys(this),r=t.length,n=!1;r--;){var o=t[r];e&&!Ge(0,this[o],o,e,!0)||(delete this[o],n=!0)}return n}},{key:"normalize",value:function(e){var t=this,r={};return ye.forEach(this,(function(n,o){var i=ye.findKey(r,o);if(i)return t[i]=We(n),void delete t[o];var a=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(function(e,t,r){return t.toUpperCase()+r}))}(o):String(o).trim();a!==o&&delete t[o],t[a]=We(n),r[a]=!0})),this}},{key:"concat",value:function(){for(var e,t=arguments.length,r=new Array(t),n=0;n1?r-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:Date.now();o=i,r=null,n&&(clearTimeout(n),n=null),e.apply(null,t)};return[function(){for(var e=Date.now(),t=e-o,u=arguments.length,s=new Array(u),c=0;c=i?a(s,e):(r=s,n||(n=setTimeout((function(){n=null,a(r)}),i-t)))},function(){return r&&a(r)}]}ye.inherits(Ye,me,{__CANCEL__:!0});var tt=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:3,n=0,o=Ze(50,250);return et((function(r){var i=r.loaded,a=r.lengthComputable?r.total:void 0,u=i-n,s=o(u);n=i;var c=m({loaded:i,total:a,progress:a?i/a:void 0,bytes:u,rate:s||void 0,estimated:s&&a&&i<=a?(a-i)/s:void 0,event:r,lengthComputable:null!=a},t?"download":"upload",!0);e(c)}),r)},rt=function(e,t){var r=null!=e;return[function(n){return t[0]({lengthComputable:r,total:e,loaded:n})},t[1]]},nt=function(e){return function(){for(var t=arguments.length,r=new Array(t),n=0;n1?t-1:0),n=1;n1?"since :\n"+u.map(At).join("\n"):" "+At(u[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return r};function Nt(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ye(null,e)}function _t(e){return Nt(e),e.headers=Ve.from(e.headers),e.data=Xe.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Lt(e.adapter||Me.adapter)(e).then((function(t){return Nt(e),t.data=Xe.call(e,e.transformResponse,t),t.headers=Ve.from(t.headers),t}),(function(t){return $e(t)||(Nt(e),t&&t.response&&(t.response.data=Xe.call(e,e.transformResponse,t.response),t.response.headers=Ve.from(t.response.headers))),Promise.reject(t)}))}var Ct="1.7.9",Ft={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){Ft[e]=function(r){return f(r)===e||"a"+(t<1?"n ":" ")+e}}));var Ut={};Ft.transitional=function(e,t,r){function n(e,t){return"[Axios v1.7.9] Transitional option '"+e+"'"+t+(r?". "+r:"")}return function(r,o,i){if(!1===e)throw new me(n(o," has been removed"+(t?" in "+t:"")),me.ERR_DEPRECATED);return t&&!Ut[o]&&(Ut[o]=!0,console.warn(n(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(r,o,i)}},Ft.spelling=function(e){return function(t,r){return console.warn("".concat(r," is likely a misspelling of ").concat(e)),!0}};var Bt={assertOptions:function(e,t,r){if("object"!==f(e))throw new me("options must be an object",me.ERR_BAD_OPTION_VALUE);for(var n=Object.keys(e),o=n.length;o-- >0;){var i=n[o],a=t[i];if(a){var u=e[i],s=void 0===u||a(u,i,e);if(!0!==s)throw new me("option "+i+" must be "+s,me.ERR_BAD_OPTION_VALUE)}else if(!0!==r)throw new me("Unknown option "+i,me.ERR_BAD_OPTION)}},validators:Ft},Dt=Bt.validators,It=function(){function e(t){d(this,e),this.defaults=t,this.interceptors={request:new Pe,response:new Pe}}var t;return y(e,[{key:"request",value:(t=h(s().mark((function e(t,r){var n,o;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this._request(t,r);case 3:return e.abrupt("return",e.sent);case 6:if(e.prev=6,e.t0=e.catch(0),e.t0 instanceof Error){n={},Error.captureStackTrace?Error.captureStackTrace(n):n=new Error,o=n.stack?n.stack.replace(/^.+\n/,""):"";try{e.t0.stack?o&&!String(e.t0.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(e.t0.stack+="\n"+o):e.t0.stack=o}catch(e){}}throw e.t0;case 10:case"end":return e.stop()}}),e,this,[[0,6]])}))),function(e,r){return t.apply(this,arguments)})},{key:"_request",value:function(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{};var r=t=st(this.defaults,t),n=r.transitional,o=r.paramsSerializer,i=r.headers;void 0!==n&&Bt.assertOptions(n,{silentJSONParsing:Dt.transitional(Dt.boolean),forcedJSONParsing:Dt.transitional(Dt.boolean),clarifyTimeoutError:Dt.transitional(Dt.boolean)},!1),null!=o&&(ye.isFunction(o)?t.paramsSerializer={serialize:o}:Bt.assertOptions(o,{encode:Dt.function,serialize:Dt.function},!0)),Bt.assertOptions(t,{baseUrl:Dt.spelling("baseURL"),withXsrfToken:Dt.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();var a=i&&ye.merge(i.common,i[t.method]);i&&ye.forEach(["delete","get","head","post","put","patch","common"],(function(e){delete i[e]})),t.headers=Ve.concat(a,i);var u=[],s=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(s=s&&e.synchronous,u.unshift(e.fulfilled,e.rejected))}));var c,f=[];this.interceptors.response.forEach((function(e){f.push(e.fulfilled,e.rejected)}));var l,p=0;if(!s){var h=[_t.bind(this),void 0];for(h.unshift.apply(h,u),h.push.apply(h,f),l=h.length,c=Promise.resolve(t);p0;)n._listeners[t](e);n._listeners=null}})),this.promise.then=function(e){var t,r=new Promise((function(e){n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},t((function(e,t,o){n.reason||(n.reason=new Ye(e,t,o),r(n.reason))}))}return y(e,[{key:"throwIfRequested",value:function(){if(this.reason)throw this.reason}},{key:"subscribe",value:function(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}},{key:"unsubscribe",value:function(e){if(this._listeners){var t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}}},{key:"toAbortSignal",value:function(){var e=this,t=new AbortController,r=function(e){t.abort(e)};return this.subscribe(r),t.signal.unsubscribe=function(){return e.unsubscribe(r)},t.signal}}],[{key:"source",value:function(){var t;return{token:new e((function(e){t=e})),cancel:t}}}]),e}(),zt=Mt;var Ht={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Ht).forEach((function(e){var t=b(e,2),r=t[0],n=t[1];Ht[n]=r}));var Jt=Ht;var Wt=function e(t){var r=new qt(t),n=R(qt.prototype.request,r);return ye.extend(n,qt.prototype,r,{allOwnKeys:!0}),ye.extend(n,r,null,{allOwnKeys:!0}),n.create=function(r){return e(st(t,r))},n}(Me);return Wt.Axios=qt,Wt.CanceledError=Ye,Wt.CancelToken=zt,Wt.isCancel=$e,Wt.VERSION=Ct,Wt.toFormData=xe,Wt.AxiosError=me,Wt.Cancel=Wt.CanceledError,Wt.all=function(e){return Promise.all(e)},Wt.spread=function(e){return function(t){return e.apply(null,t)}},Wt.isAxiosError=function(e){return ye.isObject(e)&&!0===e.isAxiosError},Wt.mergeConfig=st,Wt.AxiosHeaders=Ve,Wt.formToJSON=function(e){return Ie(ye.isHTMLForm(e)?new FormData(e):e)},Wt.getAdapter=Lt,Wt.HttpStatusCode=Jt,Wt.default=Wt,Wt})); -//# sourceMappingURL=axios.min.js.map diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/book.js" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/book.js" deleted file mode 100644 index 8661841..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/book.js" +++ /dev/null @@ -1,188 +0,0 @@ -(function () { - // 私有变量 - const addBtn = document.querySelector('#add-book-btn'); - const modal = document.querySelector('.modal'); - const closeModalBtn = document.querySelector('#close-form-btn'); - const tbody = document.querySelector('tbody'); - const form = document.querySelector('#book-form'); - const searchBox = document.querySelector("#search-box"); - const formTitle = document.querySelector("#form-title"); - - // 表单选项 - let itemId = document.querySelector("#book-id"); - let itemName = document.querySelector("#book-name"); - let itemAuthor = document.querySelector("#author"); - let itemPublisher = document.querySelector("#publisher"); - - - - let data = []; - // api接口设置 - const API_BASE_URL = "http://localhost/book"; - - // 搜索图书# 修改bookName - function searchBooks(query) { - axios.get(API_BASE_URL + `?bookName=${query}`).then(res => { - if (res.data.code === 500) { - alert(`${res.data.msg}`); - return; - } - data = res.data.data; - renderTable(data); - }); - } - - // 渲染表格数据 # 修改item.后面的属性名称 - function renderTable(data) { - if (data.length === 0) return alert("无内容"); - tbody.innerHTML = data.map(item => { - return ` - ${item.bookId} - ${item.bookName} - ${item.bookAuthor} - ${item.bookPublisher} - - - - - `; - }).join(''); - - // 添加事件监听器(事件委托) - tbody.addEventListener('click', handleTableClick); - } - - // 更新图书时,先回显要被修改的旧数据 - function updateBook(id) { - axios.get(API_BASE_URL + `/${id}`).then(res => { - const data = res.data.data; - showOrCloseModal(); - form.reset(); - // ########以下内容要修改########## - - formTitle.innerText = '更新图书'; - itemId.value = data.bookId; - itemName.value = data.bookName; - itemAuthor.value = data.bookAuthor; - itemPublisher.value = data.bookPublisher; - - // ######以上内容要修改##### - }); - } - - - // 处理表格点击事件 - function handleTableClick(e) { - if (e.target.classList.contains('delete-btn')) { - deleteBook(e.target.closest('tr').dataset.id); - } else if (e.target.classList.contains('update-btn')) { - updateBook(e.target.closest('tr').dataset.id); - } - } - - // 开关浮层 - function showOrCloseModal(show = true) { - if (show) { - modal.style.display = 'block'; - } else { - modal.style.display = 'none'; - } - - document.querySelector("#book-id").value = null; // 重置当前编辑的图书ID - } - - // 获取列表 - function fetchBooks() { - axios.get(API_BASE_URL).then(res => { - data = res.data.data; - renderTable(data); - }); - - } - - // 根据id删除 - function deleteBook(id) { - if (!confirm("真的要删除吗?")) return; - axios.delete(API_BASE_URL + `/${id}`).then(res => { - if (res.data.code === 500) return alert(res.data.msg) - alert(res.data.data); - fetchBooks(); - }); - } - - - - // 点击保存按钮:添加或更新图书 - function saveBook() { - // 获取表单项的值 - let bookId = itemId.value; - const bookName = itemName.value; - const bookAuthor = itemAuthor.value; - const bookPublisher = itemPublisher.value; - - // 非空判断 - if (!bookName || !bookAuthor || !bookPublisher) { - alert("所有字段都必须填写!"); - return; - } - - // 表单项的值,封装成一个对象 - const book = { - bookId: bookId || null, // 如果为空,则视为添加新图书 - bookName: bookName, - bookAuthor: bookAuthor, - bookPublisher: bookPublisher - }; - - // 根据编号判断是添加还是更新 - if (bookId) { - axios.put(API_BASE_URL, book).then(res => { - res.data.code === 200 ? alert(res.data.data) : alert(res.data.msg); - fetchBooks(); - showOrCloseModal(false); - }) - } else { - axios.post(API_BASE_URL, book).then(res => { - res.data.code === 200 ? alert(res.data.data) : alert(res.data.msg); - fetchBooks(); - showOrCloseModal(false); - }) - } - - } - - - - // 初始化事件监听器 - function init() { - addBtn.addEventListener('click', () => { - form.reset(); - formTitle.innerText = '添加图书'; - bookId = null; - showOrCloseModal(); - }); - - closeModalBtn.addEventListener('click', () => { - bookId = null; // 重置当前编辑的图书ID - showOrCloseModal(false); - }); - - form.addEventListener('submit', (e) => { - e.preventDefault(); - saveBook(); - }); - - searchBox.addEventListener('keyup', (e) => { - if (e.key === "Enter") { - searchBooks(searchBox.value); - searchBox.value = ''; - } - }); - - // 初始加载图书列表 - fetchBooks(); - } - - // 执行初始化函数 - init(); -})(); \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/data.js" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/data.js" deleted file mode 100644 index 915bee6..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/data.js" +++ /dev/null @@ -1,182 +0,0 @@ -// 私有变量 -const addBtn = document.querySelector('#add-btn'); -const modal = document.querySelector('.modal'); -const closeModalBtn = document.querySelector('#close-form-btn'); -const tbody = document.querySelector('tbody'); -const form = document.querySelector('#item-form'); -const searchBox = document.querySelector("#search-box"); -const formTitle = document.querySelector("#form-title"); - -// 表单选项 -//#######################改改改################################ -let studentId = document.querySelector("#studentId"); -let studentName = document.querySelector("#studentName"); -let classname = document.querySelector("#classname"); -let classTeacher = document.querySelector("#classTeacher"); -//############################################################# - - -let data = []; -// api接口设置 -// const API_BASE_URL = "http://localhost/book"; -const API_BASE_URL = "http://localhost/blog"; // #### 改改改 #### - -// 搜索功能 -function search(name) { - axios.get(API_BASE_URL + `?title=${name}`).then(res => { - data = res.data; - renderTable(data); - }); -} - -// 渲染表格数据 # 修改item.后面的属性名称 -function renderTable(data) { - if (data.length === 0) return alert("无内容"); - tbody.innerHTML = data.map(item => { - return ` - ${item.blogId} - ${item.blogTitle} - ${item.blogAuthor} - ${item.blogText} - - - - - `; - }).join(''); - - // 添加事件监听器(事件委托) - tbody.addEventListener('click', handleTableClick); -} - -// 更新,先回显要被修改的旧数据 -function update(id) { - axios.get(API_BASE_URL + `/${id}`).then(res => { - const data = res.data; - showOrCloseModal(); - form.reset(); - - // ########以下内容要修改########## - - // formTitle.innerText = '更新图书'; - formTitle.innerText = '更新博客'; - studentId.value = data.blogId; - studentName.value = data.blogTitle; - classname.value = data.blogAuthor; - classTeacher.value = data.blogText; - - // ######以上内容要修改##### - }); -} - - -// 处理表格点击事件 -function handleTableClick(e) { - if (e.target.classList.contains('delete-btn')) { - deleteItem(e.target.closest('tr').dataset.id); - } else if (e.target.classList.contains('update-btn')) { - update(e.target.closest('tr').dataset.id); - } -} - -// 开关浮层 -function showOrCloseModal(show = true) { - if (show) { - modal.style.display = 'block'; - } else { - modal.style.display = 'none'; - } - - studentId.value = null; // 重置当前编辑的图书ID - -} - -// 获取列表 -function fetch() { - axios.get(API_BASE_URL).then(res => { - console.log(res) - data = res.data; - renderTable(data); - }); - -} - -// 根据id删除 -function deleteItem(id) { - if (!confirm("真的要删除吗?")) return; - axios.delete(API_BASE_URL + `/${id}`).then(res => { - alert("删除成功!") - fetch(); - }); -} - - -// 点击保存按钮:添加或更新图书 -function save() { - - // 获取表单项的值######改改##### - - // 非空判断 - if (!studentName.value || !classname.value || !classTeacher.value) { - alert("所有字段都必须填写!"); - return; - } - // 表单项的值,封装成一个对象 - const item = { - blogId: studentId.value || null, // 如果为空,则视为添加新图书 - blogTitle: studentName.value, - blogAuthor: classname.value, - blogText: classTeacher.value - }; - - // 根据编号判断是添加还是更新 - if (studentId.value!='') { - axios.put(API_BASE_URL, item).then(res => { - alert("修改成功") - fetch(); - showOrCloseModal(false); - }) - } else { - axios.post(API_BASE_URL, item).then(res => { - console.log(item) - alert("添加成功") - fetch(); - showOrCloseModal(false); - }) - } - -} - - -// 初始化事件监听器 -function init() { - addBtn.addEventListener('click', () => { - form.reset(); - // formTitle.innerText = '添加图书'; - formTitle.innerText = '添加博客'; - showOrCloseModal(); - }); - - closeModalBtn.addEventListener('click', () => { - studentId.value = null; //### 初始化id - showOrCloseModal(false); - }); - - form.addEventListener('submit', (e) => { - e.preventDefault(); - save(); - }); - - searchBox.addEventListener('keyup', (e) => { - if (e.key === "Enter") { - search(searchBox.value); - searchBox.value = ''; - } - }); - - // 初始加载列表 - fetch(); -} - -// 执行初始化函数 -init(); diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/JdbcConfig.class" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/JdbcConfig.class" deleted file mode 100644 index 38f06e9361e3d7f2cea798f07c5af6ec242d1e6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 890 zcmah{T~8B16g^W)yOwIPqI~!Ts930UqM{FAOti!Y)1VP0@o~C4)Tz5Wb#{vIuk@uP zn)n0!QO0|>1Y$zsKFs|(_uMmg_V=G3zW{7NR&Wuw%D7!Y0k;AyvRw+W%=S)zyKL_T zSYdm=j7Ax&0;OjrHU7E4L}PVNpxCyN7N~Vhs&|G-SG)JB8&jsf5%*%3ME%p72q~`f|!_=EZ@0rYywijt?z4FGUByGK8T~B5MXVTujQ;Gg+ z-Dj5S^`V#Q6e?e8m9pTm*jI+{Tsylkr11;M&8Q4^(eyfU0s0pm_ zYW{x>+71C*$q}ul74}BLs?fGb63t*>I8{nEon zk2jt?t)j)z)pOrPV480uW0m&gn{Ho+p6D~}$Mf2;%Ca3=743EamYQkD5tdM;|B=4}1n+{*X^JFSL3VQO7~*?gzD#E+PgYPTzd8os z3T7xG8MsCy+}tNyAiMk%g^$OW=rrra5hk1U(g@{dJs9CavtAits`-sj1u*jhaf74; rB!Xqk5Yqxx7HJkwV{T$RnHErO7IQRpp0ccJfouWS^Yg}O_9pNbDQeP5 diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/MyBatisConfig.class" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/MyBatisConfig.class" deleted file mode 100644 index df19704766d61b86809b866f4e1df696b6cf1e8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 889 zcmb7C%Wl&^6g`t?F=^5kTAG$e%PM`)*{~}@B0*g_AQ6a!SWVn%m}1Yk_M|j_1sf`X z#0T(Eh&$s_9!e$f;$Gi-e9xRS*WbQ>{tDnB?gyx0y^h-fN?3Q{P91maxW`a?q_nb+ z8OoilAw#8S4kbe?R9ZfpBqN!<6r-3rOQDHGJQSI7^+mH{->RHpEsRXUBcqShnD?h$ zVO8Gq)jq>=ei9F4o-3mdL}X1i?Mk5;x}ES?oQg9}IDaav7??>G$^EU+WMiI8M~;Q( zX{Pj;4`y)?d2o0+$gnb-kYW3ODBCY4+NwkjRj$bC6RnLUDMpjg2cD?Vbd-rizBk!B zXWYs&%f;oV+*x$;3Qq^h-{2oNv**nJl=e4cZe=Eoou-oaOp+QcwI#ZlK7Kp3FVa+I zgUFv$AVV$d~_@$%P^ly`)i#H z?W^`Y#3rirU%ICR=Co0~Mir;bC|9@7!9IF8pjh+G2Cmb4qxgXGJXH)$w1~tFzoJ~G z-1>sj>vNR*yE~sy+5JGR5*$slfa$aa8ea5t8yCHTj)nGbpK{R6-OwhBmNBah8I>I}JKZL~jONbl}-88R)~R}AI0HtISG zddl62-k2h_wv}Ss6;8)^7R>ku9WrdUr46{WW}t_>GjZAsTM0N~D0FP(q&nBJNOdvU z9EqtQ@@-_i4pdi%nv_qCv0iv>4GAB%tsC+%Q5-lCs3+?l<3e6NdoJcz`A@mXB}A(F z4`MK}Mj79c!Vob#72}9HEz*mcp>k6#3Gu)7aY1U%lTLkcB$xf3oDXDYF?02DMlFZ4 zWClg&{WC}4?f lDLH4cOgPRL6I;Rx`38xuk}uPp$~{Tok%Ic-@pxvAXU>fM{l}MY0Pf?Si#)D6xR%F?i|bg;cZ_b}7+wmRIrk>V3xH!u&Z>#o0uBhL}_M7I%uT~wDJycL- zV7`NO4|napbnXR(gD*wUn z^lQg6uytB>B!D!($7-=p+CHlot8nP6U^qknMv5dgnO2W9pCluht$qgkn3&JenoABn z%+cN(I-r1g(iqO8NUIHQB1>?2SxS3gG5IY6KLN+leo6oU diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/WebConfig.class" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/WebConfig.class" deleted file mode 100644 index 1ac063d11c651c156745d862db8ae380201946db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 830 zcmaKqO;6k~5Qbl~VY7tgD_uVO$qhK*3%4R9v{j`_3x@_#Rqe$|O>mpFBgeZ){Z;L$ zQl<6>^hY5k$rhGf+8pfhc;=aR#`$yo^EZG4YzJsz)5n&N$3C9;c-q1=#PoS$^o2_K zI~jK?>m@@cmF}%Eu6A@YQ52HmJ3G4{dY{Em@J#5GSAL3~i&UzG8(1p0{y@m#-VsHu z6El)_n8`_Ocz1Im@?7bZYOUS}Mb46+FhOJnHj%GY+1%o-=>1Yw8*>O~2on;i_E?`$ zUXtq07`CQvPKL?f%jG*zU7vw*8pBx5tpJ9P#-_Ze=oeP><(08t_?3)#QFqOYL7p4y z_;Fk~D-w6CwQ<5Jqw9jNRFMmpTuM8d(;IqWB{KC@T5Q9ozoGm*(8v+cI!`A~JEMJe z?+4g-GG@@GwOKo{Kz4g%FJg&K9+t5}QDyQ$1p@-_7iQi!!bbFsyyJw{7$HDS2&|92vx~IvV9v1gTb1>^?%dXB1W)Jef@ZF2jv@BpL)j}EL>ltFDcF|h z*rusFzC&}>EnyF=7$r;dDh`oOHty0@Th zY%nIg))V--Xz9Yw+3oqFpbR`UHLIkqcp`d}*#=SxF@uMD8_!CJZ)#?R#>dsiM)8S+ zDZ?_nD-t?Jva1q~h6OcmZ8quq-kfQ# z=j}E1rf%sD+5L_#>0U%Sh{4Wktt%9O`s0H^sGF&fuqZ*VHIqe9m-NN_L#oJR_O1lU zu5Xs`6`REN%DN+=Tgbz($Xr$Udi+=Q&pKB;t+2+D@KuEh>kDS8pjp?21rkza%`FGQ z#9*-+;!Df(3)g7@*9k{=D<&0IsYgwDcF^f;r#;1q_P>Pmid}IE`VB)g%OMfTnr59A zUDZl&n`zK83#4|PWzv3m%{jK~E;>fZuz0Vz#5bq(%d*x>aaF`x!4bTYL`A_-3?{Lu zU<+pzoWz$3#&KG~8Eh*!hw}<1#V`#P;W1G+EfrkBB5o*{!K{MoVzq=1B^>dUClb@y zieVN-;*Zt`b0ks%(+a-AV=;Wq{ACra;$v1y4JxQ2qPM7Iia_n~yyfX7!I+|AxjMHZ z+w;w|UFKs^F8ra;Ez10OGbwA3{?H}nrSAM*7qmQ&H~0skpMNm;qayObd4RhF=T|v* za%OhWfn)xk5Qc(tdh`cKFA$UPjJp_K<0x)`2tyo|;1pgbI&hrd7*14ihq>oZ9o`I4 zXZbe9XI%ny>?d@*fE;T;KIS9$2PZ>h-oaZKA)2tci}NtQ*?W*&jAD$>lEUCqJ|Rmg zB)l3DW_-dIh&QsGh_Gd(EU8A8b8WFqHL|eD85~h;B9s#6 z_~>&S_@0Ys%rZWHP-pQlW>5_-Ky$bj0$t`T3NA~iXj|Nvm$2%xu%UB^< zoWgdSs~Cl^48>QvRY=lH#-z57N&7A3PeN#^2!ceA!C!Fj&U1A4 z_Uxip7`%%^y@$EpMc@9?i`MX9Xl67LF?>SA81DF8*-u;Ua(|ECPstUi+-Ls*7fTZ8 diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/entity/Blog.class" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/entity/Blog.class" deleted file mode 100644 index af1cbdbf2ac0b573c52e29badca3dd0f31f92d4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2949 zcma)7-*XdH6#j0qn{1Lz36TORRY6hHw55Wmm{NYqk4OthD@sLSo38Cbnqay?dGg7B zf*0T9r4Kq|%Z$!A`hqk5O(K40?wFSbg~URwu~b=9P!)xgD07})a~1N__ne2$M9rx$P0adDuf8;?kQRrtEq}SuRImbX z_gkMEmt6l`2ox`l5Xv~;SR~4>X|L{HZLKW0%{ga5<2I^J?WWW8L=P7Yf7x4A*gais ztW3Cd-}4_$2p*3-aHBTtllj?}Ke(6iEUX7gneco$MkHY)vUS~J;}I~WYQ7IW*Y?z z**Jh<8!yZ73Wk}Zk)*S62JhH-6$fn;F=FGGs3nm`WjKq23j3nfajxan7Tu#siB?;%_N7K;%S#KqLAyJrt^VxIS(GVbr$Y; zzdYPRS9m>E$1t<`f6X|=PO_g($UscUq7)Opf|-;BGg;$203{sJeu&xxHO1L1{Q|WX zxV^?P5iDl#I%Qis;4t2x_GV~(i?b4*`vAp$qA`Xpki9Js!_)^T9tFy73&c?O0WzXM z1KR?PVLSvXbB@WgO9$4WevZ5?86fS|9wA9WphQ7M=sH5aHSb-_(RIXjiYXC|V!quU zGrm(y$&M)I(f*jmPBA6ZqL{2k{dRScbBZiJ9xeR{(^wn*6Xs)>@wL%EV9tz{HjoHZ z3du44e-IlL>nb&?Y>fYfOu=}D-A`bT7mN+0+V1JHNtbjvQ82|P@eKJV$QH~(Vv|#* zEU1~XRY;1H6*?sgR@=#tLWpn5UmfGy`qrHoKjtU@UA}V=-{UfIaYCk zl7Tr~#0Qj2%(Fq2DJAfTwKqvAiSJmYCn;H&;+bQ}Car%kki;qbIrb)Tnm0jXptgd;@l{o-P|=C>Wu|l1OP&rfdc#1}WHN70kdi+@JST`snboaoona zptgk3^OR!PgDd!u4~Vm7kKqC(gZ+FTnHS!L*>8||LDCH}s}#wEQZMM<)nl?S2(#_b z_Az>wLbt>wx2|V&mCg}H`Bl)2;vQ#dyk~wx_SRDj4`96DoZ$lMuBkD_2Z$-BPGbv+SEqJ=%j<|0`Xx;>SMC~VD% z>g5$^^8-TN_WwQSY zrYfS8Cn^`JJB6UHBJ7ziDD2yQR75H^*FYV8vF4W^nuB(x261B7C;XdgQZo-Jb#})& zb#iDomOR~Q`lPAj$wmR2iD%L5eK2$^Ol+ZbmU3kl#+;s&8F{_5;!|L1#g?FxDPUX` z^VJ)`o2HX8BdnSPUtFV&LK{I-6QLsM#=qy-49o40Ld__%+H zFTYHHz!Lr`0F+Avu0aWR%eY&DGF0%phWK^-tb78J!YXoZz)jp2u_|IUSj+3z=WsTV qvk6->_4T~>He$En_6&9>$953A`v-O}$L^!z1LOFiQ7j|!2;eugmS;r( diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/service/BlogService.class" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/service/BlogService.class" deleted file mode 100644 index 597922c19df63ffc80e960e5d177d6b873b5e4ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 510 zcma)3!AiqG6r8QGvDMVJM*IPV^kOc8hltP~gg~H&_yaLn!j^R-$)?a>^WX>gQR3Te zDaG{Q=`pkO-p-r%{qy++-~rbzu3Y#GqlQbK>$#K*S(OdLG?*o;Y@LOz7BWmkqa%hv zDoT~ByJr&H!0npLw-ueE&%n^5O96d{;RFuhQ$jt9U7P{L Y4=~*G=Y%idS$>2|TgRr7Vq!a|zgOspZvX%Q diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/service/impl/BlogServiceImpl.class" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/service/impl/BlogServiceImpl.class" deleted file mode 100644 index 7086e789782bd30e164afbe77efec052d8684c2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2823 zcma)8TXWk)7(J`VmpF3jhNLA;pm*xnO$D^ji_=09+G23hl9WKpt+K5;YGf(May$7K zJo5wSOCQ=9NT)EvzzfXqn}BjwQeyd%DKqi6((bp%=R148b^iMI=U)Mw!^SX%@yQ5Q zuqwkX89tR^O@_~8_&kFN+)m+6hN)l3@THvjN`|jf_$Gr<+)m@J91R(&Y1HIcPr*## zo^hvg1`W-*gjy$WqteS0g=N=0A_q$qhNt)lb4V!kE zh|74RdY`T=&D`PXxzc7G-J>OegzK-%p4lhuc0!7=(?z*prE4m?>KnBUCIlX3zq0)V z(lx`mD!-qP>qcumv^hnhyosAD<)y16=$Wmy?F)=_0j7O7^o#UfWSMSXWLDj_S2M3! z(mCT&yqNXR$btm&13S0no1W?VTbrgHZ7FFuh*wi+XqdvZh7&lcA&(givpAzc$D10? z%5VS3SnsLjpmuw=N; zvm&7imIQJgsPMdq9w!yU`TDdDv@@201hMy&yarFQ=k^Wgr}K^j^JJ9$g@7rkw3q<*ayTD?X^Yjr9hWZihwS0 zl-5WVia$XNrWCp&x$BB#WZiCZZ0`v33C9F67mI}-kWe2Nf5-6mNDMtL{)XYD(}ith zf>%C_ET3k$q|W|{kxBIr?0*Dpc2eDj7G$W>1Vb^$hZ>y=;dcow;tD;^{-&SaXBQ~+ z{$b2>ZU_Z-*aDwaED~!1$yEApjHd9xKRA%WRsN*~;+3fK%8DwvNKmOxLYB~L$dF4Y z&dzx;l?)`8IHZu*UIh6aN0pF=bEP@;av;HUuCz`8(z)Uzq-M8~y?c3jaN&h;YgG6U zuZnWep9x+cAMr_n{CDu r+t09XEVqsQlJGXh#$Ms`HpY9c7x(aVL^H00f@LBqxUqZh-30yvIvOGp diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" deleted file mode 100644 index 789825b..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" +++ /dev/null @@ -1,10 +0,0 @@ -com\config\WebConfig.class -com\service\impl\BlogServiceImpl.class -com\controller\BlogController.class -com\config\JdbcConfig.class -com\config\MyBatisConfig.class -com\entity\Blog.class -com\service\BlogService.class -com\mapper\BlogMapper.class -com\config\SpringConfig.class -com\config\SpringMvcConfig.class diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" deleted file mode 100644 index e158182..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" +++ /dev/null @@ -1,10 +0,0 @@ -E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\config\JdbcConfig.java -E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\config\MyBatisConfig.java -E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\config\SpringConfig.java -E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\config\SpringMvcConfig.java -E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\config\WebConfig.java -E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\controller\BlogController.java -E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\entity\Blog.java -E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\mapper\BlogMapper.java -E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\service\BlogService.java -E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\service\impl\BlogServiceImpl.java diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/logging.properties" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/logging.properties" deleted file mode 100644 index 76c9512..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/logging.properties" +++ /dev/null @@ -1,64 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler - -.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler - -############################################################ -# Handler specific properties. -# Describes specific configuration info for Handlers. -############################################################ - -1catalina.org.apache.juli.FileHandler.level = FINE -1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs -1catalina.org.apache.juli.FileHandler.prefix = catalina. - -2localhost.org.apache.juli.FileHandler.level = FINE -2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs -2localhost.org.apache.juli.FileHandler.prefix = localhost. - -3manager.org.apache.juli.FileHandler.level = FINE -3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs -3manager.org.apache.juli.FileHandler.prefix = manager. - -4host-manager.org.apache.juli.FileHandler.level = FINE -4host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs -4host-manager.org.apache.juli.FileHandler.prefix = host-manager. - -java.util.logging.ConsoleHandler.level = FINE -java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter - - -############################################################ -# Facility specific properties. -# Provides extra control for each logger. -############################################################ - -org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO -org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler - -org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO -org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.FileHandler - -org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO -org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.FileHandler - -# For example, set the org.apache.catalina.util.LifecycleBase logger to log -# each component that extends LifecycleBase changing state: -#org.apache.catalina.util.LifecycleBase.level = FINE - -# To see debug messages in TldLocationsCache, uncomment the following line: -#org.apache.jasper.compiler.TldLocationsCache.level = FINE diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/tomcat-users.xml" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/tomcat-users.xml" deleted file mode 100644 index 7114f5d..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/tomcat-users.xml" +++ /dev/null @@ -1,26 +0,0 @@ - - - - - diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/web.xml" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/web.xml" deleted file mode 100644 index cc8383c..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/web.xml" +++ /dev/null @@ -1,4283 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - default - org.apache.catalina.servlets.DefaultServlet - - debug - 0 - - - listings - false - - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - jsp - org.apache.jasper.servlet.JspServlet - - fork - false - - - xpoweredBy - false - - 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - default - / - - - - - jsp - *.jsp - *.jspx - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 30 - - - - - - - - - - - - 123 - application/vnd.lotus-1-2-3 - - - 3dml - text/vnd.in3d.3dml - - - 3g2 - video/3gpp2 - - - 3gp - video/3gpp - - - 7z - application/x-7z-compressed - - - aab - application/x-authorware-bin - - - aac - audio/x-aac - - - aam - application/x-authorware-map - - - aas - application/x-authorware-seg - - - abs - audio/x-mpeg - - - abw - application/x-abiword - - - ac - application/pkix-attr-cert - - - acc - application/vnd.americandynamics.acc - - - ace - application/x-ace-compressed - - - acu - application/vnd.acucobol - - - acutc - application/vnd.acucorp - - - adp - audio/adpcm - - - aep - application/vnd.audiograph - - - afm - application/x-font-type1 - - - afp - application/vnd.ibm.modcap - - - ahead - application/vnd.ahead.space - - - ai - application/postscript - - - aif - audio/x-aiff - - - aifc - audio/x-aiff - - - aiff - audio/x-aiff - - - aim - application/x-aim - - - air - application/vnd.adobe.air-application-installer-package+zip - - - ait - application/vnd.dvb.ait - - - ami - application/vnd.amiga.ami - - - anx - application/annodex - - - apk - application/vnd.android.package-archive - - - application - application/x-ms-application - - - apr - application/vnd.lotus-approach - - - art - image/x-jg - - - asc - application/pgp-signature - - - asf - video/x-ms-asf - - - asm - text/x-asm - - - aso - application/vnd.accpac.simply.aso - - - asx - video/x-ms-asf - - - atc - application/vnd.acucorp - - - atom - application/atom+xml - - - atomcat - application/atomcat+xml - - - atomsvc - application/atomsvc+xml - - - atx - application/vnd.antix.game-component - - - au - audio/basic - - - avi - video/x-msvideo - - - avx - video/x-rad-screenplay - - - aw - application/applixware - - - axa - audio/annodex - - - axv - video/annodex - - - azf - application/vnd.airzip.filesecure.azf - - - azs - application/vnd.airzip.filesecure.azs - - - azw - application/vnd.amazon.ebook - - - bat - application/x-msdownload - - - bcpio - application/x-bcpio - - - bdf - application/x-font-bdf - - - bdm - application/vnd.syncml.dm+wbxml - - - bed - application/vnd.realvnc.bed - - - bh2 - application/vnd.fujitsu.oasysprs - - - bin - application/octet-stream - - - bmi - application/vnd.bmi - - - bmp - image/bmp - - - body - text/html - - - book - application/vnd.framemaker - - - box - application/vnd.previewsystems.box - - - boz - application/x-bzip2 - - - bpk - application/octet-stream - - - btif - image/prs.btif - - - bz - application/x-bzip - - - bz2 - application/x-bzip2 - - - c - text/x-c - - - c11amc - application/vnd.cluetrust.cartomobile-config - - - c11amz - application/vnd.cluetrust.cartomobile-config-pkg - - - c4d - application/vnd.clonk.c4group - - - c4f - application/vnd.clonk.c4group - - - c4g - application/vnd.clonk.c4group - - - c4p - application/vnd.clonk.c4group - - - c4u - application/vnd.clonk.c4group - - - cab - application/vnd.ms-cab-compressed - - - cap - application/vnd.tcpdump.pcap - - - car - application/vnd.curl.car - - - cat - application/vnd.ms-pki.seccat - - - cc - text/x-c - - - cct - application/x-director - - - ccxml - application/ccxml+xml - - - cdbcmsg - application/vnd.contact.cmsg - - - cdf - application/x-cdf - - - cdkey - application/vnd.mediastation.cdkey - - - cdmia - application/cdmi-capability - - - cdmic - application/cdmi-container - - - cdmid - application/cdmi-domain - - - cdmio - application/cdmi-object - - - cdmiq - application/cdmi-queue - - - cdx - chemical/x-cdx - - - cdxml - application/vnd.chemdraw+xml - - - cdy - application/vnd.cinderella - - - cer - application/pkix-cert - - - cgm - image/cgm - - - chat - application/x-chat - - - chm - application/vnd.ms-htmlhelp - - - chrt - application/vnd.kde.kchart - - - cif - chemical/x-cif - - - cii - application/vnd.anser-web-certificate-issue-initiation - - - cil - application/vnd.ms-artgalry - - - cla - application/vnd.claymore - - - class - application/java - - - clkk - application/vnd.crick.clicker.keyboard - - - clkp - application/vnd.crick.clicker.palette - - - clkt - application/vnd.crick.clicker.template - - - clkw - application/vnd.crick.clicker.wordbank - - - clkx - application/vnd.crick.clicker - - - clp - application/x-msclip - - - cmc - application/vnd.cosmocaller - - - cmdf - chemical/x-cmdf - - - cml - chemical/x-cml - - - cmp - application/vnd.yellowriver-custom-menu - - - cmx - image/x-cmx - - - cod - application/vnd.rim.cod - - - com - application/x-msdownload - - - conf - text/plain - - - cpio - application/x-cpio - - - cpp - text/x-c - - - cpt - application/mac-compactpro - - - crd - application/x-mscardfile - - - crl - application/pkix-crl - - - crt - application/x-x509-ca-cert - - - cryptonote - application/vnd.rig.cryptonote - - - csh - application/x-csh - - - csml - chemical/x-csml - - - csp - application/vnd.commonspace - - - css - text/css - - - cst - application/x-director - - - csv - text/csv - - - cu - application/cu-seeme - - - curl - text/vnd.curl - - - cww - application/prs.cww - - - cxt - application/x-director - - - cxx - text/x-c - - - dae - model/vnd.collada+xml - - - daf - application/vnd.mobius.daf - - - dataless - application/vnd.fdsn.seed - - - davmount - application/davmount+xml - - - dcr - application/x-director - - - dcurl - text/vnd.curl.dcurl - - - dd2 - application/vnd.oma.dd2+xml - - - ddd - application/vnd.fujixerox.ddd - - - deb - application/x-debian-package - - - def - text/plain - - - deploy - application/octet-stream - - - der - application/x-x509-ca-cert - - - dfac - application/vnd.dreamfactory - - - dib - image/bmp - - - dic - text/x-c - - - dir - application/x-director - - - dis - application/vnd.mobius.dis - - - dist - application/octet-stream - - - distz - application/octet-stream - - - djv - image/vnd.djvu - - - djvu - image/vnd.djvu - - - dll - application/x-msdownload - - - dmg - application/octet-stream - - - dmp - application/vnd.tcpdump.pcap - - - dms - application/octet-stream - - - dna - application/vnd.dna - - - doc - application/msword - - - docm - application/vnd.ms-word.document.macroenabled.12 - - - docx - application/vnd.openxmlformats-officedocument.wordprocessingml.document - - - dot - application/msword - - - dotm - application/vnd.ms-word.template.macroenabled.12 - - - dotx - application/vnd.openxmlformats-officedocument.wordprocessingml.template - - - dp - application/vnd.osgi.dp - - - dpg - application/vnd.dpgraph - - - dra - audio/vnd.dra - - - dsc - text/prs.lines.tag - - - dssc - application/dssc+der - - - dtb - application/x-dtbook+xml - - - dtd - application/xml-dtd - - - dts - audio/vnd.dts - - - dtshd - audio/vnd.dts.hd - - - dump - application/octet-stream - - - dv - video/x-dv - - - dvb - video/vnd.dvb.file - - - dvi - application/x-dvi - - - dwf - model/vnd.dwf - - - dwg - image/vnd.dwg - - - dxf - image/vnd.dxf - - - dxp - application/vnd.spotfire.dxp - - - dxr - application/x-director - - - ecelp4800 - audio/vnd.nuera.ecelp4800 - - - ecelp7470 - audio/vnd.nuera.ecelp7470 - - - ecelp9600 - audio/vnd.nuera.ecelp9600 - - - ecma - application/ecmascript - - - edm - application/vnd.novadigm.edm - - - edx - application/vnd.novadigm.edx - - - efif - application/vnd.picsel - - - ei6 - application/vnd.pg.osasli - - - elc - application/octet-stream - - - eml - message/rfc822 - - - emma - application/emma+xml - - - eol - audio/vnd.digital-winds - - - eot - application/vnd.ms-fontobject - - - eps - application/postscript - - - epub - application/epub+zip - - - es3 - application/vnd.eszigno3+xml - - - esf - application/vnd.epson.esf - - - et3 - application/vnd.eszigno3+xml - - - etx - text/x-setext - - - exe - application/octet-stream - - - exi - application/exi - - - ext - application/vnd.novadigm.ext - - - ez - application/andrew-inset - - - ez2 - application/vnd.ezpix-album - - - ez3 - application/vnd.ezpix-package - - - f - text/x-fortran - - - f4v - video/x-f4v - - - f77 - text/x-fortran - - - f90 - text/x-fortran - - - fbs - image/vnd.fastbidsheet - - - fcs - application/vnd.isac.fcs - - - fdf - application/vnd.fdf - - - fe_launch - application/vnd.denovo.fcselayout-link - - - fg5 - application/vnd.fujitsu.oasysgp - - - fgd - application/x-director - - - fh - image/x-freehand - - - fh4 - image/x-freehand - - - fh5 - image/x-freehand - - - fh7 - image/x-freehand - - - fhc - image/x-freehand - - - fig - application/x-xfig - - - flac - audio/flac - - - fli - video/x-fli - - - flo - application/vnd.micrografx.flo - - - flv - video/x-flv - - - flw - application/vnd.kde.kivio - - - flx - text/vnd.fmi.flexstor - - - fly - text/vnd.fly - - - fm - application/vnd.framemaker - - - fnc - application/vnd.frogans.fnc - - - for - text/x-fortran - - - fpx - image/vnd.fpx - - - frame - application/vnd.framemaker - - - fsc - application/vnd.fsc.weblaunch - - - fst - image/vnd.fst - - - ftc - application/vnd.fluxtime.clip - - - fti - application/vnd.anser-web-funds-transfer-initiation - - - fvt - video/vnd.fvt - - - fxp - application/vnd.adobe.fxp - - - fxpl - application/vnd.adobe.fxp - - - fzs - application/vnd.fuzzysheet - - - g2w - application/vnd.geoplan - - - g3 - image/g3fax - - - g3w - application/vnd.geospace - - - gac - application/vnd.groove-account - - - gbr - application/rpki-ghostbusters - - - gdl - model/vnd.gdl - - - geo - application/vnd.dynageo - - - gex - application/vnd.geometry-explorer - - - ggb - application/vnd.geogebra.file - - - ggt - application/vnd.geogebra.tool - - - ghf - application/vnd.groove-help - - - gif - image/gif - - - gim - application/vnd.groove-identity-message - - - gmx - application/vnd.gmx - - - gnumeric - application/x-gnumeric - - - gph - application/vnd.flographit - - - gqf - application/vnd.grafeq - - - gqs - application/vnd.grafeq - - - gram - application/srgs - - - gre - application/vnd.geometry-explorer - - - grv - application/vnd.groove-injector - - - grxml - application/srgs+xml - - - gsf - application/x-font-ghostscript - - - gtar - application/x-gtar - - - gtm - application/vnd.groove-tool-message - - - gtw - model/vnd.gtw - - - gv - text/vnd.graphviz - - - gxt - application/vnd.geonext - - - gz - application/x-gzip - - - h - text/x-c - - - h261 - video/h261 - - - h263 - video/h263 - - - h264 - video/h264 - - - hal - application/vnd.hal+xml - - - hbci - application/vnd.hbci - - - hdf - application/x-hdf - - - hh - text/x-c - - - hlp - application/winhlp - - - hpgl - application/vnd.hp-hpgl - - - hpid - application/vnd.hp-hpid - - - hps - application/vnd.hp-hps - - - hqx - application/mac-binhex40 - - - htc - text/x-component - - - htke - application/vnd.kenameaapp - - - htm - text/html - - - html - text/html - - - hvd - application/vnd.yamaha.hv-dic - - - hvp - application/vnd.yamaha.hv-voice - - - hvs - application/vnd.yamaha.hv-script - - - i2g - application/vnd.intergeo - - - icc - application/vnd.iccprofile - - - ice - x-conference/x-cooltalk - - - icm - application/vnd.iccprofile - - - ico - image/x-icon - - - ics - text/calendar - - - ief - image/ief - - - ifb - text/calendar - - - ifm - application/vnd.shana.informed.formdata - - - iges - model/iges - - - igl - application/vnd.igloader - - - igm - application/vnd.insors.igm - - - igs - model/iges - - - igx - application/vnd.micrografx.igx - - - iif - application/vnd.shana.informed.interchange - - - imp - application/vnd.accpac.simply.imp - - - ims - application/vnd.ms-ims - - - in - text/plain - - - ink - application/inkml+xml - - - inkml - application/inkml+xml - - - iota - application/vnd.astraea-software.iota - - - ipfix - application/ipfix - - - ipk - application/vnd.shana.informed.package - - - irm - application/vnd.ibm.rights-management - - - irp - application/vnd.irepository.package+xml - - - iso - application/octet-stream - - - itp - application/vnd.shana.informed.formtemplate - - - ivp - application/vnd.immervision-ivp - - - ivu - application/vnd.immervision-ivu - - - jad - text/vnd.sun.j2me.app-descriptor - - - jam - application/vnd.jam - - - jar - application/java-archive - - - java - text/x-java-source - - - jisp - application/vnd.jisp - - - jlt - application/vnd.hp-jlyt - - - jnlp - application/x-java-jnlp-file - - - joda - application/vnd.joost.joda-archive - - - jpe - image/jpeg - - - jpeg - image/jpeg - - - jpg - image/jpeg - - - jpgm - video/jpm - - - jpgv - video/jpeg - - - jpm - video/jpm - - - js - application/javascript - - - jsf - text/plain - - - json - application/json - - - jspf - text/plain - - - kar - audio/midi - - - karbon - application/vnd.kde.karbon - - - kfo - application/vnd.kde.kformula - - - kia - application/vnd.kidspiration - - - kml - application/vnd.google-earth.kml+xml - - - kmz - application/vnd.google-earth.kmz - - - kne - application/vnd.kinar - - - knp - application/vnd.kinar - - - kon - application/vnd.kde.kontour - - - kpr - application/vnd.kde.kpresenter - - - kpt - application/vnd.kde.kpresenter - - - ksp - application/vnd.kde.kspread - - - ktr - application/vnd.kahootz - - - ktx - image/ktx - - - ktz - application/vnd.kahootz - - - kwd - application/vnd.kde.kword - - - kwt - application/vnd.kde.kword - - - lasxml - application/vnd.las.las+xml - - - latex - application/x-latex - - - lbd - application/vnd.llamagraphics.life-balance.desktop - - - lbe - application/vnd.llamagraphics.life-balance.exchange+xml - - - les - application/vnd.hhe.lesson-player - - - lha - application/octet-stream - - - link66 - application/vnd.route66.link66+xml - - - list - text/plain - - - list3820 - application/vnd.ibm.modcap - - - listafp - application/vnd.ibm.modcap - - - log - text/plain - - - lostxml - application/lost+xml - - - lrf - application/octet-stream - - - lrm - application/vnd.ms-lrm - - - ltf - application/vnd.frogans.ltf - - - lvp - audio/vnd.lucent.voice - - - lwp - application/vnd.lotus-wordpro - - - lzh - application/octet-stream - - - m13 - application/x-msmediaview - - - m14 - application/x-msmediaview - - - m1v - video/mpeg - - - m21 - application/mp21 - - - m2a - audio/mpeg - - - m2v - video/mpeg - - - m3a - audio/mpeg - - - m3u - audio/x-mpegurl - - - m3u8 - application/vnd.apple.mpegurl - - - m4a - audio/mp4 - - - m4b - audio/mp4 - - - m4r - audio/mp4 - - - m4u - video/vnd.mpegurl - - - m4v - video/mp4 - - - ma - application/mathematica - - - mac - image/x-macpaint - - - mads - application/mads+xml - - - mag - application/vnd.ecowin.chart - - - maker - application/vnd.framemaker - - - man - text/troff - - - mathml - application/mathml+xml - - - mb - application/mathematica - - - mbk - application/vnd.mobius.mbk - - - mbox - application/mbox - - - mc1 - application/vnd.medcalcdata - - - mcd - application/vnd.mcd - - - mcurl - text/vnd.curl.mcurl - - - mdb - application/x-msaccess - - - mdi - image/vnd.ms-modi - - - me - text/troff - - - mesh - model/mesh - - - meta4 - application/metalink4+xml - - - mets - application/mets+xml - - - mfm - application/vnd.mfmp - - - mft - application/rpki-manifest - - - mgp - application/vnd.osgeo.mapguide.package - - - mgz - application/vnd.proteus.magazine - - - mid - audio/midi - - - midi - audio/midi - - - mif - application/x-mif - - - mime - message/rfc822 - - - mj2 - video/mj2 - - - mjp2 - video/mj2 - - - mlp - application/vnd.dolby.mlp - - - mmd - application/vnd.chipnuts.karaoke-mmd - - - mmf - application/vnd.smaf - - - mmr - image/vnd.fujixerox.edmics-mmr - - - mny - application/x-msmoney - - - mobi - application/x-mobipocket-ebook - - - mods - application/mods+xml - - - mov - video/quicktime - - - movie - video/x-sgi-movie - - - mp1 - audio/mpeg - - - mp2 - audio/mpeg - - - mp21 - application/mp21 - - - mp2a - audio/mpeg - - - mp3 - audio/mpeg - - - mp4 - video/mp4 - - - mp4a - audio/mp4 - - - mp4s - application/mp4 - - - mp4v - video/mp4 - - - mpa - audio/mpeg - - - mpc - application/vnd.mophun.certificate - - - mpe - video/mpeg - - - mpeg - video/mpeg - - - mpega - audio/x-mpeg - - - mpg - video/mpeg - - - mpg4 - video/mp4 - - - mpga - audio/mpeg - - - mpkg - application/vnd.apple.installer+xml - - - mpm - application/vnd.blueice.multipass - - - mpn - application/vnd.mophun.application - - - mpp - application/vnd.ms-project - - - mpt - application/vnd.ms-project - - - mpv2 - video/mpeg2 - - - mpy - application/vnd.ibm.minipay - - - mqy - application/vnd.mobius.mqy - - - mrc - application/marc - - - mrcx - application/marcxml+xml - - - ms - text/troff - - - mscml - application/mediaservercontrol+xml - - - mseed - application/vnd.fdsn.mseed - - - mseq - application/vnd.mseq - - - msf - application/vnd.epson.msf - - - msh - model/mesh - - - msi - application/x-msdownload - - - msl - application/vnd.mobius.msl - - - msty - application/vnd.muvee.style - - - mts - model/vnd.mts - - - mus - application/vnd.musician - - - musicxml - application/vnd.recordare.musicxml+xml - - - mvb - application/x-msmediaview - - - mwf - application/vnd.mfer - - - mxf - application/mxf - - - mxl - application/vnd.recordare.musicxml - - - mxml - application/xv+xml - - - mxs - application/vnd.triscape.mxs - - - mxu - video/vnd.mpegurl - - - n-gage - application/vnd.nokia.n-gage.symbian.install - - - n3 - text/n3 - - - nb - application/mathematica - - - nbp - application/vnd.wolfram.player - - - nc - application/x-netcdf - - - ncx - application/x-dtbncx+xml - - - ngdat - application/vnd.nokia.n-gage.data - - - nlu - application/vnd.neurolanguage.nlu - - - nml - application/vnd.enliven - - - nnd - application/vnd.noblenet-directory - - - nns - application/vnd.noblenet-sealer - - - nnw - application/vnd.noblenet-web - - - npx - image/vnd.net-fpx - - - nsf - application/vnd.lotus-notes - - - oa2 - application/vnd.fujitsu.oasys2 - - - oa3 - application/vnd.fujitsu.oasys3 - - - oas - application/vnd.fujitsu.oasys - - - obd - application/x-msbinder - - - oda - application/oda - - - - odb - application/vnd.oasis.opendocument.database - - - - odc - application/vnd.oasis.opendocument.chart - - - - odf - application/vnd.oasis.opendocument.formula - - - odft - application/vnd.oasis.opendocument.formula-template - - - - odg - application/vnd.oasis.opendocument.graphics - - - - odi - application/vnd.oasis.opendocument.image - - - - odm - application/vnd.oasis.opendocument.text-master - - - - odp - application/vnd.oasis.opendocument.presentation - - - - ods - application/vnd.oasis.opendocument.spreadsheet - - - - odt - application/vnd.oasis.opendocument.text - - - oga - audio/ogg - - - ogg - audio/ogg - - - ogv - video/ogg - - - - ogx - application/ogg - - - onepkg - application/onenote - - - onetmp - application/onenote - - - onetoc - application/onenote - - - onetoc2 - application/onenote - - - opf - application/oebps-package+xml - - - oprc - application/vnd.palm - - - org - application/vnd.lotus-organizer - - - osf - application/vnd.yamaha.openscoreformat - - - osfpvg - application/vnd.yamaha.openscoreformat.osfpvg+xml - - - otc - application/vnd.oasis.opendocument.chart-template - - - otf - application/x-font-otf - - - - otg - application/vnd.oasis.opendocument.graphics-template - - - - oth - application/vnd.oasis.opendocument.text-web - - - oti - application/vnd.oasis.opendocument.image-template - - - - otp - application/vnd.oasis.opendocument.presentation-template - - - - ots - application/vnd.oasis.opendocument.spreadsheet-template - - - - ott - application/vnd.oasis.opendocument.text-template - - - oxps - application/oxps - - - oxt - application/vnd.openofficeorg.extension - - - p - text/x-pascal - - - p10 - application/pkcs10 - - - p12 - application/x-pkcs12 - - - p7b - application/x-pkcs7-certificates - - - p7c - application/pkcs7-mime - - - p7m - application/pkcs7-mime - - - p7r - application/x-pkcs7-certreqresp - - - p7s - application/pkcs7-signature - - - p8 - application/pkcs8 - - - pas - text/x-pascal - - - paw - application/vnd.pawaafile - - - pbd - application/vnd.powerbuilder6 - - - pbm - image/x-portable-bitmap - - - pcap - application/vnd.tcpdump.pcap - - - pcf - application/x-font-pcf - - - pcl - application/vnd.hp-pcl - - - pclxl - application/vnd.hp-pclxl - - - pct - image/pict - - - pcurl - application/vnd.curl.pcurl - - - pcx - image/x-pcx - - - pdb - application/vnd.palm - - - pdf - application/pdf - - - pfa - application/x-font-type1 - - - pfb - application/x-font-type1 - - - pfm - application/x-font-type1 - - - pfr - application/font-tdpfr - - - pfx - application/x-pkcs12 - - - pgm - image/x-portable-graymap - - - pgn - application/x-chess-pgn - - - pgp - application/pgp-encrypted - - - pic - image/pict - - - pict - image/pict - - - pkg - application/octet-stream - - - pki - application/pkixcmp - - - pkipath - application/pkix-pkipath - - - plb - application/vnd.3gpp.pic-bw-large - - - plc - application/vnd.mobius.plc - - - plf - application/vnd.pocketlearn - - - pls - audio/x-scpls - - - pml - application/vnd.ctc-posml - - - png - image/png - - - pnm - image/x-portable-anymap - - - pnt - image/x-macpaint - - - portpkg - application/vnd.macports.portpkg - - - pot - application/vnd.ms-powerpoint - - - potm - application/vnd.ms-powerpoint.template.macroenabled.12 - - - potx - application/vnd.openxmlformats-officedocument.presentationml.template - - - ppam - application/vnd.ms-powerpoint.addin.macroenabled.12 - - - ppd - application/vnd.cups-ppd - - - ppm - image/x-portable-pixmap - - - pps - application/vnd.ms-powerpoint - - - ppsm - application/vnd.ms-powerpoint.slideshow.macroenabled.12 - - - ppsx - application/vnd.openxmlformats-officedocument.presentationml.slideshow - - - ppt - application/vnd.ms-powerpoint - - - pptm - application/vnd.ms-powerpoint.presentation.macroenabled.12 - - - pptx - application/vnd.openxmlformats-officedocument.presentationml.presentation - - - pqa - application/vnd.palm - - - prc - application/x-mobipocket-ebook - - - pre - application/vnd.lotus-freelance - - - prf - application/pics-rules - - - ps - application/postscript - - - psb - application/vnd.3gpp.pic-bw-small - - - psd - image/vnd.adobe.photoshop - - - psf - application/x-font-linux-psf - - - pskcxml - application/pskc+xml - - - ptid - application/vnd.pvi.ptid1 - - - pub - application/x-mspublisher - - - pvb - application/vnd.3gpp.pic-bw-var - - - pwn - application/vnd.3m.post-it-notes - - - pya - audio/vnd.ms-playready.media.pya - - - pyv - video/vnd.ms-playready.media.pyv - - - qam - application/vnd.epson.quickanime - - - qbo - application/vnd.intu.qbo - - - qfx - application/vnd.intu.qfx - - - qps - application/vnd.publishare-delta-tree - - - qt - video/quicktime - - - qti - image/x-quicktime - - - qtif - image/x-quicktime - - - qwd - application/vnd.quark.quarkxpress - - - qwt - application/vnd.quark.quarkxpress - - - qxb - application/vnd.quark.quarkxpress - - - qxd - application/vnd.quark.quarkxpress - - - qxl - application/vnd.quark.quarkxpress - - - qxt - application/vnd.quark.quarkxpress - - - ra - audio/x-pn-realaudio - - - ram - audio/x-pn-realaudio - - - rar - application/x-rar-compressed - - - ras - image/x-cmu-raster - - - rcprofile - application/vnd.ipunplugged.rcprofile - - - rdf - application/rdf+xml - - - rdz - application/vnd.data-vision.rdz - - - rep - application/vnd.businessobjects - - - res - application/x-dtbresource+xml - - - rgb - image/x-rgb - - - rif - application/reginfo+xml - - - rip - audio/vnd.rip - - - rl - application/resource-lists+xml - - - rlc - image/vnd.fujixerox.edmics-rlc - - - rld - application/resource-lists-diff+xml - - - rm - application/vnd.rn-realmedia - - - rmi - audio/midi - - - rmp - audio/x-pn-realaudio-plugin - - - rms - application/vnd.jcp.javame.midlet-rms - - - rnc - application/relax-ng-compact-syntax - - - roa - application/rpki-roa - - - roff - text/troff - - - rp9 - application/vnd.cloanto.rp9 - - - rpss - application/vnd.nokia.radio-presets - - - rpst - application/vnd.nokia.radio-preset - - - rq - application/sparql-query - - - rs - application/rls-services+xml - - - rsd - application/rsd+xml - - - rss - application/rss+xml - - - rtf - application/rtf - - - rtx - text/richtext - - - s - text/x-asm - - - saf - application/vnd.yamaha.smaf-audio - - - sbml - application/sbml+xml - - - sc - application/vnd.ibm.secure-container - - - scd - application/x-msschedule - - - scm - application/vnd.lotus-screencam - - - scq - application/scvp-cv-request - - - scs - application/scvp-cv-response - - - scurl - text/vnd.curl.scurl - - - sda - application/vnd.stardivision.draw - - - sdc - application/vnd.stardivision.calc - - - sdd - application/vnd.stardivision.impress - - - sdkd - application/vnd.solent.sdkm+xml - - - sdkm - application/vnd.solent.sdkm+xml - - - sdp - application/sdp - - - sdw - application/vnd.stardivision.writer - - - see - application/vnd.seemail - - - seed - application/vnd.fdsn.seed - - - sema - application/vnd.sema - - - semd - application/vnd.semd - - - semf - application/vnd.semf - - - ser - application/java-serialized-object - - - setpay - application/set-payment-initiation - - - setreg - application/set-registration-initiation - - - sfd-hdstx - application/vnd.hydrostatix.sof-data - - - sfs - application/vnd.spotfire.sfs - - - sgl - application/vnd.stardivision.writer-global - - - sgm - text/sgml - - - sgml - text/sgml - - - sh - application/x-sh - - - shar - application/x-shar - - - shf - application/shf+xml - - - - sig - application/pgp-signature - - - silo - model/mesh - - - sis - application/vnd.symbian.install - - - sisx - application/vnd.symbian.install - - - sit - application/x-stuffit - - - sitx - application/x-stuffitx - - - skd - application/vnd.koan - - - skm - application/vnd.koan - - - skp - application/vnd.koan - - - skt - application/vnd.koan - - - sldm - application/vnd.ms-powerpoint.slide.macroenabled.12 - - - sldx - application/vnd.openxmlformats-officedocument.presentationml.slide - - - slt - application/vnd.epson.salt - - - sm - application/vnd.stepmania.stepchart - - - smf - application/vnd.stardivision.math - - - smi - application/smil+xml - - - smil - application/smil+xml - - - smzip - application/vnd.stepmania.package - - - snd - audio/basic - - - snf - application/x-font-snf - - - so - application/octet-stream - - - spc - application/x-pkcs7-certificates - - - spf - application/vnd.yamaha.smaf-phrase - - - spl - application/x-futuresplash - - - spot - text/vnd.in3d.spot - - - spp - application/scvp-vp-response - - - spq - application/scvp-vp-request - - - spx - audio/ogg - - - src - application/x-wais-source - - - sru - application/sru+xml - - - srx - application/sparql-results+xml - - - sse - application/vnd.kodak-descriptor - - - ssf - application/vnd.epson.ssf - - - ssml - application/ssml+xml - - - st - application/vnd.sailingtracker.track - - - stc - application/vnd.sun.xml.calc.template - - - std - application/vnd.sun.xml.draw.template - - - stf - application/vnd.wt.stf - - - sti - application/vnd.sun.xml.impress.template - - - stk - application/hyperstudio - - - stl - application/vnd.ms-pki.stl - - - str - application/vnd.pg.format - - - stw - application/vnd.sun.xml.writer.template - - - sub - text/vnd.dvb.subtitle - - - sus - application/vnd.sus-calendar - - - susp - application/vnd.sus-calendar - - - sv4cpio - application/x-sv4cpio - - - sv4crc - application/x-sv4crc - - - svc - application/vnd.dvb.service - - - svd - application/vnd.svd - - - svg - image/svg+xml - - - svgz - image/svg+xml - - - swa - application/x-director - - - swf - application/x-shockwave-flash - - - swi - application/vnd.aristanetworks.swi - - - sxc - application/vnd.sun.xml.calc - - - sxd - application/vnd.sun.xml.draw - - - sxg - application/vnd.sun.xml.writer.global - - - sxi - application/vnd.sun.xml.impress - - - sxm - application/vnd.sun.xml.math - - - sxw - application/vnd.sun.xml.writer - - - t - text/troff - - - taglet - application/vnd.mynfc - - - tao - application/vnd.tao.intent-module-archive - - - tar - application/x-tar - - - tcap - application/vnd.3gpp2.tcap - - - tcl - application/x-tcl - - - teacher - application/vnd.smart.teacher - - - tei - application/tei+xml - - - teicorpus - application/tei+xml - - - tex - application/x-tex - - - texi - application/x-texinfo - - - texinfo - application/x-texinfo - - - text - text/plain - - - tfi - application/thraud+xml - - - tfm - application/x-tex-tfm - - - thmx - application/vnd.ms-officetheme - - - tif - image/tiff - - - tiff - image/tiff - - - tmo - application/vnd.tmobile-livetv - - - torrent - application/x-bittorrent - - - tpl - application/vnd.groove-tool-template - - - tpt - application/vnd.trid.tpt - - - tr - text/troff - - - tra - application/vnd.trueapp - - - trm - application/x-msterminal - - - tsd - application/timestamped-data - - - tsv - text/tab-separated-values - - - ttc - application/x-font-ttf - - - ttf - application/x-font-ttf - - - ttl - text/turtle - - - twd - application/vnd.simtech-mindmapper - - - twds - application/vnd.simtech-mindmapper - - - txd - application/vnd.genomatix.tuxedo - - - txf - application/vnd.mobius.txf - - - txt - text/plain - - - u32 - application/x-authorware-bin - - - udeb - application/x-debian-package - - - ufd - application/vnd.ufdl - - - ufdl - application/vnd.ufdl - - - ulw - audio/basic - - - umj - application/vnd.umajin - - - unityweb - application/vnd.unity - - - uoml - application/vnd.uoml+xml - - - uri - text/uri-list - - - uris - text/uri-list - - - urls - text/uri-list - - - ustar - application/x-ustar - - - utz - application/vnd.uiq.theme - - - uu - text/x-uuencode - - - uva - audio/vnd.dece.audio - - - uvd - application/vnd.dece.data - - - uvf - application/vnd.dece.data - - - uvg - image/vnd.dece.graphic - - - uvh - video/vnd.dece.hd - - - uvi - image/vnd.dece.graphic - - - uvm - video/vnd.dece.mobile - - - uvp - video/vnd.dece.pd - - - uvs - video/vnd.dece.sd - - - uvt - application/vnd.dece.ttml+xml - - - uvu - video/vnd.uvvu.mp4 - - - uvv - video/vnd.dece.video - - - uvva - audio/vnd.dece.audio - - - uvvd - application/vnd.dece.data - - - uvvf - application/vnd.dece.data - - - uvvg - image/vnd.dece.graphic - - - uvvh - video/vnd.dece.hd - - - uvvi - image/vnd.dece.graphic - - - uvvm - video/vnd.dece.mobile - - - uvvp - video/vnd.dece.pd - - - uvvs - video/vnd.dece.sd - - - uvvt - application/vnd.dece.ttml+xml - - - uvvu - video/vnd.uvvu.mp4 - - - uvvv - video/vnd.dece.video - - - uvvx - application/vnd.dece.unspecified - - - uvvz - application/vnd.dece.zip - - - uvx - application/vnd.dece.unspecified - - - uvz - application/vnd.dece.zip - - - vcard - text/vcard - - - vcd - application/x-cdlink - - - vcf - text/x-vcard - - - vcg - application/vnd.groove-vcard - - - vcs - text/x-vcalendar - - - vcx - application/vnd.vcx - - - vis - application/vnd.visionary - - - viv - video/vnd.vivo - - - vor - application/vnd.stardivision.writer - - - vox - application/x-authorware-bin - - - vrml - model/vrml - - - vsd - application/vnd.visio - - - vsf - application/vnd.vsf - - - vss - application/vnd.visio - - - vst - application/vnd.visio - - - vsw - application/vnd.visio - - - vtu - model/vnd.vtu - - - vxml - application/voicexml+xml - - - w3d - application/x-director - - - wad - application/x-doom - - - wav - audio/x-wav - - - wax - audio/x-ms-wax - - - - wbmp - image/vnd.wap.wbmp - - - wbs - application/vnd.criticaltools.wbs+xml - - - wbxml - application/vnd.wap.wbxml - - - wcm - application/vnd.ms-works - - - wdb - application/vnd.ms-works - - - weba - audio/webm - - - webm - video/webm - - - webp - image/webp - - - wg - application/vnd.pmi.widget - - - wgt - application/widget - - - wks - application/vnd.ms-works - - - wm - video/x-ms-wm - - - wma - audio/x-ms-wma - - - wmd - application/x-ms-wmd - - - wmf - application/x-msmetafile - - - - wml - text/vnd.wap.wml - - - - wmlc - application/vnd.wap.wmlc - - - - wmls - text/vnd.wap.wmlscript - - - - wmlsc - application/vnd.wap.wmlscriptc - - - wmv - video/x-ms-wmv - - - wmx - video/x-ms-wmx - - - wmz - application/x-ms-wmz - - - woff - application/x-font-woff - - - wpd - application/vnd.wordperfect - - - wpl - application/vnd.ms-wpl - - - wps - application/vnd.ms-works - - - wqd - application/vnd.wqd - - - wri - application/x-mswrite - - - wrl - model/vrml - - - wsdl - application/wsdl+xml - - - wspolicy - application/wspolicy+xml - - - wtb - application/vnd.webturbo - - - wvx - video/x-ms-wvx - - - x32 - application/x-authorware-bin - - - x3d - application/vnd.hzn-3d-crossword - - - xap - application/x-silverlight-app - - - xar - application/vnd.xara - - - xbap - application/x-ms-xbap - - - xbd - application/vnd.fujixerox.docuworks.binder - - - xbm - image/x-xbitmap - - - xdf - application/xcap-diff+xml - - - xdm - application/vnd.syncml.dm+xml - - - xdp - application/vnd.adobe.xdp+xml - - - xdssc - application/dssc+xml - - - xdw - application/vnd.fujixerox.docuworks - - - xenc - application/xenc+xml - - - xer - application/patch-ops-error+xml - - - xfdf - application/vnd.adobe.xfdf - - - xfdl - application/vnd.xfdl - - - xht - application/xhtml+xml - - - xhtml - application/xhtml+xml - - - xhvml - application/xv+xml - - - xif - image/vnd.xiff - - - xla - application/vnd.ms-excel - - - xlam - application/vnd.ms-excel.addin.macroenabled.12 - - - xlc - application/vnd.ms-excel - - - xlm - application/vnd.ms-excel - - - xls - application/vnd.ms-excel - - - xlsb - application/vnd.ms-excel.sheet.binary.macroenabled.12 - - - xlsm - application/vnd.ms-excel.sheet.macroenabled.12 - - - xlsx - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - - - xlt - application/vnd.ms-excel - - - xltm - application/vnd.ms-excel.template.macroenabled.12 - - - xltx - application/vnd.openxmlformats-officedocument.spreadsheetml.template - - - xlw - application/vnd.ms-excel - - - xml - application/xml - - - xo - application/vnd.olpc-sugar - - - xop - application/xop+xml - - - xpi - application/x-xpinstall - - - xpm - image/x-xpixmap - - - xpr - application/vnd.is-xpr - - - xps - application/vnd.ms-xpsdocument - - - xpw - application/vnd.intercon.formnet - - - xpx - application/vnd.intercon.formnet - - - xsl - application/xml - - - xslt - application/xslt+xml - - - xsm - application/vnd.syncml+xml - - - xspf - application/xspf+xml - - - xul - application/vnd.mozilla.xul+xml - - - xvm - application/xv+xml - - - xvml - application/xv+xml - - - xwd - image/x-xwindowdump - - - xyz - chemical/x-xyz - - - yang - application/yang - - - yin - application/yin+xml - - - z - application/x-compress - - - Z - application/x-compress - - - zaz - application/vnd.zzazz.deck+xml - - - zip - application/zip - - - zir - application/vnd.zul - - - zirz - application/vnd.zul - - - zmm - application/vnd.handheld-entertainment+xml - - - - - - - - - - - - - - - - - - index.html - index.htm - index.jsp - - - diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/logs/access_log.2025-01-06" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/logs/access_log.2025-01-06" deleted file mode 100644 index 773f569..0000000 --- "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/logs/access_log.2025-01-06" +++ /dev/null @@ -1,103 +0,0 @@ -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:17:59 +0800] "GET / HTTP/1.1" 200 2139 http-bio-80-exec-1 35 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:17:59 +0800] "GET /css/styles.css HTTP/1.1" 200 3191 http-bio-80-exec-3 3 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:17:59 +0800] "GET /js/axios.min.js HTTP/1.1" 200 54050 http-bio-80-exec-2 2 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:17:59 +0800] "GET /js/data.js HTTP/1.1" 200 5206 http-bio-80-exec-5 2 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:17:59 +0800] "GET /student HTTP/1.1" 404 965 http-bio-80-exec-7 2 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:18:00 +0800] "GET /favicon.ico HTTP/1.1" 404 973 http-bio-80-exec-8 1 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:18:00 +0800] "GET /student HTTP/1.1" 404 965 http-bio-80-exec-9 1 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:47:02 +0800] "GET /favicon.ico HTTP/1.1" 404 949 http-bio-80-exec-2 7 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:47:02 +0800] "GET /student HTTP/1.1" 404 949 http-bio-80-exec-1 96 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:47:02 +0800] "GET /student HTTP/1.1" 404 949 http-bio-80-exec-4 1 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:47:20 +0800] "GET /student HTTP/1.1" 404 949 http-bio-80-exec-6 1 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:47:20 +0800] "GET /student HTTP/1.1" 404 949 http-bio-80-exec-8 2 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:47:20 +0800] "GET /favicon.ico HTTP/1.1" 404 949 http-bio-80-exec-9 1 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:47:20 +0800] "GET /favicon.ico HTTP/1.1" 404 949 http-bio-80-exec-10 1 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:47:25 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-10 698 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:50:09 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-1 774 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:50:12 +0800] "GET /blog/1 HTTP/1.1" 200 116 http-bio-80-exec-3 20 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:50:26 +0800] "GET /blog?title=1 HTTP/1.1" 200 12 http-bio-80-exec-4 102 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:13 +0800] "GET /blog/1 HTTP/1.1" 200 116 http-bio-80-exec-6 17 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:50 +0800] "GET /student HTTP/1.1" 404 949 http-bio-80-exec-8 5 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:55 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-9 1 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:57 +0800] "GET / HTTP/1.1" 200 2139 http-bio-80-exec-10 8 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:57 +0800] "GET /css/styles.css HTTP/1.1" 200 3191 http-bio-80-exec-10 2 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:57 +0800] "GET /js/axios.min.js HTTP/1.1" 200 54050 http-bio-80-exec-7 3 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:57 +0800] "GET /js/data.js HTTP/1.1" 200 5193 http-bio-80-exec-4 5 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:57 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-4 4 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:57 +0800] "GET /favicon.ico HTTP/1.1" 404 949 http-bio-80-exec-7 1 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:57 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-7 1 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:53:53 +0800] "GET / HTTP/1.1" 200 2136 http-bio-80-exec-7 5 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:53:53 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-7 3 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:53:54 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-7 10 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:54:01 +0800] "GET /blog?title=%E8%BE%89%E8%BE%89 HTTP/1.1" 200 118 http-bio-80-exec-7 5 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:54:03 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-7 2 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:54:03 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-7 1 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:54:03 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-7 4 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:54:13 +0800] "GET /blog/2 HTTP/1.1" 200 119 http-bio-80-exec-7 3 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:54:37 +0800] "GET / HTTP/1.1" 200 2133 http-bio-80-exec-7 3 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:54:37 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-7 2 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:54:38 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-7 233 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:30 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-7 2 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:30 +0800] "GET /js/data.js HTTP/1.1" 200 5177 http-bio-80-exec-7 3 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:30 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-7 9 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:32 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-7 1 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:33 +0800] "GET / HTTP/1.1" 200 2133 http-bio-80-exec-7 1 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:33 +0800] "GET /css/styles.css HTTP/1.1" 200 3191 http-bio-80-exec-7 2 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:33 +0800] "GET /js/axios.min.js HTTP/1.1" 200 54050 http-bio-80-exec-5 2 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:33 +0800] "GET /js/data.js HTTP/1.1" 200 5177 http-bio-80-exec-5 1 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:33 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-4 4 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:33 +0800] "GET /favicon.ico HTTP/1.1" 404 949 http-bio-80-exec-4 2 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:33 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-4 1 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:35 +0800] "GET /blog/1 HTTP/1.1" 200 116 http-bio-80-exec-4 3 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:37 +0800] "PUT /blog HTTP/1.1" 200 11 http-bio-80-exec-4 47 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:38 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-4 7 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:03 +0800] "POST /blog HTTP/1.1" 200 11 http-bio-80-exec-4 5 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:04 +0800] "GET /blog HTTP/1.1" 200 337 http-bio-80-exec-4 4 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:05 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-4 2 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:05 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-4 2 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:05 +0800] "GET /blog HTTP/1.1" 200 337 http-bio-80-exec-4 4 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:05 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-4 2 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:05 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-4 1 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:05 +0800] "GET /blog HTTP/1.1" 200 337 http-bio-80-exec-4 4 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:05 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-4 1 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:07 +0800] "GET /blog/3 HTTP/1.1" 200 119 http-bio-80-exec-4 3 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:12 +0800] "DELETE /blog/3 HTTP/1.1" 500 4607 http-bio-80-exec-4 20 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:24 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-5 1 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:24 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-5 1 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:24 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-5 11 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:24 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-5 2 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:52 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-5 2 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:52 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-5 3 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:52 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-5 5 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:52 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-5 1 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:58:55 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-1 48 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:58:55 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-3 7 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:58:55 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-2 14 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:58:56 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-4 776 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:59:00 +0800] "POST /blog HTTP/1.1" 200 11 http-bio-80-exec-6 56 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:59:01 +0800] "GET /blog HTTP/1.1" 200 337 http-bio-80-exec-7 5 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:59:04 +0800] "DELETE /blog/4 HTTP/1.1" 200 11 http-bio-80-exec-8 21 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:59:05 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-9 3 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:32:36 +0800] "GET / HTTP/1.1" 200 2133 http-bio-80-exec-1 132 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:32:36 +0800] "GET /js/data.js HTTP/1.1" 200 5177 http-bio-80-exec-3 24 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:32:36 +0800] "GET /favicon.ico HTTP/1.1" 404 949 http-bio-80-exec-2 5 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:32:37 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-4 1045 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:32:37 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-5 4 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:34:27 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-8 12 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:34:27 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-10 15 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:34:53 +0800] "GET /blog?title=%E9%99%88 HTTP/1.1" 200 121 http-bio-80-exec-10 77 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:35:24 +0800] "GET /blog/1 HTTP/1.1" 200 116 http-bio-80-exec-10 8 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:35:55 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-10 12 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:35:55 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-10 7 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:36:18 +0800] "DELETE /blog/2 HTTP/1.1" 200 11 http-bio-80-exec-10 237 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:36:19 +0800] "GET /blog HTTP/1.1" 200 118 http-bio-80-exec-10 3 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:36:36 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-10 13 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:36:36 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-10 14 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:36:36 +0800] "GET /blog HTTP/1.1" 200 118 http-bio-80-exec-10 4 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:36:55 +0800] "POST /blog HTTP/1.1" 200 11 http-bio-80-exec-10 48 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:36:56 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-10 3 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:37:23 +0800] "GET /blog/5 HTTP/1.1" 200 119 http-bio-80-exec-10 4 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:38:19 +0800] "PUT /blog HTTP/1.1" 200 11 http-bio-80-exec-10 7 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:38:20 +0800] "GET /blog HTTP/1.1" 200 230 http-bio-80-exec-10 7 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:39:30 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-1 13 -0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:39:30 +0800] "GET /blog HTTP/1.1" 200 230 http-bio-80-exec-1 8 -- Gitee From b247c6277a6b3203dcde868bb766465c1b8712ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=94=A1=E7=8E=AE=E9=93=AD?= <2373854303@qq.com> Date: Mon, 6 Jan 2025 10:39:15 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=8F=90=E4=BA=A4106=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\347\273\203\344\271\240(\345\233\233).md" | 943 ++++ .../MyBlog/.idea/.gitignore" | 8 + .../MyBlog/.idea/compiler.xml" | 16 + .../MyBlog/.idea/dataSources.xml" | 12 + .../MyBlog/.idea/encodings.xml" | 7 + .../MyBlog/.idea/jarRepositories.xml" | 20 + .../MyBlog/.idea/misc.xml" | 17 + .../MyBlog/.idea/sqldialects.xml" | 6 + .../MyBlog/pom.xml" | 103 + .../src/main/java/com/config/JdbcConfig.java" | 20 + .../main/java/com/config/MyBatisConfig.java" | 19 + .../main/java/com/config/SpringConfig.java" | 11 + .../java/com/config/SpringMvcConfig.java" | 17 + .../src/main/java/com/config/WebConfig.java" | 20 + .../java/com/controller/BlogController.java" | 55 + .../src/main/java/com/entity/Blog.java" | 15 + .../src/main/java/com/mapper/BlogMapper.java" | 33 + .../main/java/com/service/BlogService.java" | 25 + .../com/service/impl/BlogServiceImpl.java" | 53 + .../MyBlog/src/main/webapp/css/styles.css" | 128 + .../MyBlog/src/main/webapp/index.html" | 62 + .../MyBlog/src/main/webapp/js/axios.min.js" | 2 + .../MyBlog/src/main/webapp/js/book.js" | 188 + .../MyBlog/src/main/webapp/js/data.js" | 182 + .../classes/com/config/JdbcConfig.class" | Bin 0 -> 890 bytes .../classes/com/config/MyBatisConfig.class" | Bin 0 -> 889 bytes .../classes/com/config/SpringConfig.class" | Bin 0 -> 591 bytes .../classes/com/config/SpringMvcConfig.class" | Bin 0 -> 1284 bytes .../classes/com/config/WebConfig.class" | Bin 0 -> 830 bytes .../com/controller/BlogController.class" | Bin 0 -> 3615 bytes .../target/classes/com/entity/Blog.class" | Bin 0 -> 2949 bytes .../classes/com/mapper/BlogMapper.class" | Bin 0 -> 1261 bytes .../classes/com/service/BlogService.class" | Bin 0 -> 510 bytes .../com/service/impl/BlogServiceImpl.class" | Bin 0 -> 2823 bytes .../compile/default-compile/createdFiles.lst" | 10 + .../compile/default-compile/inputFiles.lst" | 10 + .../target/tomcat/conf/logging.properties" | 64 + .../target/tomcat/conf/tomcat-users.xml" | 26 + .../MyBlog/target/tomcat/conf/web.xml" | 4283 +++++++++++++++++ .../target/tomcat/logs/access_log.2025-01-06" | 103 + 40 files changed, 6458 insertions(+) create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233).md" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/.gitignore" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/compiler.xml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/dataSources.xml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/encodings.xml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/jarRepositories.xml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/misc.xml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/sqldialects.xml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/pom.xml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/JdbcConfig.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/MyBatisConfig.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/SpringConfig.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/SpringMvcConfig.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/WebConfig.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/controller/BlogController.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/entity/Blog.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/mapper/BlogMapper.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/service/BlogService.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/service/impl/BlogServiceImpl.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/css/styles.css" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/index.html" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/axios.min.js" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/book.js" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/data.js" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/JdbcConfig.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/MyBatisConfig.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/SpringConfig.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/SpringMvcConfig.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/WebConfig.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/controller/BlogController.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/entity/Blog.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/mapper/BlogMapper.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/service/BlogService.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/service/impl/BlogServiceImpl.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/logging.properties" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/tomcat-users.xml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/web.xml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/logs/access_log.2025-01-06" diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233).md" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233).md" new file mode 100644 index 0000000..4f1b137 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233).md" @@ -0,0 +1,943 @@ +## 课堂笔记 + +#### **综合练习(四)(博客管理系统)** + +**一、准备sql数据** + +**二、设置好 Maven 并导入依赖项** + +**三、构建好项目结构** + +**四、编写 Blog 实体类、Blog 里的各种配置类** + +**五、编写 BlogMapper 接口、BlogService 接口、BlogServiceImpl 实现类** + +**六、编写 BlogController 类** + +**七、启动Tomcat** + +**八、修改前端请求页面** + +**九、浏览器 开始测试各个请求** + +## 课后作业 + +#### **综合练习(四)(博客管理系统)** + +#### **项目结构预览** + +![image-20250106093256468](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128919.png) + +#### 具体步骤 + +##### **一、准备sql数据** + +```sql +/* + Navicat Premium Dump SQL + + Source Server : mysql + Source Server Type : MySQL + Source Server Version : 80034 (8.0.34) + Source Host : localhost:3306 + Source Schema : demo + + Target Server Type : MySQL + Target Server Version : 80034 (8.0.34) + File Encoding : 65001 + + Date: 06/01/2025 08:15:18 +*/ + +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- ---------------------------- +-- Table structure for blog +-- ---------------------------- +DROP TABLE IF EXISTS `blog`; +CREATE TABLE `blog` ( + `blogId` int NOT NULL AUTO_INCREMENT, + `blogTitle` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, + `blogAuthor` varchar(50) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, + `blogText` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`blogId`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb3 COLLATE = utf8mb3_general_ci ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of blog +-- ---------------------------- +INSERT INTO `blog` VALUES (1, '辉辉的个人博客', '刘文辉', '这是一个博客'); +INSERT INTO `blog` VALUES (2, '陈俊杰的个人博客', '陈俊杰', '这是一个博客'); + +SET FOREIGN_KEY_CHECKS = 1; +``` + +##### **二、设置好 Maven 并导入依赖项** + +**pom.xml 依赖配置文件** + +```xml + + 4.0.0 + com.jd + myBlog + war + 1.0-SNAPSHOT + + + UTF-8 + + + + + org.springframework + spring-webmvc + 5.2.25.RELEASE + + + + + org.springframework + spring-test + 5.2.25.RELEASE + + + + + org.springframework + spring-jdbc + 5.2.25.RELEASE + + + + javax.servlet + javax.servlet-api + 3.1.0 + provided + + + + com.fasterxml.jackson.core + jackson-databind + 2.9.0 + + + + + org.projectlombok + lombok + 1.18.36 + + + + org.mybatis + mybatis + 3.5.16 + + + + + com.mysql + mysql-connector-j + 8.3.0 + + + + junit + junit + 4.13.2 + test + + + + + com.alibaba + druid + 1.1.20 + + + + + + org.mybatis + mybatis-spring + 2.0.6 + + + + + + org.apache.tomcat.maven + tomcat7-maven-plugin + 2.2 + + / + 80 + utf-8 + + + + + +``` + +##### **三、构建好项目结构** + +![image-20250106093316939](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128929.png) + +##### **四、编写 Blog 实体类、config 里的各种配置类** + + **Blog 实体类** + +```java +package com.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data // 自动生成 set,get,toString 方法 +@AllArgsConstructor // 自动生成 有参构造 方法 +@NoArgsConstructor // 自动生成 无参构造 方法 +public class Blog { + private int blogId; + private String blogTitle; + private String blogAuthor; + private String blogText; +} +``` + +**JdbcConfig 配置类** + +```java +package com.config; + +import com.alibaba.druid.pool.DruidDataSource; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Component; + +import javax.sql.DataSource; + +@Component // 声明组件 +public class JdbcConfig { + @Bean // 创建一个Bean + public DataSource dataSource(){ + DruidDataSource druidDataSource = new DruidDataSource(); + druidDataSource.setDriverClassName("com.mysql.cj.jdbc.Driver"); + druidDataSource.setUrl("jdbc:mysql:///demo"); + druidDataSource.setUsername("root"); + druidDataSource.setPassword("123456"); + return druidDataSource; + } +} +``` + +**MybatisConfig 配置类** + +```java +package com.config; + +import org.mybatis.spring.SqlSessionFactoryBean; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Component; + +import javax.sql.DataSource; + +@Component // 声明组件 +@MapperScan("com.mapper") // 扫包 +public class MyBatisConfig { + @Bean // 创建一个Bean + public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){ + SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); + sqlSessionFactoryBean.setDataSource(dataSource); + return sqlSessionFactoryBean; + } +} +``` + +**SpringConfig 配置类** + +```java +package com.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; + +@Configuration // 声明为配置文件 +@ComponentScan("com.service") // 扫包 +@Import({JdbcConfig.class, MyBatisConfig.class}) // 导入类 +public class SpringConfig { +} +``` + +**SpringMvcConfig 配置类** + +```java +package com.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration // 声明为配置文件 +@ComponentScan("com.controller") // 扫包 +@EnableWebMvc // MVC 核心注解 +public class SpringMvcConfig implements WebMvcConfigurer { + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + registry.addResourceHandler("/**").addResourceLocations("/"); + } +} +``` + +**WebConfig 配置类** + +```java +package com.config; + +import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; + +public class WebConfig extends AbstractAnnotationConfigDispatcherServletInitializer { + @Override + protected Class[] getRootConfigClasses() { + return new Class[]{SpringConfig.class}; + } + + @Override + protected Class[] getServletConfigClasses() { + return new Class[]{SpringMvcConfig.class}; + } + + @Override + protected String[] getServletMappings() { + return new String[]{"/"}; + } +} +``` + +##### **五、编写 BlogMapper 接口、BlogService 接口、BlogServiceImpl 实现类** + +**BlogMapper 接口** + +```java +package com.mapper; + +import com.entity.Blog; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +@Mapper // 声明为 Mapper 配置文件 +public interface BlogMapper { + // 查询所有博客信息 + @Select("select * from blog;") + List selectAllBlogs(); + + // id 查询一个博客信息 + @Select("select * from blog where blogId = #{id};") + Blog selectOneBlogById(int id); + + // title 查询博客信息 + @Select("select * from blog where blogTitle like '%${title}%';") + List selectOneBlogByTitle(String title); + + // id 删除一个博客信息 + @Delete("delete from blog where blogId = #{id};") + int deleteOneBlog(int id); + + // 新增一个博客信息 + @Insert("insert into blog (blogTitle, blogAuthor, blogText) values (#{blogTitle},#{blogAuthor},#{blogText});") + int insertOneBlog(Blog blog); + + // 修改一个博客信息 + @Update("update blog set blogTitle= #{blogTitle},blogAuthor= #{blogAuthor}, blogText= #{blogText} where blogId = #{blogId};") + int updateOneBlog(Blog blog); +} +``` + +**BlogService 接口** + +```java +package com.service; + +import com.entity.Blog; + +import java.util.List; + +public interface BlogService { + // 查询所有博客信息 + List selectAllBlogs(); + + // id 查询一个博客信息 + Blog selectOneBlogById(int id); + + // title 查询博客信息 + List selectOneBlogByTitle(String title); + + // id 删除一个博客信息 + int deleteOneBlog(int id); + + // 新增一个博客信息 + int insertOneBlog(Blog blog); + + // 修改一个博客信息 + int updateOneBlog(Blog blog); +} +``` + +**BlogServiceImpl 实现类** + +```java +package com.service.impl; + +import com.entity.Blog; +import com.mapper.BlogMapper; +import com.service.BlogService; +import lombok.Data; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Data // 自动生成 set,get,toString 方法 +@Service // 声明为 Service 配置文件 +public class BlogServiceImpl implements BlogService { + @Autowired // 自动装配 + private BlogMapper blogMapper; // 注入接口 + + // 查询所有博客信息 + @Override + public List selectAllBlogs() { + return blogMapper.selectAllBlogs(); + } + + // id 查询一个博客信息 + @Override + public Blog selectOneBlogById(int id) { + return blogMapper.selectOneBlogById(id); + } + + // title 查询博客信息 + @Override + public List selectOneBlogByTitle(String title) { + return blogMapper.selectOneBlogByTitle(title); + } + + // id 删除一个博客信息 + @Override + public int deleteOneBlog(int id) { + return blogMapper.deleteOneBlog(id); + } + + // 新增一个博客信息 + @Override + public int insertOneBlog(Blog blog) { + return blogMapper.insertOneBlog(blog); + } + + // 修改一个博客信息 + @Override + public int updateOneBlog(Blog blog) { + return blogMapper.updateOneBlog(blog); + } +} +``` + +##### **六、编写 BlogController 类** + +**BlogController 类** + +```java +package com.controller; + +import com.entity.Blog; +import com.service.BlogService; +import lombok.Data; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@Data // 自动生成 set,get,toString 方法 +@RestController // 声明为 RestController 配置文件 +@CrossOrigin // 跨域运行 +@RequestMapping("/blog") // 请求地址 + +public class BlogController { + @Autowired // 自动装配 + private BlogService blogService; // 注入接口 + + // 查询所有博客信息 + @GetMapping + public List selectAllBlogs() { + return blogService.selectAllBlogs(); + } + + // id 查询一个博客信息 + @GetMapping("/{id}") + public Blog selectOneBlogById(@PathVariable String id) { + return blogService.selectOneBlogById(Integer.parseInt(id)); + } + + // title 查询博客信息 + @GetMapping(params = "title") + public List selectOneBlogByTitle(String title) { + return blogService.selectOneBlogByTitle(title); + } + + // id 删除一个博客信息 + @DeleteMapping("/{id}") + public int deleteOneBlog(@PathVariable String id) { + return blogService.deleteOneBlog(Integer.parseInt(id)); + } + + // 新增一个博客信息 + @PostMapping + public int insertOneBlog(@RequestBody Blog blog) { + return blogService.insertOneBlog(blog); + } + + // 修改一个博客信息 + @PutMapping + public int updateOneBlog(@RequestBody Blog blog) { + return blogService.updateOneBlog(blog); + } +} +``` + +##### **七、启动Tomcat** + +![image-20250106093354463](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128936.png) + +##### **八、修改前端请求页面** + +**index.html** + +```html + + + + + + + 学生管理系统 + + + + +
+ +

博客管理系统

+
+ + + + +
+ + + + + + + + + + + + + + + + +
ID标题作者文本操作
+ +
+ + + +``` + +**styles.css** + +```css +body { + font-family: Arial, sans-serif; + background-color: #e0f7fa; /* 浅蓝色背景 */ + margin: 0; + padding: 20px; +} + +.container { + max-width: 800px; + margin: 0 auto; + background: #ffffff; /* 保持白色背景,或者可以更改为更浅的蓝色 */ + padding: 20px; + box-shadow: 0 0 10px rgba(0, 123, 255, 0.1); /* 蓝色阴影 */ +} + +h1 { + text-align: center; + color: #007bff; /* 深蓝色标题 */ +} + +#search-box { + padding: 10px; + width: calc(100% - 120px); + border: 1px solid #cce5ff; /* 浅蓝色边框 */ + border-radius: 4px; + height: 18px; +} + +#add-book-btn { + padding: 10px 20px; + background-color: #007bff; /* 深蓝色按钮 */ + color: white; + border: none; + height: 40px; + border-radius: 4px; + cursor: pointer; +} + +#add-book-btn:hover { + background-color: #0056b3; /* 深一些的蓝色按钮悬停效果 */ +} + +table { + width: 100%; + border-collapse: collapse; + margin-bottom: 20px; +} + +th, td { + padding: 10px; + border: 1px solid #cce5ff; /* 浅蓝色边框 */ + text-align: center; +} + +th { + background-color: #d1ecf1; /* 浅蓝色表头背景 */ +} +tr:hover { + background-color: #e0f7fa; /* 浅蓝色高亮背景,与页面背景相近但稍浅 */ +} +.modal { + display: none; + position: fixed; + z-index: 1; + left: 0; + top: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.4); /* 蓝色半透明背景 */ +} + +.modal-content { + background-color: #fefefe; /* 保持白色背景,或者可以更改为更浅的蓝色 */ + /* 注意:以下两行原本用于居中的代码是错误的,应该移除或更正 */ + transform: translate(60%, 40%); + /* margin应该用于.modal而不是.modal-content来实现居中 */ + padding: 35px; + border: 1px solid #cce5ff; /* 浅蓝色边框 */ + width: 40%; + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); /* 蓝色阴影 */ + /* 为了实现.modal-content的居中,您可能需要添加额外的CSS或使用JavaScript */ +} + +/* 注意:.close-btn的颜色已经在.modal-content之外定义,如果需要更改为蓝色调,可以如下修改 */ +.close-btn { + color: #007bff; /* 深蓝色关闭按钮 */ + float: right; + font-size: 28px; + font-weight: bold; + cursor: pointer; +} + +.close-btn:hover, +.close-btn:focus { + color: #0056b3; /* 深一些的蓝色关闭按钮悬停效果 */ + text-decoration: none; + cursor: pointer; +} + +form { + display: flex; + flex-direction: column; +} + +label { + margin-bottom: 8px; + color: #007bff; /* 深蓝色标签 */ +} + +input[type="text"], input[type="hidden"] { + margin-bottom: 15px; + padding: 10px; + border: 1px solid #cce5ff; /* 浅蓝色边框 */ + border-radius: 4px; +} + +button[type="submit"] { + padding: 10px 20px; + background-color: #007bff; /* 深蓝色提交按钮 */ + color: white; + border: none; + border-radius: 4px; + cursor: pointer; +} + +button[type="submit"]:hover { + background-color: #0056b3; /* 深一些的蓝色提交按钮悬停效果 */ +} +``` + +**data.js** + +```javascript +// 私有变量 +const addBtn = document.querySelector('#add-btn'); +const modal = document.querySelector('.modal'); +const closeModalBtn = document.querySelector('#close-form-btn'); +const tbody = document.querySelector('tbody'); +const form = document.querySelector('#item-form'); +const searchBox = document.querySelector("#search-box"); +const formTitle = document.querySelector("#form-title"); + +// 表单选项 +//#######################改改改################################ +let studentId = document.querySelector("#studentId"); +let studentName = document.querySelector("#studentName"); +let classname = document.querySelector("#classname"); +let classTeacher = document.querySelector("#classTeacher"); +//############################################################# + + +let data = []; +// api接口设置 +// const API_BASE_URL = "http://localhost/book"; +const API_BASE_URL = "http://localhost/blog"; // #### 改改改 #### + +// 搜索功能 +function search(name) { + axios.get(API_BASE_URL + `?title=${name}`).then(res => { + data = res.data; + renderTable(data); + }); +} + +// 渲染表格数据 # 修改item.后面的属性名称 +function renderTable(data) { + if (data.length === 0) return alert("无内容"); + tbody.innerHTML = data.map(item => { + return ` + ${item.blogId} + ${item.blogTitle} + ${item.blogAuthor} + ${item.blogText} + + + + + `; + }).join(''); + + // 添加事件监听器(事件委托) + tbody.addEventListener('click', handleTableClick); +} + +// 更新,先回显要被修改的旧数据 +function update(id) { + axios.get(API_BASE_URL + `/${id}`).then(res => { + const data = res.data; + showOrCloseModal(); + form.reset(); + + // ########以下内容要修改########## + + // formTitle.innerText = '更新图书'; + formTitle.innerText = '更新博客'; + studentId.value = data.blogId; + studentName.value = data.blogTitle; + classname.value = data.blogAuthor; + classTeacher.value = data.blogText; + + // ######以上内容要修改##### + }); +} + + +// 处理表格点击事件 +function handleTableClick(e) { + if (e.target.classList.contains('delete-btn')) { + deleteItem(e.target.closest('tr').dataset.id); + } else if (e.target.classList.contains('update-btn')) { + update(e.target.closest('tr').dataset.id); + } +} + +// 开关浮层 +function showOrCloseModal(show = true) { + if (show) { + modal.style.display = 'block'; + } else { + modal.style.display = 'none'; + } + + studentId.value = null; // 重置当前编辑的图书ID + +} + +// 获取列表 +function fetch() { + axios.get(API_BASE_URL).then(res => { + console.log(res) + data = res.data; + renderTable(data); + }); + +} + +// 根据id删除 +function deleteItem(id) { + if (!confirm("真的要删除吗?")) return; + axios.delete(API_BASE_URL + `/${id}`).then(res => { + alert("删除成功!") + fetch(); + }); +} + + +// 点击保存按钮:添加或更新图书 +function save() { + + // 获取表单项的值######改改##### + + // 非空判断 + if (!studentName.value || !classname.value || !classTeacher.value) { + alert("所有字段都必须填写!"); + return; + } + // 表单项的值,封装成一个对象 + const item = { + blogId: studentId.value || null, // 如果为空,则视为添加新图书 + blogTitle: studentName.value, + blogAuthor: classname.value, + blogText: classTeacher.value + }; + + // 根据编号判断是添加还是更新 + if (studentId.value!='') { + axios.put(API_BASE_URL, item).then(res => { + alert("修改成功") + fetch(); + showOrCloseModal(false); + }) + } else { + axios.post(API_BASE_URL, item).then(res => { + console.log(item) + alert("添加成功") + fetch(); + showOrCloseModal(false); + }) + } + +} + + +// 初始化事件监听器 +function init() { + addBtn.addEventListener('click', () => { + form.reset(); + // formTitle.innerText = '添加图书'; + formTitle.innerText = '添加博客'; + showOrCloseModal(); + }); + + closeModalBtn.addEventListener('click', () => { + studentId.value = null; //### 初始化id + showOrCloseModal(false); + }); + + form.addEventListener('submit', (e) => { + e.preventDefault(); + save(); + }); + + searchBox.addEventListener('keyup', (e) => { + if (e.key === "Enter") { + search(searchBox.value); + searchBox.value = ''; + } + }); + + // 初始加载列表 + fetch(); +} + +// 执行初始化函数 +init(); +``` + +##### **九、浏览器 开始测试各个请求** + +**查询所有博客信息请求并渲染展示** + +![image-20250106093434569](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128943.png) + +**用 name 查询博客信息请求并渲染展示** + +![image-20250106093506695](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128948.png) + +**用 id 查询博客信息请求** + +![image-20250106093532205](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128952.png) + +**用 id 删除博客信息请求** + +![image-20250106093607926](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128955.png) + +![image-20241230173052834](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/202412301730861.png) + +![image-20250106093625644](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736130733.png) + +**新增博客信息请求** + +![image-20250106093647461](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128957.png) + +![image-20241231170531708](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20241231_1735635931.png) + +![image-20250106093709919](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128972.png) + +**修改博客信息请求** + +![image-20250106093815883](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128977.png) + +![image-20241231170614831](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20241231_1735635974.png) + +![image-20250106093828905](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250106_1736128982.png) diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/.gitignore" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/.gitignore" new file mode 100644 index 0000000..35410ca --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/.gitignore" @@ -0,0 +1,8 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml +# 基于编辑器的 HTTP 客户端请求 +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/compiler.xml" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/compiler.xml" new file mode 100644 index 0000000..1a4bf9d --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/compiler.xml" @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/dataSources.xml" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/dataSources.xml" new file mode 100644 index 0000000..35a8929 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/dataSources.xml" @@ -0,0 +1,12 @@ + + + + + mysql.8 + true + com.mysql.cj.jdbc.Driver + jdbc:mysql://localhost:3306 + $ProjectFileDir$ + + + \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/encodings.xml" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/encodings.xml" new file mode 100644 index 0000000..aa00ffa --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/encodings.xml" @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/jarRepositories.xml" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/jarRepositories.xml" new file mode 100644 index 0000000..abb532a --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/jarRepositories.xml" @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/misc.xml" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/misc.xml" new file mode 100644 index 0000000..79a352f --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/misc.xml" @@ -0,0 +1,17 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/sqldialects.xml" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/sqldialects.xml" new file mode 100644 index 0000000..56782ca --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/.idea/sqldialects.xml" @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/pom.xml" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/pom.xml" new file mode 100644 index 0000000..b37d3ae --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/pom.xml" @@ -0,0 +1,103 @@ + + 4.0.0 + com.jd + myBlog + war + 1.0-SNAPSHOT + + + UTF-8 + + + + + org.springframework + spring-webmvc + 5.2.25.RELEASE + + + + + org.springframework + spring-test + 5.2.25.RELEASE + + + + + org.springframework + spring-jdbc + 5.2.25.RELEASE + + + + javax.servlet + javax.servlet-api + 3.1.0 + provided + + + + com.fasterxml.jackson.core + jackson-databind + 2.9.0 + + + + + org.projectlombok + lombok + 1.18.36 + + + + org.mybatis + mybatis + 3.5.16 + + + + + com.mysql + mysql-connector-j + 8.3.0 + + + + junit + junit + 4.13.2 + test + + + + + com.alibaba + druid + 1.1.20 + + + + + + org.mybatis + mybatis-spring + 2.0.6 + + + + + + org.apache.tomcat.maven + tomcat7-maven-plugin + 2.2 + + / + 80 + utf-8 + + + + + diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/JdbcConfig.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/JdbcConfig.java" new file mode 100644 index 0000000..d379cd1 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/JdbcConfig.java" @@ -0,0 +1,20 @@ +package com.config; + +import com.alibaba.druid.pool.DruidDataSource; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Component; + +import javax.sql.DataSource; + +@Component // 声明组件 +public class JdbcConfig { + @Bean // 创建一个Bean + public DataSource dataSource(){ + DruidDataSource druidDataSource = new DruidDataSource(); + druidDataSource.setDriverClassName("com.mysql.cj.jdbc.Driver"); + druidDataSource.setUrl("jdbc:mysql:///demo"); + druidDataSource.setUsername("root"); + druidDataSource.setPassword("123456"); + return druidDataSource; + } +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/MyBatisConfig.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/MyBatisConfig.java" new file mode 100644 index 0000000..81472cf --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/MyBatisConfig.java" @@ -0,0 +1,19 @@ +package com.config; + +import org.mybatis.spring.SqlSessionFactoryBean; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Component; + +import javax.sql.DataSource; + +@Component // 声明组件 +@MapperScan("com.mapper") // 扫包 +public class MyBatisConfig { + @Bean // 创建一个Bean + public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){ + SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); + sqlSessionFactoryBean.setDataSource(dataSource); + return sqlSessionFactoryBean; + } +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/SpringConfig.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/SpringConfig.java" new file mode 100644 index 0000000..3047958 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/SpringConfig.java" @@ -0,0 +1,11 @@ +package com.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; + +@Configuration // 声明为配置文件 +@ComponentScan("com.service") // 扫包 +@Import({JdbcConfig.class, MyBatisConfig.class}) // 导入类 +public class SpringConfig { +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/SpringMvcConfig.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/SpringMvcConfig.java" new file mode 100644 index 0000000..7c074af --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/SpringMvcConfig.java" @@ -0,0 +1,17 @@ +package com.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration // 声明为配置文件 +@ComponentScan("com.controller") // 扫包 +@EnableWebMvc // MVC 核心注解 +public class SpringMvcConfig implements WebMvcConfigurer { + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + registry.addResourceHandler("/**").addResourceLocations("/"); + } +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/WebConfig.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/WebConfig.java" new file mode 100644 index 0000000..8d00677 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/config/WebConfig.java" @@ -0,0 +1,20 @@ +package com.config; + +import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; + +public class WebConfig extends AbstractAnnotationConfigDispatcherServletInitializer { + @Override + protected Class[] getRootConfigClasses() { + return new Class[]{SpringConfig.class}; + } + + @Override + protected Class[] getServletConfigClasses() { + return new Class[]{SpringMvcConfig.class}; + } + + @Override + protected String[] getServletMappings() { + return new String[]{"/"}; + } +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/controller/BlogController.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/controller/BlogController.java" new file mode 100644 index 0000000..ca9934d --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/controller/BlogController.java" @@ -0,0 +1,55 @@ +package com.controller; + +import com.entity.Blog; +import com.service.BlogService; +import lombok.Data; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@Data // 自动生成 set,get,toString 方法 +@RestController // 声明为 RestController 配置文件 +@CrossOrigin // 跨域运行 +@RequestMapping("/blog") // 请求地址 + +public class BlogController { + @Autowired // 自动装配 + private BlogService blogService; // 注入接口 + + // 查询所有博客信息 + @GetMapping + public List selectAllBlogs() { + return blogService.selectAllBlogs(); + } + + // id 查询一个博客信息 + @GetMapping("/{id}") + public Blog selectOneBlogById(@PathVariable String id) { + return blogService.selectOneBlogById(Integer.parseInt(id)); + } + + // title 查询博客信息 + @GetMapping(params = "title") + public List selectOneBlogByTitle(String title) { + return blogService.selectOneBlogByTitle(title); + } + + // id 删除一个博客信息 + @DeleteMapping("/{id}") + public int deleteOneBlog(@PathVariable String id) { + return blogService.deleteOneBlog(Integer.parseInt(id)); + } + + // 新增一个博客信息 + @PostMapping + public int insertOneBlog(@RequestBody Blog blog) { + return blogService.insertOneBlog(blog); + } + + // 修改一个博客信息 + @PutMapping + public int updateOneBlog(@RequestBody Blog blog) { + return blogService.updateOneBlog(blog); + } +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/entity/Blog.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/entity/Blog.java" new file mode 100644 index 0000000..dcf5906 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/entity/Blog.java" @@ -0,0 +1,15 @@ +package com.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data // 自动生成 set,get,toString 方法 +@AllArgsConstructor // 自动生成 有参构造 方法 +@NoArgsConstructor // 自动生成 无参构造 方法 +public class Blog { + private int blogId; + private String blogTitle; + private String blogAuthor; + private String blogText; +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/mapper/BlogMapper.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/mapper/BlogMapper.java" new file mode 100644 index 0000000..7df0e32 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/mapper/BlogMapper.java" @@ -0,0 +1,33 @@ +package com.mapper; + +import com.entity.Blog; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +@Mapper // 声明为 Mapper 配置文件 +public interface BlogMapper { + // 查询所有博客信息 + @Select("select * from blog;") + List selectAllBlogs(); + + // id 查询一个博客信息 + @Select("select * from blog where blogId = #{id};") + Blog selectOneBlogById(int id); + + // title 查询博客信息 + @Select("select * from blog where blogTitle like '%${title}%';") + List selectOneBlogByTitle(String title); + + // id 删除一个博客信息 + @Delete("delete from blog where blogId = #{id};") + int deleteOneBlog(int id); + + // 新增一个博客信息 + @Insert("insert into blog (blogTitle, blogAuthor, blogText) values (#{blogTitle},#{blogAuthor},#{blogText});") + int insertOneBlog(Blog blog); + + // 修改一个博客信息 + @Update("update blog set blogTitle= #{blogTitle},blogAuthor= #{blogAuthor}, blogText= #{blogText} where blogId = #{blogId};") + int updateOneBlog(Blog blog); +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/service/BlogService.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/service/BlogService.java" new file mode 100644 index 0000000..28e72ec --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/service/BlogService.java" @@ -0,0 +1,25 @@ +package com.service; + +import com.entity.Blog; + +import java.util.List; + +public interface BlogService { + // 查询所有博客信息 + List selectAllBlogs(); + + // id 查询一个博客信息 + Blog selectOneBlogById(int id); + + // title 查询博客信息 + List selectOneBlogByTitle(String title); + + // id 删除一个博客信息 + int deleteOneBlog(int id); + + // 新增一个博客信息 + int insertOneBlog(Blog blog); + + // 修改一个博客信息 + int updateOneBlog(Blog blog); +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/service/impl/BlogServiceImpl.java" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/service/impl/BlogServiceImpl.java" new file mode 100644 index 0000000..9d140f7 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/java/com/service/impl/BlogServiceImpl.java" @@ -0,0 +1,53 @@ +package com.service.impl; + +import com.entity.Blog; +import com.mapper.BlogMapper; +import com.service.BlogService; +import lombok.Data; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Data // 自动生成 set,get,toString 方法 +@Service // 声明为 Service 配置文件 +public class BlogServiceImpl implements BlogService { + @Autowired // 自动装配 + private BlogMapper blogMapper; // 注入接口 + + // 查询所有博客信息 + @Override + public List selectAllBlogs() { + return blogMapper.selectAllBlogs(); + } + + // id 查询一个博客信息 + @Override + public Blog selectOneBlogById(int id) { + return blogMapper.selectOneBlogById(id); + } + + // title 查询博客信息 + @Override + public List selectOneBlogByTitle(String title) { + return blogMapper.selectOneBlogByTitle(title); + } + + // id 删除一个博客信息 + @Override + public int deleteOneBlog(int id) { + return blogMapper.deleteOneBlog(id); + } + + // 新增一个博客信息 + @Override + public int insertOneBlog(Blog blog) { + return blogMapper.insertOneBlog(blog); + } + + // 修改一个博客信息 + @Override + public int updateOneBlog(Blog blog) { + return blogMapper.updateOneBlog(blog); + } +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/css/styles.css" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/css/styles.css" new file mode 100644 index 0000000..fb397cd --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/css/styles.css" @@ -0,0 +1,128 @@ +body { + font-family: Arial, sans-serif; + background-color: #e0f7fa; /* 浅蓝色背景 */ + margin: 0; + padding: 20px; +} + +.container { + max-width: 800px; + margin: 0 auto; + background: #ffffff; /* 保持白色背景,或者可以更改为更浅的蓝色 */ + padding: 20px; + box-shadow: 0 0 10px rgba(0, 123, 255, 0.1); /* 蓝色阴影 */ +} + +h1 { + text-align: center; + color: #007bff; /* 深蓝色标题 */ +} + +#search-box { + padding: 10px; + width: calc(100% - 120px); + border: 1px solid #cce5ff; /* 浅蓝色边框 */ + border-radius: 4px; + height: 18px; +} + +#add-book-btn { + padding: 10px 20px; + background-color: #007bff; /* 深蓝色按钮 */ + color: white; + border: none; + height: 40px; + border-radius: 4px; + cursor: pointer; +} + +#add-book-btn:hover { + background-color: #0056b3; /* 深一些的蓝色按钮悬停效果 */ +} + +table { + width: 100%; + border-collapse: collapse; + margin-bottom: 20px; +} + +th, td { + padding: 10px; + border: 1px solid #cce5ff; /* 浅蓝色边框 */ + text-align: center; +} + +th { + background-color: #d1ecf1; /* 浅蓝色表头背景 */ +} +tr:hover { + background-color: #e0f7fa; /* 浅蓝色高亮背景,与页面背景相近但稍浅 */ +} +.modal { + display: none; + position: fixed; + z-index: 1; + left: 0; + top: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.4); /* 蓝色半透明背景 */ +} + +.modal-content { + background-color: #fefefe; /* 保持白色背景,或者可以更改为更浅的蓝色 */ + /* 注意:以下两行原本用于居中的代码是错误的,应该移除或更正 */ + transform: translate(60%, 40%); + /* margin应该用于.modal而不是.modal-content来实现居中 */ + padding: 35px; + border: 1px solid #cce5ff; /* 浅蓝色边框 */ + width: 40%; + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); /* 蓝色阴影 */ + /* 为了实现.modal-content的居中,您可能需要添加额外的CSS或使用JavaScript */ +} + +/* 注意:.close-btn的颜色已经在.modal-content之外定义,如果需要更改为蓝色调,可以如下修改 */ +.close-btn { + color: #007bff; /* 深蓝色关闭按钮 */ + float: right; + font-size: 28px; + font-weight: bold; + cursor: pointer; +} + +.close-btn:hover, +.close-btn:focus { + color: #0056b3; /* 深一些的蓝色关闭按钮悬停效果 */ + text-decoration: none; + cursor: pointer; +} + +form { + display: flex; + flex-direction: column; +} + +label { + margin-bottom: 8px; + color: #007bff; /* 深蓝色标签 */ +} + +input[type="text"], input[type="hidden"] { + margin-bottom: 15px; + padding: 10px; + border: 1px solid #cce5ff; /* 浅蓝色边框 */ + border-radius: 4px; +} + +button[type="submit"] { + padding: 10px 20px; + background-color: #007bff; /* 深蓝色提交按钮 */ + color: white; + border: none; + border-radius: 4px; + cursor: pointer; +} + +button[type="submit"]:hover { + background-color: #0056b3; /* 深一些的蓝色提交按钮悬停效果 */ +} \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/index.html" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/index.html" new file mode 100644 index 0000000..953d54d --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/index.html" @@ -0,0 +1,62 @@ + + + + + + + 学生管理系统 + + + + +
+ +

博客管理系统

+
+ + + + +
+ + + + + + + + + + + + + + + + +
ID标题作者文本操作
+ +
+ + + \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/axios.min.js" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/axios.min.js" new file mode 100644 index 0000000..0ac6c50 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/axios.min.js" @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).axios=t()}(this,(function(){"use strict";function e(e){var r,n;function o(r,n){try{var a=e[r](n),u=a.value,s=u instanceof t;Promise.resolve(s?u.v:u).then((function(t){if(s){var n="return"===r?"return":"next";if(!u.k||t.done)return o(n,t);t=e[n](t).value}i(a.done?"return":"normal",t)}),(function(e){o("throw",e)}))}catch(e){i("throw",e)}}function i(e,t){switch(e){case"return":r.resolve({value:t,done:!0});break;case"throw":r.reject(t);break;default:r.resolve({value:t,done:!1})}(r=r.next)?o(r.key,r.arg):n=null}this._invoke=function(e,t){return new Promise((function(i,a){var u={key:e,arg:t,resolve:i,reject:a,next:null};n?n=n.next=u:(r=n=u,o(e,t))}))},"function"!=typeof e.return&&(this.return=void 0)}function t(e,t){this.v=e,this.k=t}function r(e){var r={},n=!1;function o(r,o){return n=!0,o=new Promise((function(t){t(e[r](o))})),{done:!1,value:new t(o,1)}}return r["undefined"!=typeof Symbol&&Symbol.iterator||"@@iterator"]=function(){return this},r.next=function(e){return n?(n=!1,e):o("next",e)},"function"==typeof e.throw&&(r.throw=function(e){if(n)throw n=!1,e;return o("throw",e)}),"function"==typeof e.return&&(r.return=function(e){return n?(n=!1,e):o("return",e)}),r}function n(e){var t,r,n,i=2;for("undefined"!=typeof Symbol&&(r=Symbol.asyncIterator,n=Symbol.iterator);i--;){if(r&&null!=(t=e[r]))return t.call(e);if(n&&null!=(t=e[n]))return new o(t.call(e));r="@@asyncIterator",n="@@iterator"}throw new TypeError("Object is not async iterable")}function o(e){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var t=e.done;return Promise.resolve(e.value).then((function(e){return{value:e,done:t}}))}return o=function(e){this.s=e,this.n=e.next},o.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var r=this.s.return;return void 0===r?Promise.resolve({value:e,done:!0}):t(r.apply(this.s,arguments))},throw:function(e){var r=this.s.return;return void 0===r?Promise.reject(e):t(r.apply(this.s,arguments))}},new o(e)}function i(e){return new t(e,0)}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function u(e){for(var t=1;t=0;--i){var a=this.tryEntries[i],u=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var s=n.call(a,"catchLoc"),c=n.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),A(r),y}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;A(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:L(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),y}},t}function c(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}function f(e){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f(e)}function l(t){return function(){return new e(t.apply(this,arguments))}}function p(e,t,r,n,o,i,a){try{var u=e[i](a),s=u.value}catch(e){return void r(e)}u.done?t(s):Promise.resolve(s).then(n,o)}function h(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(e){p(i,n,o,a,u,"next",e)}function u(e){p(i,n,o,a,u,"throw",e)}a(void 0)}))}}function d(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function v(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r2&&void 0!==arguments[2]?arguments[2]:{},i=o.allOwnKeys,a=void 0!==i&&i;if(null!=e)if("object"!==f(e)&&(e=[e]),N(e))for(r=0,n=e.length;r0;)if(t===(r=n[o]).toLowerCase())return r;return null}var Q="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,Z=function(e){return!_(e)&&e!==Q};var ee,te=(ee="undefined"!=typeof Uint8Array&&j(Uint8Array),function(e){return ee&&e instanceof ee}),re=P("HTMLFormElement"),ne=function(e){var t=Object.prototype.hasOwnProperty;return function(e,r){return t.call(e,r)}}(),oe=P("RegExp"),ie=function(e,t){var r=Object.getOwnPropertyDescriptors(e),n={};$(r,(function(r,o){var i;!1!==(i=t(r,o,e))&&(n[o]=i||r)})),Object.defineProperties(e,n)},ae="abcdefghijklmnopqrstuvwxyz",ue="0123456789",se={DIGIT:ue,ALPHA:ae,ALPHA_DIGIT:ae+ae.toUpperCase()+ue};var ce,fe,le,pe,he=P("AsyncFunction"),de=(ce="function"==typeof setImmediate,fe=U(Q.postMessage),ce?setImmediate:fe?(le="axios@".concat(Math.random()),pe=[],Q.addEventListener("message",(function(e){var t=e.source,r=e.data;t===Q&&r===le&&pe.length&&pe.shift()()}),!1),function(e){pe.push(e),Q.postMessage(le,"*")}):function(e){return setTimeout(e)}),ve="undefined"!=typeof queueMicrotask?queueMicrotask.bind(Q):"undefined"!=typeof process&&process.nextTick||de,ye={isArray:N,isArrayBuffer:C,isBuffer:function(e){return null!==e&&!_(e)&&null!==e.constructor&&!_(e.constructor)&&U(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:function(e){var t;return e&&("function"==typeof FormData&&e instanceof FormData||U(e.append)&&("formdata"===(t=A(e))||"object"===t&&U(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&C(e.buffer)},isString:F,isNumber:B,isBoolean:function(e){return!0===e||!1===e},isObject:D,isPlainObject:I,isReadableStream:G,isRequest:K,isResponse:V,isHeaders:X,isUndefined:_,isDate:q,isFile:M,isBlob:z,isRegExp:oe,isFunction:U,isStream:function(e){return D(e)&&U(e.pipe)},isURLSearchParams:J,isTypedArray:te,isFileList:H,forEach:$,merge:function e(){for(var t=Z(this)&&this||{},r=t.caseless,n={},o=function(t,o){var i=r&&Y(n,o)||o;I(n[i])&&I(t)?n[i]=e(n[i],t):I(t)?n[i]=e({},t):N(t)?n[i]=t.slice():n[i]=t},i=0,a=arguments.length;i3&&void 0!==arguments[3]?arguments[3]:{},o=n.allOwnKeys;return $(t,(function(t,n){r&&U(t)?e[n]=R(t,r):e[n]=t}),{allOwnKeys:o}),e},trim:function(e){return e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},stripBOM:function(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e},inherits:function(e,t,r,n){e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},toFlatObject:function(e,t,r,n){var o,i,a,u={};if(t=t||{},null==e)return t;do{for(i=(o=Object.getOwnPropertyNames(e)).length;i-- >0;)a=o[i],n&&!n(a,e,t)||u[a]||(t[a]=e[a],u[a]=!0);e=!1!==r&&j(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},kindOf:A,kindOfTest:P,endsWith:function(e,t,r){e=String(e),(void 0===r||r>e.length)&&(r=e.length),r-=t.length;var n=e.indexOf(t,r);return-1!==n&&n===r},toArray:function(e){if(!e)return null;if(N(e))return e;var t=e.length;if(!B(t))return null;for(var r=new Array(t);t-- >0;)r[t]=e[t];return r},forEachEntry:function(e,t){for(var r,n=(e&&e[Symbol.iterator]).call(e);(r=n.next())&&!r.done;){var o=r.value;t.call(e,o[0],o[1])}},matchAll:function(e,t){for(var r,n=[];null!==(r=e.exec(t));)n.push(r);return n},isHTMLForm:re,hasOwnProperty:ne,hasOwnProp:ne,reduceDescriptors:ie,freezeMethods:function(e){ie(e,(function(t,r){if(U(e)&&-1!==["arguments","caller","callee"].indexOf(r))return!1;var n=e[r];U(n)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=function(){throw Error("Can not rewrite read-only method '"+r+"'")}))}))},toObjectSet:function(e,t){var r={},n=function(e){e.forEach((function(e){r[e]=!0}))};return N(e)?n(e):n(String(e).split(t)),r},toCamelCase:function(e){return e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,r){return t.toUpperCase()+r}))},noop:function(){},toFiniteNumber:function(e,t){return null!=e&&Number.isFinite(e=+e)?e:t},findKey:Y,global:Q,isContextDefined:Z,ALPHABET:se,generateString:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:se.ALPHA_DIGIT,r="",n=t.length;e--;)r+=t[Math.random()*n|0];return r},isSpecCompliantForm:function(e){return!!(e&&U(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:function(e){var t=new Array(10);return function e(r,n){if(D(r)){if(t.indexOf(r)>=0)return;if(!("toJSON"in r)){t[n]=r;var o=N(r)?[]:{};return $(r,(function(t,r){var i=e(t,n+1);!_(i)&&(o[r]=i)})),t[n]=void 0,o}}return r}(e,0)},isAsyncFn:he,isThenable:function(e){return e&&(D(e)||U(e))&&U(e.then)&&U(e.catch)},setImmediate:de,asap:ve};function me(e,t,r,n,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),o&&(this.response=o,this.status=o.status?o.status:null)}ye.inherits(me,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:ye.toJSONObject(this.config),code:this.code,status:this.status}}});var be=me.prototype,ge={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((function(e){ge[e]={value:e}})),Object.defineProperties(me,ge),Object.defineProperty(be,"isAxiosError",{value:!0}),me.from=function(e,t,r,n,o,i){var a=Object.create(be);return ye.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(function(e){return"isAxiosError"!==e})),me.call(a,e.message,t,r,n,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};function we(e){return ye.isPlainObject(e)||ye.isArray(e)}function Ee(e){return ye.endsWith(e,"[]")?e.slice(0,-2):e}function Oe(e,t,r){return e?e.concat(t).map((function(e,t){return e=Ee(e),!r&&t?"["+e+"]":e})).join(r?".":""):t}var Se=ye.toFlatObject(ye,{},null,(function(e){return/^is[A-Z]/.test(e)}));function xe(e,t,r){if(!ye.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;var n=(r=ye.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!ye.isUndefined(t[e])}))).metaTokens,o=r.visitor||c,i=r.dots,a=r.indexes,u=(r.Blob||"undefined"!=typeof Blob&&Blob)&&ye.isSpecCompliantForm(t);if(!ye.isFunction(o))throw new TypeError("visitor must be a function");function s(e){if(null===e)return"";if(ye.isDate(e))return e.toISOString();if(!u&&ye.isBlob(e))throw new me("Blob is not supported. Use a Buffer instead.");return ye.isArrayBuffer(e)||ye.isTypedArray(e)?u&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function c(e,r,o){var u=e;if(e&&!o&&"object"===f(e))if(ye.endsWith(r,"{}"))r=n?r:r.slice(0,-2),e=JSON.stringify(e);else if(ye.isArray(e)&&function(e){return ye.isArray(e)&&!e.some(we)}(e)||(ye.isFileList(e)||ye.endsWith(r,"[]"))&&(u=ye.toArray(e)))return r=Ee(r),u.forEach((function(e,n){!ye.isUndefined(e)&&null!==e&&t.append(!0===a?Oe([r],n,i):null===a?r:r+"[]",s(e))})),!1;return!!we(e)||(t.append(Oe(o,r,i),s(e)),!1)}var l=[],p=Object.assign(Se,{defaultVisitor:c,convertValue:s,isVisitable:we});if(!ye.isObject(e))throw new TypeError("data must be an object");return function e(r,n){if(!ye.isUndefined(r)){if(-1!==l.indexOf(r))throw Error("Circular reference detected in "+n.join("."));l.push(r),ye.forEach(r,(function(r,i){!0===(!(ye.isUndefined(r)||null===r)&&o.call(t,r,ye.isString(i)?i.trim():i,n,p))&&e(r,n?n.concat(i):[i])})),l.pop()}}(e),t}function Re(e){var t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function Te(e,t){this._pairs=[],e&&xe(e,this,t)}var ke=Te.prototype;function je(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Ae(e,t,r){if(!t)return e;var n=r&&r.encode||je;ye.isFunction(r)&&(r={serialize:r});var o,i=r&&r.serialize;if(o=i?i(t,r):ye.isURLSearchParams(t)?t.toString():new Te(t,r).toString(n)){var a=e.indexOf("#");-1!==a&&(e=e.slice(0,a)),e+=(-1===e.indexOf("?")?"?":"&")+o}return e}ke.append=function(e,t){this._pairs.push([e,t])},ke.toString=function(e){var t=e?function(t){return e.call(this,t,Re)}:Re;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var Pe=function(){function e(){d(this,e),this.handlers=[]}return y(e,[{key:"use",value:function(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1}},{key:"eject",value:function(e){this.handlers[e]&&(this.handlers[e]=null)}},{key:"clear",value:function(){this.handlers&&(this.handlers=[])}},{key:"forEach",value:function(e){ye.forEach(this.handlers,(function(t){null!==t&&e(t)}))}}]),e}(),Le={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Ne={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:Te,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},_e="undefined"!=typeof window&&"undefined"!=typeof document,Ce="object"===("undefined"==typeof navigator?"undefined":f(navigator))&&navigator||void 0,Fe=_e&&(!Ce||["ReactNative","NativeScript","NS"].indexOf(Ce.product)<0),Ue="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,Be=_e&&window.location.href||"http://localhost",De=u(u({},Object.freeze({__proto__:null,hasBrowserEnv:_e,hasStandardBrowserWebWorkerEnv:Ue,hasStandardBrowserEnv:Fe,navigator:Ce,origin:Be})),Ne);function Ie(e){function t(e,r,n,o){var i=e[o++];if("__proto__"===i)return!0;var a=Number.isFinite(+i),u=o>=e.length;return i=!i&&ye.isArray(n)?n.length:i,u?(ye.hasOwnProp(n,i)?n[i]=[n[i],r]:n[i]=r,!a):(n[i]&&ye.isObject(n[i])||(n[i]=[]),t(e,r,n[i],o)&&ye.isArray(n[i])&&(n[i]=function(e){var t,r,n={},o=Object.keys(e),i=o.length;for(t=0;t-1,i=ye.isObject(e);if(i&&ye.isHTMLForm(e)&&(e=new FormData(e)),ye.isFormData(e))return o?JSON.stringify(Ie(e)):e;if(ye.isArrayBuffer(e)||ye.isBuffer(e)||ye.isStream(e)||ye.isFile(e)||ye.isBlob(e)||ye.isReadableStream(e))return e;if(ye.isArrayBufferView(e))return e.buffer;if(ye.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();if(i){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return xe(e,new De.classes.URLSearchParams,Object.assign({visitor:function(e,t,r,n){return De.isNode&&ye.isBuffer(e)?(this.append(t,e.toString("base64")),!1):n.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((r=ye.isFileList(e))||n.indexOf("multipart/form-data")>-1){var a=this.env&&this.env.FormData;return xe(r?{"files[]":e}:e,a&&new a,this.formSerializer)}}return i||o?(t.setContentType("application/json",!1),function(e,t,r){if(ye.isString(e))try{return(t||JSON.parse)(e),ye.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(r||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional||qe.transitional,r=t&&t.forcedJSONParsing,n="json"===this.responseType;if(ye.isResponse(e)||ye.isReadableStream(e))return e;if(e&&ye.isString(e)&&(r&&!this.responseType||n)){var o=!(t&&t.silentJSONParsing)&&n;try{return JSON.parse(e)}catch(e){if(o){if("SyntaxError"===e.name)throw me.from(e,me.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:De.classes.FormData,Blob:De.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};ye.forEach(["delete","get","head","post","put","patch"],(function(e){qe.headers[e]={}}));var Me=qe,ze=ye.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),He=Symbol("internals");function Je(e){return e&&String(e).trim().toLowerCase()}function We(e){return!1===e||null==e?e:ye.isArray(e)?e.map(We):String(e)}function Ge(e,t,r,n,o){return ye.isFunction(n)?n.call(this,t,r):(o&&(t=r),ye.isString(t)?ye.isString(n)?-1!==t.indexOf(n):ye.isRegExp(n)?n.test(t):void 0:void 0)}var Ke=function(e,t){function r(e){d(this,r),e&&this.set(e)}return y(r,[{key:"set",value:function(e,t,r){var n=this;function o(e,t,r){var o=Je(t);if(!o)throw new Error("header name must be a non-empty string");var i=ye.findKey(n,o);(!i||void 0===n[i]||!0===r||void 0===r&&!1!==n[i])&&(n[i||t]=We(e))}var i=function(e,t){return ye.forEach(e,(function(e,r){return o(e,r,t)}))};if(ye.isPlainObject(e)||e instanceof this.constructor)i(e,t);else if(ye.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))i(function(e){var t,r,n,o={};return e&&e.split("\n").forEach((function(e){n=e.indexOf(":"),t=e.substring(0,n).trim().toLowerCase(),r=e.substring(n+1).trim(),!t||o[t]&&ze[t]||("set-cookie"===t?o[t]?o[t].push(r):o[t]=[r]:o[t]=o[t]?o[t]+", "+r:r)})),o}(e),t);else if(ye.isHeaders(e)){var a,u=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=O(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){u=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(e.entries());try{for(u.s();!(a=u.n()).done;){var s=b(a.value,2),c=s[0];o(s[1],c,r)}}catch(e){u.e(e)}finally{u.f()}}else null!=e&&o(t,e,r);return this}},{key:"get",value:function(e,t){if(e=Je(e)){var r=ye.findKey(this,e);if(r){var n=this[r];if(!t)return n;if(!0===t)return function(e){for(var t,r=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;t=n.exec(e);)r[t[1]]=t[2];return r}(n);if(ye.isFunction(t))return t.call(this,n,r);if(ye.isRegExp(t))return t.exec(n);throw new TypeError("parser must be boolean|regexp|function")}}}},{key:"has",value:function(e,t){if(e=Je(e)){var r=ye.findKey(this,e);return!(!r||void 0===this[r]||t&&!Ge(0,this[r],r,t))}return!1}},{key:"delete",value:function(e,t){var r=this,n=!1;function o(e){if(e=Je(e)){var o=ye.findKey(r,e);!o||t&&!Ge(0,r[o],o,t)||(delete r[o],n=!0)}}return ye.isArray(e)?e.forEach(o):o(e),n}},{key:"clear",value:function(e){for(var t=Object.keys(this),r=t.length,n=!1;r--;){var o=t[r];e&&!Ge(0,this[o],o,e,!0)||(delete this[o],n=!0)}return n}},{key:"normalize",value:function(e){var t=this,r={};return ye.forEach(this,(function(n,o){var i=ye.findKey(r,o);if(i)return t[i]=We(n),void delete t[o];var a=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(function(e,t,r){return t.toUpperCase()+r}))}(o):String(o).trim();a!==o&&delete t[o],t[a]=We(n),r[a]=!0})),this}},{key:"concat",value:function(){for(var e,t=arguments.length,r=new Array(t),n=0;n1?r-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:Date.now();o=i,r=null,n&&(clearTimeout(n),n=null),e.apply(null,t)};return[function(){for(var e=Date.now(),t=e-o,u=arguments.length,s=new Array(u),c=0;c=i?a(s,e):(r=s,n||(n=setTimeout((function(){n=null,a(r)}),i-t)))},function(){return r&&a(r)}]}ye.inherits(Ye,me,{__CANCEL__:!0});var tt=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:3,n=0,o=Ze(50,250);return et((function(r){var i=r.loaded,a=r.lengthComputable?r.total:void 0,u=i-n,s=o(u);n=i;var c=m({loaded:i,total:a,progress:a?i/a:void 0,bytes:u,rate:s||void 0,estimated:s&&a&&i<=a?(a-i)/s:void 0,event:r,lengthComputable:null!=a},t?"download":"upload",!0);e(c)}),r)},rt=function(e,t){var r=null!=e;return[function(n){return t[0]({lengthComputable:r,total:e,loaded:n})},t[1]]},nt=function(e){return function(){for(var t=arguments.length,r=new Array(t),n=0;n1?t-1:0),n=1;n1?"since :\n"+u.map(At).join("\n"):" "+At(u[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return r};function Nt(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ye(null,e)}function _t(e){return Nt(e),e.headers=Ve.from(e.headers),e.data=Xe.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Lt(e.adapter||Me.adapter)(e).then((function(t){return Nt(e),t.data=Xe.call(e,e.transformResponse,t),t.headers=Ve.from(t.headers),t}),(function(t){return $e(t)||(Nt(e),t&&t.response&&(t.response.data=Xe.call(e,e.transformResponse,t.response),t.response.headers=Ve.from(t.response.headers))),Promise.reject(t)}))}var Ct="1.7.9",Ft={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){Ft[e]=function(r){return f(r)===e||"a"+(t<1?"n ":" ")+e}}));var Ut={};Ft.transitional=function(e,t,r){function n(e,t){return"[Axios v1.7.9] Transitional option '"+e+"'"+t+(r?". "+r:"")}return function(r,o,i){if(!1===e)throw new me(n(o," has been removed"+(t?" in "+t:"")),me.ERR_DEPRECATED);return t&&!Ut[o]&&(Ut[o]=!0,console.warn(n(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(r,o,i)}},Ft.spelling=function(e){return function(t,r){return console.warn("".concat(r," is likely a misspelling of ").concat(e)),!0}};var Bt={assertOptions:function(e,t,r){if("object"!==f(e))throw new me("options must be an object",me.ERR_BAD_OPTION_VALUE);for(var n=Object.keys(e),o=n.length;o-- >0;){var i=n[o],a=t[i];if(a){var u=e[i],s=void 0===u||a(u,i,e);if(!0!==s)throw new me("option "+i+" must be "+s,me.ERR_BAD_OPTION_VALUE)}else if(!0!==r)throw new me("Unknown option "+i,me.ERR_BAD_OPTION)}},validators:Ft},Dt=Bt.validators,It=function(){function e(t){d(this,e),this.defaults=t,this.interceptors={request:new Pe,response:new Pe}}var t;return y(e,[{key:"request",value:(t=h(s().mark((function e(t,r){var n,o;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this._request(t,r);case 3:return e.abrupt("return",e.sent);case 6:if(e.prev=6,e.t0=e.catch(0),e.t0 instanceof Error){n={},Error.captureStackTrace?Error.captureStackTrace(n):n=new Error,o=n.stack?n.stack.replace(/^.+\n/,""):"";try{e.t0.stack?o&&!String(e.t0.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(e.t0.stack+="\n"+o):e.t0.stack=o}catch(e){}}throw e.t0;case 10:case"end":return e.stop()}}),e,this,[[0,6]])}))),function(e,r){return t.apply(this,arguments)})},{key:"_request",value:function(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{};var r=t=st(this.defaults,t),n=r.transitional,o=r.paramsSerializer,i=r.headers;void 0!==n&&Bt.assertOptions(n,{silentJSONParsing:Dt.transitional(Dt.boolean),forcedJSONParsing:Dt.transitional(Dt.boolean),clarifyTimeoutError:Dt.transitional(Dt.boolean)},!1),null!=o&&(ye.isFunction(o)?t.paramsSerializer={serialize:o}:Bt.assertOptions(o,{encode:Dt.function,serialize:Dt.function},!0)),Bt.assertOptions(t,{baseUrl:Dt.spelling("baseURL"),withXsrfToken:Dt.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();var a=i&&ye.merge(i.common,i[t.method]);i&&ye.forEach(["delete","get","head","post","put","patch","common"],(function(e){delete i[e]})),t.headers=Ve.concat(a,i);var u=[],s=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(s=s&&e.synchronous,u.unshift(e.fulfilled,e.rejected))}));var c,f=[];this.interceptors.response.forEach((function(e){f.push(e.fulfilled,e.rejected)}));var l,p=0;if(!s){var h=[_t.bind(this),void 0];for(h.unshift.apply(h,u),h.push.apply(h,f),l=h.length,c=Promise.resolve(t);p0;)n._listeners[t](e);n._listeners=null}})),this.promise.then=function(e){var t,r=new Promise((function(e){n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},t((function(e,t,o){n.reason||(n.reason=new Ye(e,t,o),r(n.reason))}))}return y(e,[{key:"throwIfRequested",value:function(){if(this.reason)throw this.reason}},{key:"subscribe",value:function(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}},{key:"unsubscribe",value:function(e){if(this._listeners){var t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}}},{key:"toAbortSignal",value:function(){var e=this,t=new AbortController,r=function(e){t.abort(e)};return this.subscribe(r),t.signal.unsubscribe=function(){return e.unsubscribe(r)},t.signal}}],[{key:"source",value:function(){var t;return{token:new e((function(e){t=e})),cancel:t}}}]),e}(),zt=Mt;var Ht={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Ht).forEach((function(e){var t=b(e,2),r=t[0],n=t[1];Ht[n]=r}));var Jt=Ht;var Wt=function e(t){var r=new qt(t),n=R(qt.prototype.request,r);return ye.extend(n,qt.prototype,r,{allOwnKeys:!0}),ye.extend(n,r,null,{allOwnKeys:!0}),n.create=function(r){return e(st(t,r))},n}(Me);return Wt.Axios=qt,Wt.CanceledError=Ye,Wt.CancelToken=zt,Wt.isCancel=$e,Wt.VERSION=Ct,Wt.toFormData=xe,Wt.AxiosError=me,Wt.Cancel=Wt.CanceledError,Wt.all=function(e){return Promise.all(e)},Wt.spread=function(e){return function(t){return e.apply(null,t)}},Wt.isAxiosError=function(e){return ye.isObject(e)&&!0===e.isAxiosError},Wt.mergeConfig=st,Wt.AxiosHeaders=Ve,Wt.formToJSON=function(e){return Ie(ye.isHTMLForm(e)?new FormData(e):e)},Wt.getAdapter=Lt,Wt.HttpStatusCode=Jt,Wt.default=Wt,Wt})); +//# sourceMappingURL=axios.min.js.map diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/book.js" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/book.js" new file mode 100644 index 0000000..8661841 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/book.js" @@ -0,0 +1,188 @@ +(function () { + // 私有变量 + const addBtn = document.querySelector('#add-book-btn'); + const modal = document.querySelector('.modal'); + const closeModalBtn = document.querySelector('#close-form-btn'); + const tbody = document.querySelector('tbody'); + const form = document.querySelector('#book-form'); + const searchBox = document.querySelector("#search-box"); + const formTitle = document.querySelector("#form-title"); + + // 表单选项 + let itemId = document.querySelector("#book-id"); + let itemName = document.querySelector("#book-name"); + let itemAuthor = document.querySelector("#author"); + let itemPublisher = document.querySelector("#publisher"); + + + + let data = []; + // api接口设置 + const API_BASE_URL = "http://localhost/book"; + + // 搜索图书# 修改bookName + function searchBooks(query) { + axios.get(API_BASE_URL + `?bookName=${query}`).then(res => { + if (res.data.code === 500) { + alert(`${res.data.msg}`); + return; + } + data = res.data.data; + renderTable(data); + }); + } + + // 渲染表格数据 # 修改item.后面的属性名称 + function renderTable(data) { + if (data.length === 0) return alert("无内容"); + tbody.innerHTML = data.map(item => { + return ` + ${item.bookId} + ${item.bookName} + ${item.bookAuthor} + ${item.bookPublisher} + + + + + `; + }).join(''); + + // 添加事件监听器(事件委托) + tbody.addEventListener('click', handleTableClick); + } + + // 更新图书时,先回显要被修改的旧数据 + function updateBook(id) { + axios.get(API_BASE_URL + `/${id}`).then(res => { + const data = res.data.data; + showOrCloseModal(); + form.reset(); + // ########以下内容要修改########## + + formTitle.innerText = '更新图书'; + itemId.value = data.bookId; + itemName.value = data.bookName; + itemAuthor.value = data.bookAuthor; + itemPublisher.value = data.bookPublisher; + + // ######以上内容要修改##### + }); + } + + + // 处理表格点击事件 + function handleTableClick(e) { + if (e.target.classList.contains('delete-btn')) { + deleteBook(e.target.closest('tr').dataset.id); + } else if (e.target.classList.contains('update-btn')) { + updateBook(e.target.closest('tr').dataset.id); + } + } + + // 开关浮层 + function showOrCloseModal(show = true) { + if (show) { + modal.style.display = 'block'; + } else { + modal.style.display = 'none'; + } + + document.querySelector("#book-id").value = null; // 重置当前编辑的图书ID + } + + // 获取列表 + function fetchBooks() { + axios.get(API_BASE_URL).then(res => { + data = res.data.data; + renderTable(data); + }); + + } + + // 根据id删除 + function deleteBook(id) { + if (!confirm("真的要删除吗?")) return; + axios.delete(API_BASE_URL + `/${id}`).then(res => { + if (res.data.code === 500) return alert(res.data.msg) + alert(res.data.data); + fetchBooks(); + }); + } + + + + // 点击保存按钮:添加或更新图书 + function saveBook() { + // 获取表单项的值 + let bookId = itemId.value; + const bookName = itemName.value; + const bookAuthor = itemAuthor.value; + const bookPublisher = itemPublisher.value; + + // 非空判断 + if (!bookName || !bookAuthor || !bookPublisher) { + alert("所有字段都必须填写!"); + return; + } + + // 表单项的值,封装成一个对象 + const book = { + bookId: bookId || null, // 如果为空,则视为添加新图书 + bookName: bookName, + bookAuthor: bookAuthor, + bookPublisher: bookPublisher + }; + + // 根据编号判断是添加还是更新 + if (bookId) { + axios.put(API_BASE_URL, book).then(res => { + res.data.code === 200 ? alert(res.data.data) : alert(res.data.msg); + fetchBooks(); + showOrCloseModal(false); + }) + } else { + axios.post(API_BASE_URL, book).then(res => { + res.data.code === 200 ? alert(res.data.data) : alert(res.data.msg); + fetchBooks(); + showOrCloseModal(false); + }) + } + + } + + + + // 初始化事件监听器 + function init() { + addBtn.addEventListener('click', () => { + form.reset(); + formTitle.innerText = '添加图书'; + bookId = null; + showOrCloseModal(); + }); + + closeModalBtn.addEventListener('click', () => { + bookId = null; // 重置当前编辑的图书ID + showOrCloseModal(false); + }); + + form.addEventListener('submit', (e) => { + e.preventDefault(); + saveBook(); + }); + + searchBox.addEventListener('keyup', (e) => { + if (e.key === "Enter") { + searchBooks(searchBox.value); + searchBox.value = ''; + } + }); + + // 初始加载图书列表 + fetchBooks(); + } + + // 执行初始化函数 + init(); +})(); \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/data.js" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/data.js" new file mode 100644 index 0000000..915bee6 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/src/main/webapp/js/data.js" @@ -0,0 +1,182 @@ +// 私有变量 +const addBtn = document.querySelector('#add-btn'); +const modal = document.querySelector('.modal'); +const closeModalBtn = document.querySelector('#close-form-btn'); +const tbody = document.querySelector('tbody'); +const form = document.querySelector('#item-form'); +const searchBox = document.querySelector("#search-box"); +const formTitle = document.querySelector("#form-title"); + +// 表单选项 +//#######################改改改################################ +let studentId = document.querySelector("#studentId"); +let studentName = document.querySelector("#studentName"); +let classname = document.querySelector("#classname"); +let classTeacher = document.querySelector("#classTeacher"); +//############################################################# + + +let data = []; +// api接口设置 +// const API_BASE_URL = "http://localhost/book"; +const API_BASE_URL = "http://localhost/blog"; // #### 改改改 #### + +// 搜索功能 +function search(name) { + axios.get(API_BASE_URL + `?title=${name}`).then(res => { + data = res.data; + renderTable(data); + }); +} + +// 渲染表格数据 # 修改item.后面的属性名称 +function renderTable(data) { + if (data.length === 0) return alert("无内容"); + tbody.innerHTML = data.map(item => { + return ` + ${item.blogId} + ${item.blogTitle} + ${item.blogAuthor} + ${item.blogText} + + + + + `; + }).join(''); + + // 添加事件监听器(事件委托) + tbody.addEventListener('click', handleTableClick); +} + +// 更新,先回显要被修改的旧数据 +function update(id) { + axios.get(API_BASE_URL + `/${id}`).then(res => { + const data = res.data; + showOrCloseModal(); + form.reset(); + + // ########以下内容要修改########## + + // formTitle.innerText = '更新图书'; + formTitle.innerText = '更新博客'; + studentId.value = data.blogId; + studentName.value = data.blogTitle; + classname.value = data.blogAuthor; + classTeacher.value = data.blogText; + + // ######以上内容要修改##### + }); +} + + +// 处理表格点击事件 +function handleTableClick(e) { + if (e.target.classList.contains('delete-btn')) { + deleteItem(e.target.closest('tr').dataset.id); + } else if (e.target.classList.contains('update-btn')) { + update(e.target.closest('tr').dataset.id); + } +} + +// 开关浮层 +function showOrCloseModal(show = true) { + if (show) { + modal.style.display = 'block'; + } else { + modal.style.display = 'none'; + } + + studentId.value = null; // 重置当前编辑的图书ID + +} + +// 获取列表 +function fetch() { + axios.get(API_BASE_URL).then(res => { + console.log(res) + data = res.data; + renderTable(data); + }); + +} + +// 根据id删除 +function deleteItem(id) { + if (!confirm("真的要删除吗?")) return; + axios.delete(API_BASE_URL + `/${id}`).then(res => { + alert("删除成功!") + fetch(); + }); +} + + +// 点击保存按钮:添加或更新图书 +function save() { + + // 获取表单项的值######改改##### + + // 非空判断 + if (!studentName.value || !classname.value || !classTeacher.value) { + alert("所有字段都必须填写!"); + return; + } + // 表单项的值,封装成一个对象 + const item = { + blogId: studentId.value || null, // 如果为空,则视为添加新图书 + blogTitle: studentName.value, + blogAuthor: classname.value, + blogText: classTeacher.value + }; + + // 根据编号判断是添加还是更新 + if (studentId.value!='') { + axios.put(API_BASE_URL, item).then(res => { + alert("修改成功") + fetch(); + showOrCloseModal(false); + }) + } else { + axios.post(API_BASE_URL, item).then(res => { + console.log(item) + alert("添加成功") + fetch(); + showOrCloseModal(false); + }) + } + +} + + +// 初始化事件监听器 +function init() { + addBtn.addEventListener('click', () => { + form.reset(); + // formTitle.innerText = '添加图书'; + formTitle.innerText = '添加博客'; + showOrCloseModal(); + }); + + closeModalBtn.addEventListener('click', () => { + studentId.value = null; //### 初始化id + showOrCloseModal(false); + }); + + form.addEventListener('submit', (e) => { + e.preventDefault(); + save(); + }); + + searchBox.addEventListener('keyup', (e) => { + if (e.key === "Enter") { + search(searchBox.value); + searchBox.value = ''; + } + }); + + // 初始加载列表 + fetch(); +} + +// 执行初始化函数 +init(); diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/JdbcConfig.class" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/JdbcConfig.class" new file mode 100644 index 0000000000000000000000000000000000000000..38f06e9361e3d7f2cea798f07c5af6ec242d1e6f GIT binary patch literal 890 zcmah{T~8B16g^W)yOwIPqI~!Ts930UqM{FAOti!Y)1VP0@o~C4)Tz5Wb#{vIuk@uP zn)n0!QO0|>1Y$zsKFs|(_uMmg_V=G3zW{7NR&Wuw%D7!Y0k;AyvRw+W%=S)zyKL_T zSYdm=j7Ax&0;OjrHU7E4L}PVNpxCyN7N~Vhs&|G-SG)JB8&jsf5%*%3ME%p72q~`f|!_=EZ@0rYywijt?z4FGUByGK8T~B5MXVTujQ;Gg+ z-Dj5S^`V#Q6e?e8m9pTm*jI+{Tsylkr11;M&8Q4^(eyfU0s0pm_ zYW{x>+71C*$q}ul74}BLs?fGb63t*>I8{nEon zk2jt?t)j)z)pOrPV480uW0m&gn{Ho+p6D~}$Mf2;%Ca3=743EamYQkD5tdM;|B=4}1n+{*X^JFSL3VQO7~*?gzD#E+PgYPTzd8os z3T7xG8MsCy+}tNyAiMk%g^$OW=rrra5hk1U(g@{dJs9CavtAits`-sj1u*jhaf74; rB!Xqk5Yqxx7HJkwV{T$RnHErO7IQRpp0ccJfouWS^Yg}O_9pNbDQeP5 literal 0 HcmV?d00001 diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/MyBatisConfig.class" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/MyBatisConfig.class" new file mode 100644 index 0000000000000000000000000000000000000000..df19704766d61b86809b866f4e1df696b6cf1e8a GIT binary patch literal 889 zcmb7C%Wl&^6g`t?F=^5kTAG$e%PM`)*{~}@B0*g_AQ6a!SWVn%m}1Yk_M|j_1sf`X z#0T(Eh&$s_9!e$f;$Gi-e9xRS*WbQ>{tDnB?gyx0y^h-fN?3Q{P91maxW`a?q_nb+ z8OoilAw#8S4kbe?R9ZfpBqN!<6r-3rOQDHGJQSI7^+mH{->RHpEsRXUBcqShnD?h$ zVO8Gq)jq>=ei9F4o-3mdL}X1i?Mk5;x}ES?oQg9}IDaav7??>G$^EU+WMiI8M~;Q( zX{Pj;4`y)?d2o0+$gnb-kYW3ODBCY4+NwkjRj$bC6RnLUDMpjg2cD?Vbd-rizBk!B zXWYs&%f;oV+*x$;3Qq^h-{2oNv**nJl=e4cZe=Eoou-oaOp+QcwI#ZlK7Kp3FVa+I zgUFv$AVV$d~_@$%P^ly`)i#H z?W^`Y#3rirU%ICR=Co0~Mir;bC|9@7!9IF8pjh+G2Cmb4qxgXGJXH)$w1~tFzoJ~G z-1>sj>vNR*yE~sy+5JGR5*$slfa$aa8ea5t8yCHTj)nGbpK{R6-OwhBmNBah8I>I}JKZL~jONbl}-88R)~R}AI0HtISG zddl62-k2h_wv}Ss6;8)^7R>ku9WrdUr46{WW}t_>GjZAsTM0N~D0FP(q&nBJNOdvU z9EqtQ@@-_i4pdi%nv_qCv0iv>4GAB%tsC+%Q5-lCs3+?l<3e6NdoJcz`A@mXB}A(F z4`MK}Mj79c!Vob#72}9HEz*mcp>k6#3Gu)7aY1U%lTLkcB$xf3oDXDYF?02DMlFZ4 zWClg&{WC}4?f lDLH4cOgPRL6I;Rx`38xuk}uPp$~{Tok%Ic-@pxvAXU>fM{l}MY0Pf?Si#)D6xR%F?i|bg;cZ_b}7+wmRIrk>V3xH!u&Z>#o0uBhL}_M7I%uT~wDJycL- zV7`NO4|napbnXR(gD*wUn z^lQg6uytB>B!D!($7-=p+CHlot8nP6U^qknMv5dgnO2W9pCluht$qgkn3&JenoABn z%+cN(I-r1g(iqO8NUIHQB1>?2SxS3gG5IY6KLN+leo6oU literal 0 HcmV?d00001 diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/WebConfig.class" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/config/WebConfig.class" new file mode 100644 index 0000000000000000000000000000000000000000..1ac063d11c651c156745d862db8ae380201946db GIT binary patch literal 830 zcmaKqO;6k~5Qbl~VY7tgD_uVO$qhK*3%4R9v{j`_3x@_#Rqe$|O>mpFBgeZ){Z;L$ zQl<6>^hY5k$rhGf+8pfhc;=aR#`$yo^EZG4YzJsz)5n&N$3C9;c-q1=#PoS$^o2_K zI~jK?>m@@cmF}%Eu6A@YQ52HmJ3G4{dY{Em@J#5GSAL3~i&UzG8(1p0{y@m#-VsHu z6El)_n8`_Ocz1Im@?7bZYOUS}Mb46+FhOJnHj%GY+1%o-=>1Yw8*>O~2on;i_E?`$ zUXtq07`CQvPKL?f%jG*zU7vw*8pBx5tpJ9P#-_Ze=oeP><(08t_?3)#QFqOYL7p4y z_;Fk~D-w6CwQ<5Jqw9jNRFMmpTuM8d(;IqWB{KC@T5Q9ozoGm*(8v+cI!`A~JEMJe z?+4g-GG@@GwOKo{Kz4g%FJg&K9+t5}QDyQ$1p@-_7iQi!!bbFsyyJw{7$HDS2&|92vx~IvV9v1gTb1>^?%dXB1W)Jef@ZF2jv@BpL)j}EL>ltFDcF|h z*rusFzC&}>EnyF=7$r;dDh`oOHty0@Th zY%nIg))V--Xz9Yw+3oqFpbR`UHLIkqcp`d}*#=SxF@uMD8_!CJZ)#?R#>dsiM)8S+ zDZ?_nD-t?Jva1q~h6OcmZ8quq-kfQ# z=j}E1rf%sD+5L_#>0U%Sh{4Wktt%9O`s0H^sGF&fuqZ*VHIqe9m-NN_L#oJR_O1lU zu5Xs`6`REN%DN+=Tgbz($Xr$Udi+=Q&pKB;t+2+D@KuEh>kDS8pjp?21rkza%`FGQ z#9*-+;!Df(3)g7@*9k{=D<&0IsYgwDcF^f;r#;1q_P>Pmid}IE`VB)g%OMfTnr59A zUDZl&n`zK83#4|PWzv3m%{jK~E;>fZuz0Vz#5bq(%d*x>aaF`x!4bTYL`A_-3?{Lu zU<+pzoWz$3#&KG~8Eh*!hw}<1#V`#P;W1G+EfrkBB5o*{!K{MoVzq=1B^>dUClb@y zieVN-;*Zt`b0ks%(+a-AV=;Wq{ACra;$v1y4JxQ2qPM7Iia_n~yyfX7!I+|AxjMHZ z+w;w|UFKs^F8ra;Ez10OGbwA3{?H}nrSAM*7qmQ&H~0skpMNm;qayObd4RhF=T|v* za%OhWfn)xk5Qc(tdh`cKFA$UPjJp_K<0x)`2tyo|;1pgbI&hrd7*14ihq>oZ9o`I4 zXZbe9XI%ny>?d@*fE;T;KIS9$2PZ>h-oaZKA)2tci}NtQ*?W*&jAD$>lEUCqJ|Rmg zB)l3DW_-dIh&QsGh_Gd(EU8A8b8WFqHL|eD85~h;B9s#6 z_~>&S_@0Ys%rZWHP-pQlW>5_-Ky$bj0$t`T3NA~iXj|Nvm$2%xu%UB^< zoWgdSs~Cl^48>QvRY=lH#-z57N&7A3PeN#^2!ceA!C!Fj&U1A4 z_Uxip7`%%^y@$EpMc@9?i`MX9Xl67LF?>SA81DF8*-u;Ua(|ECPstUi+-Ls*7fTZ8 literal 0 HcmV?d00001 diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/entity/Blog.class" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/entity/Blog.class" new file mode 100644 index 0000000000000000000000000000000000000000..af1cbdbf2ac0b573c52e29badca3dd0f31f92d4c GIT binary patch literal 2949 zcma)7-*XdH6#j0qn{1Lz36TORRY6hHw55Wmm{NYqk4OthD@sLSo38Cbnqay?dGg7B zf*0T9r4Kq|%Z$!A`hqk5O(K40?wFSbg~URwu~b=9P!)xgD07})a~1N__ne2$M9rx$P0adDuf8;?kQRrtEq}SuRImbX z_gkMEmt6l`2ox`l5Xv~;SR~4>X|L{HZLKW0%{ga5<2I^J?WWW8L=P7Yf7x4A*gais ztW3Cd-}4_$2p*3-aHBTtllj?}Ke(6iEUX7gneco$MkHY)vUS~J;}I~WYQ7IW*Y?z z**Jh<8!yZ73Wk}Zk)*S62JhH-6$fn;F=FGGs3nm`WjKq23j3nfajxan7Tu#siB?;%_N7K;%S#KqLAyJrt^VxIS(GVbr$Y; zzdYPRS9m>E$1t<`f6X|=PO_g($UscUq7)Opf|-;BGg;$203{sJeu&xxHO1L1{Q|WX zxV^?P5iDl#I%Qis;4t2x_GV~(i?b4*`vAp$qA`Xpki9Js!_)^T9tFy73&c?O0WzXM z1KR?PVLSvXbB@WgO9$4WevZ5?86fS|9wA9WphQ7M=sH5aHSb-_(RIXjiYXC|V!quU zGrm(y$&M)I(f*jmPBA6ZqL{2k{dRScbBZiJ9xeR{(^wn*6Xs)>@wL%EV9tz{HjoHZ z3du44e-IlL>nb&?Y>fYfOu=}D-A`bT7mN+0+V1JHNtbjvQ82|P@eKJV$QH~(Vv|#* zEU1~XRY;1H6*?sgR@=#tLWpn5UmfGy`qrHoKjtU@UA}V=-{UfIaYCk zl7Tr~#0Qj2%(Fq2DJAfTwKqvAiSJmYCn;H&;+bQ}Car%kki;qbIrb)Tnm0jXptgd;@l{o-P|=C>Wu|l1OP&rfdc#1}WHN70kdi+@JST`snboaoona zptgk3^OR!PgDd!u4~Vm7kKqC(gZ+FTnHS!L*>8||LDCH}s}#wEQZMM<)nl?S2(#_b z_Az>wLbt>wx2|V&mCg}H`Bl)2;vQ#dyk~wx_SRDj4`96DoZ$lMuBkD_2Z$-BPGbv+SEqJ=%j<|0`Xx;>SMC~VD% z>g5$^^8-TN_WwQSY zrYfS8Cn^`JJB6UHBJ7ziDD2yQR75H^*FYV8vF4W^nuB(x261B7C;XdgQZo-Jb#})& zb#iDomOR~Q`lPAj$wmR2iD%L5eK2$^Ol+ZbmU3kl#+;s&8F{_5;!|L1#g?FxDPUX` z^VJ)`o2HX8BdnSPUtFV&LK{I-6QLsM#=qy-49o40Ld__%+H zFTYHHz!Lr`0F+Avu0aWR%eY&DGF0%phWK^-tb78J!YXoZz)jp2u_|IUSj+3z=WsTV qvk6->_4T~>He$En_6&9>$953A`v-O}$L^!z1LOFiQ7j|!2;eugmS;r( literal 0 HcmV?d00001 diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/service/BlogService.class" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/service/BlogService.class" new file mode 100644 index 0000000000000000000000000000000000000000..597922c19df63ffc80e960e5d177d6b873b5e4ac GIT binary patch literal 510 zcma)3!AiqG6r8QGvDMVJM*IPV^kOc8hltP~gg~H&_yaLn!j^R-$)?a>^WX>gQR3Te zDaG{Q=`pkO-p-r%{qy++-~rbzu3Y#GqlQbK>$#K*S(OdLG?*o;Y@LOz7BWmkqa%hv zDoT~ByJr&H!0npLw-ueE&%n^5O96d{;RFuhQ$jt9U7P{L Y4=~*G=Y%idS$>2|TgRr7Vq!a|zgOspZvX%Q literal 0 HcmV?d00001 diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/service/impl/BlogServiceImpl.class" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/classes/com/service/impl/BlogServiceImpl.class" new file mode 100644 index 0000000000000000000000000000000000000000..7086e789782bd30e164afbe77efec052d8684c2d GIT binary patch literal 2823 zcma)8TXWk)7(J`VmpF3jhNLA;pm*xnO$D^ji_=09+G23hl9WKpt+K5;YGf(May$7K zJo5wSOCQ=9NT)EvzzfXqn}BjwQeyd%DKqi6((bp%=R148b^iMI=U)Mw!^SX%@yQ5Q zuqwkX89tR^O@_~8_&kFN+)m+6hN)l3@THvjN`|jf_$Gr<+)m@J91R(&Y1HIcPr*## zo^hvg1`W-*gjy$WqteS0g=N=0A_q$qhNt)lb4V!kE zh|74RdY`T=&D`PXxzc7G-J>OegzK-%p4lhuc0!7=(?z*prE4m?>KnBUCIlX3zq0)V z(lx`mD!-qP>qcumv^hnhyosAD<)y16=$Wmy?F)=_0j7O7^o#UfWSMSXWLDj_S2M3! z(mCT&yqNXR$btm&13S0no1W?VTbrgHZ7FFuh*wi+XqdvZh7&lcA&(givpAzc$D10? z%5VS3SnsLjpmuw=N; zvm&7imIQJgsPMdq9w!yU`TDdDv@@201hMy&yarFQ=k^Wgr}K^j^JJ9$g@7rkw3q<*ayTD?X^Yjr9hWZihwS0 zl-5WVia$XNrWCp&x$BB#WZiCZZ0`v33C9F67mI}-kWe2Nf5-6mNDMtL{)XYD(}ith zf>%C_ET3k$q|W|{kxBIr?0*Dpc2eDj7G$W>1Vb^$hZ>y=;dcow;tD;^{-&SaXBQ~+ z{$b2>ZU_Z-*aDwaED~!1$yEApjHd9xKRA%WRsN*~;+3fK%8DwvNKmOxLYB~L$dF4Y z&dzx;l?)`8IHZu*UIh6aN0pF=bEP@;av;HUuCz`8(z)Uzq-M8~y?c3jaN&h;YgG6U zuZnWep9x+cAMr_n{CDu r+t09XEVqsQlJGXh#$Ms`HpY9c7x(aVL^H00f@LBqxUqZh-30yvIvOGp literal 0 HcmV?d00001 diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" new file mode 100644 index 0000000..789825b --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" @@ -0,0 +1,10 @@ +com\config\WebConfig.class +com\service\impl\BlogServiceImpl.class +com\controller\BlogController.class +com\config\JdbcConfig.class +com\config\MyBatisConfig.class +com\entity\Blog.class +com\service\BlogService.class +com\mapper\BlogMapper.class +com\config\SpringConfig.class +com\config\SpringMvcConfig.class diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" new file mode 100644 index 0000000..e158182 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" @@ -0,0 +1,10 @@ +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\config\JdbcConfig.java +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\config\MyBatisConfig.java +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\config\SpringConfig.java +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\config\SpringMvcConfig.java +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\config\WebConfig.java +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\controller\BlogController.java +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\entity\Blog.java +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\mapper\BlogMapper.java +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\service\BlogService.java +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.06\20250106 综合练习(四)\MyBlog\src\main\java\com\service\impl\BlogServiceImpl.java diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/logging.properties" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/logging.properties" new file mode 100644 index 0000000..76c9512 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/logging.properties" @@ -0,0 +1,64 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler + +.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler + +############################################################ +# Handler specific properties. +# Describes specific configuration info for Handlers. +############################################################ + +1catalina.org.apache.juli.FileHandler.level = FINE +1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs +1catalina.org.apache.juli.FileHandler.prefix = catalina. + +2localhost.org.apache.juli.FileHandler.level = FINE +2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs +2localhost.org.apache.juli.FileHandler.prefix = localhost. + +3manager.org.apache.juli.FileHandler.level = FINE +3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs +3manager.org.apache.juli.FileHandler.prefix = manager. + +4host-manager.org.apache.juli.FileHandler.level = FINE +4host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs +4host-manager.org.apache.juli.FileHandler.prefix = host-manager. + +java.util.logging.ConsoleHandler.level = FINE +java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter + + +############################################################ +# Facility specific properties. +# Provides extra control for each logger. +############################################################ + +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler + +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.FileHandler + +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.FileHandler + +# For example, set the org.apache.catalina.util.LifecycleBase logger to log +# each component that extends LifecycleBase changing state: +#org.apache.catalina.util.LifecycleBase.level = FINE + +# To see debug messages in TldLocationsCache, uncomment the following line: +#org.apache.jasper.compiler.TldLocationsCache.level = FINE diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/tomcat-users.xml" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/tomcat-users.xml" new file mode 100644 index 0000000..7114f5d --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/tomcat-users.xml" @@ -0,0 +1,26 @@ + + + + + diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/web.xml" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/web.xml" new file mode 100644 index 0000000..cc8383c --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/conf/web.xml" @@ -0,0 +1,4283 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + default + org.apache.catalina.servlets.DefaultServlet + + debug + 0 + + + listings + false + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + jsp + org.apache.jasper.servlet.JspServlet + + fork + false + + + xpoweredBy + false + + 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + default + / + + + + + jsp + *.jsp + *.jspx + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 30 + + + + + + + + + + + + 123 + application/vnd.lotus-1-2-3 + + + 3dml + text/vnd.in3d.3dml + + + 3g2 + video/3gpp2 + + + 3gp + video/3gpp + + + 7z + application/x-7z-compressed + + + aab + application/x-authorware-bin + + + aac + audio/x-aac + + + aam + application/x-authorware-map + + + aas + application/x-authorware-seg + + + abs + audio/x-mpeg + + + abw + application/x-abiword + + + ac + application/pkix-attr-cert + + + acc + application/vnd.americandynamics.acc + + + ace + application/x-ace-compressed + + + acu + application/vnd.acucobol + + + acutc + application/vnd.acucorp + + + adp + audio/adpcm + + + aep + application/vnd.audiograph + + + afm + application/x-font-type1 + + + afp + application/vnd.ibm.modcap + + + ahead + application/vnd.ahead.space + + + ai + application/postscript + + + aif + audio/x-aiff + + + aifc + audio/x-aiff + + + aiff + audio/x-aiff + + + aim + application/x-aim + + + air + application/vnd.adobe.air-application-installer-package+zip + + + ait + application/vnd.dvb.ait + + + ami + application/vnd.amiga.ami + + + anx + application/annodex + + + apk + application/vnd.android.package-archive + + + application + application/x-ms-application + + + apr + application/vnd.lotus-approach + + + art + image/x-jg + + + asc + application/pgp-signature + + + asf + video/x-ms-asf + + + asm + text/x-asm + + + aso + application/vnd.accpac.simply.aso + + + asx + video/x-ms-asf + + + atc + application/vnd.acucorp + + + atom + application/atom+xml + + + atomcat + application/atomcat+xml + + + atomsvc + application/atomsvc+xml + + + atx + application/vnd.antix.game-component + + + au + audio/basic + + + avi + video/x-msvideo + + + avx + video/x-rad-screenplay + + + aw + application/applixware + + + axa + audio/annodex + + + axv + video/annodex + + + azf + application/vnd.airzip.filesecure.azf + + + azs + application/vnd.airzip.filesecure.azs + + + azw + application/vnd.amazon.ebook + + + bat + application/x-msdownload + + + bcpio + application/x-bcpio + + + bdf + application/x-font-bdf + + + bdm + application/vnd.syncml.dm+wbxml + + + bed + application/vnd.realvnc.bed + + + bh2 + application/vnd.fujitsu.oasysprs + + + bin + application/octet-stream + + + bmi + application/vnd.bmi + + + bmp + image/bmp + + + body + text/html + + + book + application/vnd.framemaker + + + box + application/vnd.previewsystems.box + + + boz + application/x-bzip2 + + + bpk + application/octet-stream + + + btif + image/prs.btif + + + bz + application/x-bzip + + + bz2 + application/x-bzip2 + + + c + text/x-c + + + c11amc + application/vnd.cluetrust.cartomobile-config + + + c11amz + application/vnd.cluetrust.cartomobile-config-pkg + + + c4d + application/vnd.clonk.c4group + + + c4f + application/vnd.clonk.c4group + + + c4g + application/vnd.clonk.c4group + + + c4p + application/vnd.clonk.c4group + + + c4u + application/vnd.clonk.c4group + + + cab + application/vnd.ms-cab-compressed + + + cap + application/vnd.tcpdump.pcap + + + car + application/vnd.curl.car + + + cat + application/vnd.ms-pki.seccat + + + cc + text/x-c + + + cct + application/x-director + + + ccxml + application/ccxml+xml + + + cdbcmsg + application/vnd.contact.cmsg + + + cdf + application/x-cdf + + + cdkey + application/vnd.mediastation.cdkey + + + cdmia + application/cdmi-capability + + + cdmic + application/cdmi-container + + + cdmid + application/cdmi-domain + + + cdmio + application/cdmi-object + + + cdmiq + application/cdmi-queue + + + cdx + chemical/x-cdx + + + cdxml + application/vnd.chemdraw+xml + + + cdy + application/vnd.cinderella + + + cer + application/pkix-cert + + + cgm + image/cgm + + + chat + application/x-chat + + + chm + application/vnd.ms-htmlhelp + + + chrt + application/vnd.kde.kchart + + + cif + chemical/x-cif + + + cii + application/vnd.anser-web-certificate-issue-initiation + + + cil + application/vnd.ms-artgalry + + + cla + application/vnd.claymore + + + class + application/java + + + clkk + application/vnd.crick.clicker.keyboard + + + clkp + application/vnd.crick.clicker.palette + + + clkt + application/vnd.crick.clicker.template + + + clkw + application/vnd.crick.clicker.wordbank + + + clkx + application/vnd.crick.clicker + + + clp + application/x-msclip + + + cmc + application/vnd.cosmocaller + + + cmdf + chemical/x-cmdf + + + cml + chemical/x-cml + + + cmp + application/vnd.yellowriver-custom-menu + + + cmx + image/x-cmx + + + cod + application/vnd.rim.cod + + + com + application/x-msdownload + + + conf + text/plain + + + cpio + application/x-cpio + + + cpp + text/x-c + + + cpt + application/mac-compactpro + + + crd + application/x-mscardfile + + + crl + application/pkix-crl + + + crt + application/x-x509-ca-cert + + + cryptonote + application/vnd.rig.cryptonote + + + csh + application/x-csh + + + csml + chemical/x-csml + + + csp + application/vnd.commonspace + + + css + text/css + + + cst + application/x-director + + + csv + text/csv + + + cu + application/cu-seeme + + + curl + text/vnd.curl + + + cww + application/prs.cww + + + cxt + application/x-director + + + cxx + text/x-c + + + dae + model/vnd.collada+xml + + + daf + application/vnd.mobius.daf + + + dataless + application/vnd.fdsn.seed + + + davmount + application/davmount+xml + + + dcr + application/x-director + + + dcurl + text/vnd.curl.dcurl + + + dd2 + application/vnd.oma.dd2+xml + + + ddd + application/vnd.fujixerox.ddd + + + deb + application/x-debian-package + + + def + text/plain + + + deploy + application/octet-stream + + + der + application/x-x509-ca-cert + + + dfac + application/vnd.dreamfactory + + + dib + image/bmp + + + dic + text/x-c + + + dir + application/x-director + + + dis + application/vnd.mobius.dis + + + dist + application/octet-stream + + + distz + application/octet-stream + + + djv + image/vnd.djvu + + + djvu + image/vnd.djvu + + + dll + application/x-msdownload + + + dmg + application/octet-stream + + + dmp + application/vnd.tcpdump.pcap + + + dms + application/octet-stream + + + dna + application/vnd.dna + + + doc + application/msword + + + docm + application/vnd.ms-word.document.macroenabled.12 + + + docx + application/vnd.openxmlformats-officedocument.wordprocessingml.document + + + dot + application/msword + + + dotm + application/vnd.ms-word.template.macroenabled.12 + + + dotx + application/vnd.openxmlformats-officedocument.wordprocessingml.template + + + dp + application/vnd.osgi.dp + + + dpg + application/vnd.dpgraph + + + dra + audio/vnd.dra + + + dsc + text/prs.lines.tag + + + dssc + application/dssc+der + + + dtb + application/x-dtbook+xml + + + dtd + application/xml-dtd + + + dts + audio/vnd.dts + + + dtshd + audio/vnd.dts.hd + + + dump + application/octet-stream + + + dv + video/x-dv + + + dvb + video/vnd.dvb.file + + + dvi + application/x-dvi + + + dwf + model/vnd.dwf + + + dwg + image/vnd.dwg + + + dxf + image/vnd.dxf + + + dxp + application/vnd.spotfire.dxp + + + dxr + application/x-director + + + ecelp4800 + audio/vnd.nuera.ecelp4800 + + + ecelp7470 + audio/vnd.nuera.ecelp7470 + + + ecelp9600 + audio/vnd.nuera.ecelp9600 + + + ecma + application/ecmascript + + + edm + application/vnd.novadigm.edm + + + edx + application/vnd.novadigm.edx + + + efif + application/vnd.picsel + + + ei6 + application/vnd.pg.osasli + + + elc + application/octet-stream + + + eml + message/rfc822 + + + emma + application/emma+xml + + + eol + audio/vnd.digital-winds + + + eot + application/vnd.ms-fontobject + + + eps + application/postscript + + + epub + application/epub+zip + + + es3 + application/vnd.eszigno3+xml + + + esf + application/vnd.epson.esf + + + et3 + application/vnd.eszigno3+xml + + + etx + text/x-setext + + + exe + application/octet-stream + + + exi + application/exi + + + ext + application/vnd.novadigm.ext + + + ez + application/andrew-inset + + + ez2 + application/vnd.ezpix-album + + + ez3 + application/vnd.ezpix-package + + + f + text/x-fortran + + + f4v + video/x-f4v + + + f77 + text/x-fortran + + + f90 + text/x-fortran + + + fbs + image/vnd.fastbidsheet + + + fcs + application/vnd.isac.fcs + + + fdf + application/vnd.fdf + + + fe_launch + application/vnd.denovo.fcselayout-link + + + fg5 + application/vnd.fujitsu.oasysgp + + + fgd + application/x-director + + + fh + image/x-freehand + + + fh4 + image/x-freehand + + + fh5 + image/x-freehand + + + fh7 + image/x-freehand + + + fhc + image/x-freehand + + + fig + application/x-xfig + + + flac + audio/flac + + + fli + video/x-fli + + + flo + application/vnd.micrografx.flo + + + flv + video/x-flv + + + flw + application/vnd.kde.kivio + + + flx + text/vnd.fmi.flexstor + + + fly + text/vnd.fly + + + fm + application/vnd.framemaker + + + fnc + application/vnd.frogans.fnc + + + for + text/x-fortran + + + fpx + image/vnd.fpx + + + frame + application/vnd.framemaker + + + fsc + application/vnd.fsc.weblaunch + + + fst + image/vnd.fst + + + ftc + application/vnd.fluxtime.clip + + + fti + application/vnd.anser-web-funds-transfer-initiation + + + fvt + video/vnd.fvt + + + fxp + application/vnd.adobe.fxp + + + fxpl + application/vnd.adobe.fxp + + + fzs + application/vnd.fuzzysheet + + + g2w + application/vnd.geoplan + + + g3 + image/g3fax + + + g3w + application/vnd.geospace + + + gac + application/vnd.groove-account + + + gbr + application/rpki-ghostbusters + + + gdl + model/vnd.gdl + + + geo + application/vnd.dynageo + + + gex + application/vnd.geometry-explorer + + + ggb + application/vnd.geogebra.file + + + ggt + application/vnd.geogebra.tool + + + ghf + application/vnd.groove-help + + + gif + image/gif + + + gim + application/vnd.groove-identity-message + + + gmx + application/vnd.gmx + + + gnumeric + application/x-gnumeric + + + gph + application/vnd.flographit + + + gqf + application/vnd.grafeq + + + gqs + application/vnd.grafeq + + + gram + application/srgs + + + gre + application/vnd.geometry-explorer + + + grv + application/vnd.groove-injector + + + grxml + application/srgs+xml + + + gsf + application/x-font-ghostscript + + + gtar + application/x-gtar + + + gtm + application/vnd.groove-tool-message + + + gtw + model/vnd.gtw + + + gv + text/vnd.graphviz + + + gxt + application/vnd.geonext + + + gz + application/x-gzip + + + h + text/x-c + + + h261 + video/h261 + + + h263 + video/h263 + + + h264 + video/h264 + + + hal + application/vnd.hal+xml + + + hbci + application/vnd.hbci + + + hdf + application/x-hdf + + + hh + text/x-c + + + hlp + application/winhlp + + + hpgl + application/vnd.hp-hpgl + + + hpid + application/vnd.hp-hpid + + + hps + application/vnd.hp-hps + + + hqx + application/mac-binhex40 + + + htc + text/x-component + + + htke + application/vnd.kenameaapp + + + htm + text/html + + + html + text/html + + + hvd + application/vnd.yamaha.hv-dic + + + hvp + application/vnd.yamaha.hv-voice + + + hvs + application/vnd.yamaha.hv-script + + + i2g + application/vnd.intergeo + + + icc + application/vnd.iccprofile + + + ice + x-conference/x-cooltalk + + + icm + application/vnd.iccprofile + + + ico + image/x-icon + + + ics + text/calendar + + + ief + image/ief + + + ifb + text/calendar + + + ifm + application/vnd.shana.informed.formdata + + + iges + model/iges + + + igl + application/vnd.igloader + + + igm + application/vnd.insors.igm + + + igs + model/iges + + + igx + application/vnd.micrografx.igx + + + iif + application/vnd.shana.informed.interchange + + + imp + application/vnd.accpac.simply.imp + + + ims + application/vnd.ms-ims + + + in + text/plain + + + ink + application/inkml+xml + + + inkml + application/inkml+xml + + + iota + application/vnd.astraea-software.iota + + + ipfix + application/ipfix + + + ipk + application/vnd.shana.informed.package + + + irm + application/vnd.ibm.rights-management + + + irp + application/vnd.irepository.package+xml + + + iso + application/octet-stream + + + itp + application/vnd.shana.informed.formtemplate + + + ivp + application/vnd.immervision-ivp + + + ivu + application/vnd.immervision-ivu + + + jad + text/vnd.sun.j2me.app-descriptor + + + jam + application/vnd.jam + + + jar + application/java-archive + + + java + text/x-java-source + + + jisp + application/vnd.jisp + + + jlt + application/vnd.hp-jlyt + + + jnlp + application/x-java-jnlp-file + + + joda + application/vnd.joost.joda-archive + + + jpe + image/jpeg + + + jpeg + image/jpeg + + + jpg + image/jpeg + + + jpgm + video/jpm + + + jpgv + video/jpeg + + + jpm + video/jpm + + + js + application/javascript + + + jsf + text/plain + + + json + application/json + + + jspf + text/plain + + + kar + audio/midi + + + karbon + application/vnd.kde.karbon + + + kfo + application/vnd.kde.kformula + + + kia + application/vnd.kidspiration + + + kml + application/vnd.google-earth.kml+xml + + + kmz + application/vnd.google-earth.kmz + + + kne + application/vnd.kinar + + + knp + application/vnd.kinar + + + kon + application/vnd.kde.kontour + + + kpr + application/vnd.kde.kpresenter + + + kpt + application/vnd.kde.kpresenter + + + ksp + application/vnd.kde.kspread + + + ktr + application/vnd.kahootz + + + ktx + image/ktx + + + ktz + application/vnd.kahootz + + + kwd + application/vnd.kde.kword + + + kwt + application/vnd.kde.kword + + + lasxml + application/vnd.las.las+xml + + + latex + application/x-latex + + + lbd + application/vnd.llamagraphics.life-balance.desktop + + + lbe + application/vnd.llamagraphics.life-balance.exchange+xml + + + les + application/vnd.hhe.lesson-player + + + lha + application/octet-stream + + + link66 + application/vnd.route66.link66+xml + + + list + text/plain + + + list3820 + application/vnd.ibm.modcap + + + listafp + application/vnd.ibm.modcap + + + log + text/plain + + + lostxml + application/lost+xml + + + lrf + application/octet-stream + + + lrm + application/vnd.ms-lrm + + + ltf + application/vnd.frogans.ltf + + + lvp + audio/vnd.lucent.voice + + + lwp + application/vnd.lotus-wordpro + + + lzh + application/octet-stream + + + m13 + application/x-msmediaview + + + m14 + application/x-msmediaview + + + m1v + video/mpeg + + + m21 + application/mp21 + + + m2a + audio/mpeg + + + m2v + video/mpeg + + + m3a + audio/mpeg + + + m3u + audio/x-mpegurl + + + m3u8 + application/vnd.apple.mpegurl + + + m4a + audio/mp4 + + + m4b + audio/mp4 + + + m4r + audio/mp4 + + + m4u + video/vnd.mpegurl + + + m4v + video/mp4 + + + ma + application/mathematica + + + mac + image/x-macpaint + + + mads + application/mads+xml + + + mag + application/vnd.ecowin.chart + + + maker + application/vnd.framemaker + + + man + text/troff + + + mathml + application/mathml+xml + + + mb + application/mathematica + + + mbk + application/vnd.mobius.mbk + + + mbox + application/mbox + + + mc1 + application/vnd.medcalcdata + + + mcd + application/vnd.mcd + + + mcurl + text/vnd.curl.mcurl + + + mdb + application/x-msaccess + + + mdi + image/vnd.ms-modi + + + me + text/troff + + + mesh + model/mesh + + + meta4 + application/metalink4+xml + + + mets + application/mets+xml + + + mfm + application/vnd.mfmp + + + mft + application/rpki-manifest + + + mgp + application/vnd.osgeo.mapguide.package + + + mgz + application/vnd.proteus.magazine + + + mid + audio/midi + + + midi + audio/midi + + + mif + application/x-mif + + + mime + message/rfc822 + + + mj2 + video/mj2 + + + mjp2 + video/mj2 + + + mlp + application/vnd.dolby.mlp + + + mmd + application/vnd.chipnuts.karaoke-mmd + + + mmf + application/vnd.smaf + + + mmr + image/vnd.fujixerox.edmics-mmr + + + mny + application/x-msmoney + + + mobi + application/x-mobipocket-ebook + + + mods + application/mods+xml + + + mov + video/quicktime + + + movie + video/x-sgi-movie + + + mp1 + audio/mpeg + + + mp2 + audio/mpeg + + + mp21 + application/mp21 + + + mp2a + audio/mpeg + + + mp3 + audio/mpeg + + + mp4 + video/mp4 + + + mp4a + audio/mp4 + + + mp4s + application/mp4 + + + mp4v + video/mp4 + + + mpa + audio/mpeg + + + mpc + application/vnd.mophun.certificate + + + mpe + video/mpeg + + + mpeg + video/mpeg + + + mpega + audio/x-mpeg + + + mpg + video/mpeg + + + mpg4 + video/mp4 + + + mpga + audio/mpeg + + + mpkg + application/vnd.apple.installer+xml + + + mpm + application/vnd.blueice.multipass + + + mpn + application/vnd.mophun.application + + + mpp + application/vnd.ms-project + + + mpt + application/vnd.ms-project + + + mpv2 + video/mpeg2 + + + mpy + application/vnd.ibm.minipay + + + mqy + application/vnd.mobius.mqy + + + mrc + application/marc + + + mrcx + application/marcxml+xml + + + ms + text/troff + + + mscml + application/mediaservercontrol+xml + + + mseed + application/vnd.fdsn.mseed + + + mseq + application/vnd.mseq + + + msf + application/vnd.epson.msf + + + msh + model/mesh + + + msi + application/x-msdownload + + + msl + application/vnd.mobius.msl + + + msty + application/vnd.muvee.style + + + mts + model/vnd.mts + + + mus + application/vnd.musician + + + musicxml + application/vnd.recordare.musicxml+xml + + + mvb + application/x-msmediaview + + + mwf + application/vnd.mfer + + + mxf + application/mxf + + + mxl + application/vnd.recordare.musicxml + + + mxml + application/xv+xml + + + mxs + application/vnd.triscape.mxs + + + mxu + video/vnd.mpegurl + + + n-gage + application/vnd.nokia.n-gage.symbian.install + + + n3 + text/n3 + + + nb + application/mathematica + + + nbp + application/vnd.wolfram.player + + + nc + application/x-netcdf + + + ncx + application/x-dtbncx+xml + + + ngdat + application/vnd.nokia.n-gage.data + + + nlu + application/vnd.neurolanguage.nlu + + + nml + application/vnd.enliven + + + nnd + application/vnd.noblenet-directory + + + nns + application/vnd.noblenet-sealer + + + nnw + application/vnd.noblenet-web + + + npx + image/vnd.net-fpx + + + nsf + application/vnd.lotus-notes + + + oa2 + application/vnd.fujitsu.oasys2 + + + oa3 + application/vnd.fujitsu.oasys3 + + + oas + application/vnd.fujitsu.oasys + + + obd + application/x-msbinder + + + oda + application/oda + + + + odb + application/vnd.oasis.opendocument.database + + + + odc + application/vnd.oasis.opendocument.chart + + + + odf + application/vnd.oasis.opendocument.formula + + + odft + application/vnd.oasis.opendocument.formula-template + + + + odg + application/vnd.oasis.opendocument.graphics + + + + odi + application/vnd.oasis.opendocument.image + + + + odm + application/vnd.oasis.opendocument.text-master + + + + odp + application/vnd.oasis.opendocument.presentation + + + + ods + application/vnd.oasis.opendocument.spreadsheet + + + + odt + application/vnd.oasis.opendocument.text + + + oga + audio/ogg + + + ogg + audio/ogg + + + ogv + video/ogg + + + + ogx + application/ogg + + + onepkg + application/onenote + + + onetmp + application/onenote + + + onetoc + application/onenote + + + onetoc2 + application/onenote + + + opf + application/oebps-package+xml + + + oprc + application/vnd.palm + + + org + application/vnd.lotus-organizer + + + osf + application/vnd.yamaha.openscoreformat + + + osfpvg + application/vnd.yamaha.openscoreformat.osfpvg+xml + + + otc + application/vnd.oasis.opendocument.chart-template + + + otf + application/x-font-otf + + + + otg + application/vnd.oasis.opendocument.graphics-template + + + + oth + application/vnd.oasis.opendocument.text-web + + + oti + application/vnd.oasis.opendocument.image-template + + + + otp + application/vnd.oasis.opendocument.presentation-template + + + + ots + application/vnd.oasis.opendocument.spreadsheet-template + + + + ott + application/vnd.oasis.opendocument.text-template + + + oxps + application/oxps + + + oxt + application/vnd.openofficeorg.extension + + + p + text/x-pascal + + + p10 + application/pkcs10 + + + p12 + application/x-pkcs12 + + + p7b + application/x-pkcs7-certificates + + + p7c + application/pkcs7-mime + + + p7m + application/pkcs7-mime + + + p7r + application/x-pkcs7-certreqresp + + + p7s + application/pkcs7-signature + + + p8 + application/pkcs8 + + + pas + text/x-pascal + + + paw + application/vnd.pawaafile + + + pbd + application/vnd.powerbuilder6 + + + pbm + image/x-portable-bitmap + + + pcap + application/vnd.tcpdump.pcap + + + pcf + application/x-font-pcf + + + pcl + application/vnd.hp-pcl + + + pclxl + application/vnd.hp-pclxl + + + pct + image/pict + + + pcurl + application/vnd.curl.pcurl + + + pcx + image/x-pcx + + + pdb + application/vnd.palm + + + pdf + application/pdf + + + pfa + application/x-font-type1 + + + pfb + application/x-font-type1 + + + pfm + application/x-font-type1 + + + pfr + application/font-tdpfr + + + pfx + application/x-pkcs12 + + + pgm + image/x-portable-graymap + + + pgn + application/x-chess-pgn + + + pgp + application/pgp-encrypted + + + pic + image/pict + + + pict + image/pict + + + pkg + application/octet-stream + + + pki + application/pkixcmp + + + pkipath + application/pkix-pkipath + + + plb + application/vnd.3gpp.pic-bw-large + + + plc + application/vnd.mobius.plc + + + plf + application/vnd.pocketlearn + + + pls + audio/x-scpls + + + pml + application/vnd.ctc-posml + + + png + image/png + + + pnm + image/x-portable-anymap + + + pnt + image/x-macpaint + + + portpkg + application/vnd.macports.portpkg + + + pot + application/vnd.ms-powerpoint + + + potm + application/vnd.ms-powerpoint.template.macroenabled.12 + + + potx + application/vnd.openxmlformats-officedocument.presentationml.template + + + ppam + application/vnd.ms-powerpoint.addin.macroenabled.12 + + + ppd + application/vnd.cups-ppd + + + ppm + image/x-portable-pixmap + + + pps + application/vnd.ms-powerpoint + + + ppsm + application/vnd.ms-powerpoint.slideshow.macroenabled.12 + + + ppsx + application/vnd.openxmlformats-officedocument.presentationml.slideshow + + + ppt + application/vnd.ms-powerpoint + + + pptm + application/vnd.ms-powerpoint.presentation.macroenabled.12 + + + pptx + application/vnd.openxmlformats-officedocument.presentationml.presentation + + + pqa + application/vnd.palm + + + prc + application/x-mobipocket-ebook + + + pre + application/vnd.lotus-freelance + + + prf + application/pics-rules + + + ps + application/postscript + + + psb + application/vnd.3gpp.pic-bw-small + + + psd + image/vnd.adobe.photoshop + + + psf + application/x-font-linux-psf + + + pskcxml + application/pskc+xml + + + ptid + application/vnd.pvi.ptid1 + + + pub + application/x-mspublisher + + + pvb + application/vnd.3gpp.pic-bw-var + + + pwn + application/vnd.3m.post-it-notes + + + pya + audio/vnd.ms-playready.media.pya + + + pyv + video/vnd.ms-playready.media.pyv + + + qam + application/vnd.epson.quickanime + + + qbo + application/vnd.intu.qbo + + + qfx + application/vnd.intu.qfx + + + qps + application/vnd.publishare-delta-tree + + + qt + video/quicktime + + + qti + image/x-quicktime + + + qtif + image/x-quicktime + + + qwd + application/vnd.quark.quarkxpress + + + qwt + application/vnd.quark.quarkxpress + + + qxb + application/vnd.quark.quarkxpress + + + qxd + application/vnd.quark.quarkxpress + + + qxl + application/vnd.quark.quarkxpress + + + qxt + application/vnd.quark.quarkxpress + + + ra + audio/x-pn-realaudio + + + ram + audio/x-pn-realaudio + + + rar + application/x-rar-compressed + + + ras + image/x-cmu-raster + + + rcprofile + application/vnd.ipunplugged.rcprofile + + + rdf + application/rdf+xml + + + rdz + application/vnd.data-vision.rdz + + + rep + application/vnd.businessobjects + + + res + application/x-dtbresource+xml + + + rgb + image/x-rgb + + + rif + application/reginfo+xml + + + rip + audio/vnd.rip + + + rl + application/resource-lists+xml + + + rlc + image/vnd.fujixerox.edmics-rlc + + + rld + application/resource-lists-diff+xml + + + rm + application/vnd.rn-realmedia + + + rmi + audio/midi + + + rmp + audio/x-pn-realaudio-plugin + + + rms + application/vnd.jcp.javame.midlet-rms + + + rnc + application/relax-ng-compact-syntax + + + roa + application/rpki-roa + + + roff + text/troff + + + rp9 + application/vnd.cloanto.rp9 + + + rpss + application/vnd.nokia.radio-presets + + + rpst + application/vnd.nokia.radio-preset + + + rq + application/sparql-query + + + rs + application/rls-services+xml + + + rsd + application/rsd+xml + + + rss + application/rss+xml + + + rtf + application/rtf + + + rtx + text/richtext + + + s + text/x-asm + + + saf + application/vnd.yamaha.smaf-audio + + + sbml + application/sbml+xml + + + sc + application/vnd.ibm.secure-container + + + scd + application/x-msschedule + + + scm + application/vnd.lotus-screencam + + + scq + application/scvp-cv-request + + + scs + application/scvp-cv-response + + + scurl + text/vnd.curl.scurl + + + sda + application/vnd.stardivision.draw + + + sdc + application/vnd.stardivision.calc + + + sdd + application/vnd.stardivision.impress + + + sdkd + application/vnd.solent.sdkm+xml + + + sdkm + application/vnd.solent.sdkm+xml + + + sdp + application/sdp + + + sdw + application/vnd.stardivision.writer + + + see + application/vnd.seemail + + + seed + application/vnd.fdsn.seed + + + sema + application/vnd.sema + + + semd + application/vnd.semd + + + semf + application/vnd.semf + + + ser + application/java-serialized-object + + + setpay + application/set-payment-initiation + + + setreg + application/set-registration-initiation + + + sfd-hdstx + application/vnd.hydrostatix.sof-data + + + sfs + application/vnd.spotfire.sfs + + + sgl + application/vnd.stardivision.writer-global + + + sgm + text/sgml + + + sgml + text/sgml + + + sh + application/x-sh + + + shar + application/x-shar + + + shf + application/shf+xml + + + + sig + application/pgp-signature + + + silo + model/mesh + + + sis + application/vnd.symbian.install + + + sisx + application/vnd.symbian.install + + + sit + application/x-stuffit + + + sitx + application/x-stuffitx + + + skd + application/vnd.koan + + + skm + application/vnd.koan + + + skp + application/vnd.koan + + + skt + application/vnd.koan + + + sldm + application/vnd.ms-powerpoint.slide.macroenabled.12 + + + sldx + application/vnd.openxmlformats-officedocument.presentationml.slide + + + slt + application/vnd.epson.salt + + + sm + application/vnd.stepmania.stepchart + + + smf + application/vnd.stardivision.math + + + smi + application/smil+xml + + + smil + application/smil+xml + + + smzip + application/vnd.stepmania.package + + + snd + audio/basic + + + snf + application/x-font-snf + + + so + application/octet-stream + + + spc + application/x-pkcs7-certificates + + + spf + application/vnd.yamaha.smaf-phrase + + + spl + application/x-futuresplash + + + spot + text/vnd.in3d.spot + + + spp + application/scvp-vp-response + + + spq + application/scvp-vp-request + + + spx + audio/ogg + + + src + application/x-wais-source + + + sru + application/sru+xml + + + srx + application/sparql-results+xml + + + sse + application/vnd.kodak-descriptor + + + ssf + application/vnd.epson.ssf + + + ssml + application/ssml+xml + + + st + application/vnd.sailingtracker.track + + + stc + application/vnd.sun.xml.calc.template + + + std + application/vnd.sun.xml.draw.template + + + stf + application/vnd.wt.stf + + + sti + application/vnd.sun.xml.impress.template + + + stk + application/hyperstudio + + + stl + application/vnd.ms-pki.stl + + + str + application/vnd.pg.format + + + stw + application/vnd.sun.xml.writer.template + + + sub + text/vnd.dvb.subtitle + + + sus + application/vnd.sus-calendar + + + susp + application/vnd.sus-calendar + + + sv4cpio + application/x-sv4cpio + + + sv4crc + application/x-sv4crc + + + svc + application/vnd.dvb.service + + + svd + application/vnd.svd + + + svg + image/svg+xml + + + svgz + image/svg+xml + + + swa + application/x-director + + + swf + application/x-shockwave-flash + + + swi + application/vnd.aristanetworks.swi + + + sxc + application/vnd.sun.xml.calc + + + sxd + application/vnd.sun.xml.draw + + + sxg + application/vnd.sun.xml.writer.global + + + sxi + application/vnd.sun.xml.impress + + + sxm + application/vnd.sun.xml.math + + + sxw + application/vnd.sun.xml.writer + + + t + text/troff + + + taglet + application/vnd.mynfc + + + tao + application/vnd.tao.intent-module-archive + + + tar + application/x-tar + + + tcap + application/vnd.3gpp2.tcap + + + tcl + application/x-tcl + + + teacher + application/vnd.smart.teacher + + + tei + application/tei+xml + + + teicorpus + application/tei+xml + + + tex + application/x-tex + + + texi + application/x-texinfo + + + texinfo + application/x-texinfo + + + text + text/plain + + + tfi + application/thraud+xml + + + tfm + application/x-tex-tfm + + + thmx + application/vnd.ms-officetheme + + + tif + image/tiff + + + tiff + image/tiff + + + tmo + application/vnd.tmobile-livetv + + + torrent + application/x-bittorrent + + + tpl + application/vnd.groove-tool-template + + + tpt + application/vnd.trid.tpt + + + tr + text/troff + + + tra + application/vnd.trueapp + + + trm + application/x-msterminal + + + tsd + application/timestamped-data + + + tsv + text/tab-separated-values + + + ttc + application/x-font-ttf + + + ttf + application/x-font-ttf + + + ttl + text/turtle + + + twd + application/vnd.simtech-mindmapper + + + twds + application/vnd.simtech-mindmapper + + + txd + application/vnd.genomatix.tuxedo + + + txf + application/vnd.mobius.txf + + + txt + text/plain + + + u32 + application/x-authorware-bin + + + udeb + application/x-debian-package + + + ufd + application/vnd.ufdl + + + ufdl + application/vnd.ufdl + + + ulw + audio/basic + + + umj + application/vnd.umajin + + + unityweb + application/vnd.unity + + + uoml + application/vnd.uoml+xml + + + uri + text/uri-list + + + uris + text/uri-list + + + urls + text/uri-list + + + ustar + application/x-ustar + + + utz + application/vnd.uiq.theme + + + uu + text/x-uuencode + + + uva + audio/vnd.dece.audio + + + uvd + application/vnd.dece.data + + + uvf + application/vnd.dece.data + + + uvg + image/vnd.dece.graphic + + + uvh + video/vnd.dece.hd + + + uvi + image/vnd.dece.graphic + + + uvm + video/vnd.dece.mobile + + + uvp + video/vnd.dece.pd + + + uvs + video/vnd.dece.sd + + + uvt + application/vnd.dece.ttml+xml + + + uvu + video/vnd.uvvu.mp4 + + + uvv + video/vnd.dece.video + + + uvva + audio/vnd.dece.audio + + + uvvd + application/vnd.dece.data + + + uvvf + application/vnd.dece.data + + + uvvg + image/vnd.dece.graphic + + + uvvh + video/vnd.dece.hd + + + uvvi + image/vnd.dece.graphic + + + uvvm + video/vnd.dece.mobile + + + uvvp + video/vnd.dece.pd + + + uvvs + video/vnd.dece.sd + + + uvvt + application/vnd.dece.ttml+xml + + + uvvu + video/vnd.uvvu.mp4 + + + uvvv + video/vnd.dece.video + + + uvvx + application/vnd.dece.unspecified + + + uvvz + application/vnd.dece.zip + + + uvx + application/vnd.dece.unspecified + + + uvz + application/vnd.dece.zip + + + vcard + text/vcard + + + vcd + application/x-cdlink + + + vcf + text/x-vcard + + + vcg + application/vnd.groove-vcard + + + vcs + text/x-vcalendar + + + vcx + application/vnd.vcx + + + vis + application/vnd.visionary + + + viv + video/vnd.vivo + + + vor + application/vnd.stardivision.writer + + + vox + application/x-authorware-bin + + + vrml + model/vrml + + + vsd + application/vnd.visio + + + vsf + application/vnd.vsf + + + vss + application/vnd.visio + + + vst + application/vnd.visio + + + vsw + application/vnd.visio + + + vtu + model/vnd.vtu + + + vxml + application/voicexml+xml + + + w3d + application/x-director + + + wad + application/x-doom + + + wav + audio/x-wav + + + wax + audio/x-ms-wax + + + + wbmp + image/vnd.wap.wbmp + + + wbs + application/vnd.criticaltools.wbs+xml + + + wbxml + application/vnd.wap.wbxml + + + wcm + application/vnd.ms-works + + + wdb + application/vnd.ms-works + + + weba + audio/webm + + + webm + video/webm + + + webp + image/webp + + + wg + application/vnd.pmi.widget + + + wgt + application/widget + + + wks + application/vnd.ms-works + + + wm + video/x-ms-wm + + + wma + audio/x-ms-wma + + + wmd + application/x-ms-wmd + + + wmf + application/x-msmetafile + + + + wml + text/vnd.wap.wml + + + + wmlc + application/vnd.wap.wmlc + + + + wmls + text/vnd.wap.wmlscript + + + + wmlsc + application/vnd.wap.wmlscriptc + + + wmv + video/x-ms-wmv + + + wmx + video/x-ms-wmx + + + wmz + application/x-ms-wmz + + + woff + application/x-font-woff + + + wpd + application/vnd.wordperfect + + + wpl + application/vnd.ms-wpl + + + wps + application/vnd.ms-works + + + wqd + application/vnd.wqd + + + wri + application/x-mswrite + + + wrl + model/vrml + + + wsdl + application/wsdl+xml + + + wspolicy + application/wspolicy+xml + + + wtb + application/vnd.webturbo + + + wvx + video/x-ms-wvx + + + x32 + application/x-authorware-bin + + + x3d + application/vnd.hzn-3d-crossword + + + xap + application/x-silverlight-app + + + xar + application/vnd.xara + + + xbap + application/x-ms-xbap + + + xbd + application/vnd.fujixerox.docuworks.binder + + + xbm + image/x-xbitmap + + + xdf + application/xcap-diff+xml + + + xdm + application/vnd.syncml.dm+xml + + + xdp + application/vnd.adobe.xdp+xml + + + xdssc + application/dssc+xml + + + xdw + application/vnd.fujixerox.docuworks + + + xenc + application/xenc+xml + + + xer + application/patch-ops-error+xml + + + xfdf + application/vnd.adobe.xfdf + + + xfdl + application/vnd.xfdl + + + xht + application/xhtml+xml + + + xhtml + application/xhtml+xml + + + xhvml + application/xv+xml + + + xif + image/vnd.xiff + + + xla + application/vnd.ms-excel + + + xlam + application/vnd.ms-excel.addin.macroenabled.12 + + + xlc + application/vnd.ms-excel + + + xlm + application/vnd.ms-excel + + + xls + application/vnd.ms-excel + + + xlsb + application/vnd.ms-excel.sheet.binary.macroenabled.12 + + + xlsm + application/vnd.ms-excel.sheet.macroenabled.12 + + + xlsx + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + xlt + application/vnd.ms-excel + + + xltm + application/vnd.ms-excel.template.macroenabled.12 + + + xltx + application/vnd.openxmlformats-officedocument.spreadsheetml.template + + + xlw + application/vnd.ms-excel + + + xml + application/xml + + + xo + application/vnd.olpc-sugar + + + xop + application/xop+xml + + + xpi + application/x-xpinstall + + + xpm + image/x-xpixmap + + + xpr + application/vnd.is-xpr + + + xps + application/vnd.ms-xpsdocument + + + xpw + application/vnd.intercon.formnet + + + xpx + application/vnd.intercon.formnet + + + xsl + application/xml + + + xslt + application/xslt+xml + + + xsm + application/vnd.syncml+xml + + + xspf + application/xspf+xml + + + xul + application/vnd.mozilla.xul+xml + + + xvm + application/xv+xml + + + xvml + application/xv+xml + + + xwd + image/x-xwindowdump + + + xyz + chemical/x-xyz + + + yang + application/yang + + + yin + application/yin+xml + + + z + application/x-compress + + + Z + application/x-compress + + + zaz + application/vnd.zzazz.deck+xml + + + zip + application/zip + + + zir + application/vnd.zul + + + zirz + application/vnd.zul + + + zmm + application/vnd.handheld-entertainment+xml + + + + + + + + + + + + + + + + + + index.html + index.htm + index.jsp + + + diff --git "a/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/logs/access_log.2025-01-06" "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/logs/access_log.2025-01-06" new file mode 100644 index 0000000..773f569 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250106 \347\273\274\345\220\210\347\273\203\344\271\240(\345\233\233)/MyBlog/target/tomcat/logs/access_log.2025-01-06" @@ -0,0 +1,103 @@ +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:17:59 +0800] "GET / HTTP/1.1" 200 2139 http-bio-80-exec-1 35 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:17:59 +0800] "GET /css/styles.css HTTP/1.1" 200 3191 http-bio-80-exec-3 3 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:17:59 +0800] "GET /js/axios.min.js HTTP/1.1" 200 54050 http-bio-80-exec-2 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:17:59 +0800] "GET /js/data.js HTTP/1.1" 200 5206 http-bio-80-exec-5 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:17:59 +0800] "GET /student HTTP/1.1" 404 965 http-bio-80-exec-7 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:18:00 +0800] "GET /favicon.ico HTTP/1.1" 404 973 http-bio-80-exec-8 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:18:00 +0800] "GET /student HTTP/1.1" 404 965 http-bio-80-exec-9 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:47:02 +0800] "GET /favicon.ico HTTP/1.1" 404 949 http-bio-80-exec-2 7 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:47:02 +0800] "GET /student HTTP/1.1" 404 949 http-bio-80-exec-1 96 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:47:02 +0800] "GET /student HTTP/1.1" 404 949 http-bio-80-exec-4 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:47:20 +0800] "GET /student HTTP/1.1" 404 949 http-bio-80-exec-6 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:47:20 +0800] "GET /student HTTP/1.1" 404 949 http-bio-80-exec-8 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:47:20 +0800] "GET /favicon.ico HTTP/1.1" 404 949 http-bio-80-exec-9 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:47:20 +0800] "GET /favicon.ico HTTP/1.1" 404 949 http-bio-80-exec-10 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:47:25 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-10 698 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:50:09 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-1 774 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:50:12 +0800] "GET /blog/1 HTTP/1.1" 200 116 http-bio-80-exec-3 20 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:50:26 +0800] "GET /blog?title=1 HTTP/1.1" 200 12 http-bio-80-exec-4 102 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:13 +0800] "GET /blog/1 HTTP/1.1" 200 116 http-bio-80-exec-6 17 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:50 +0800] "GET /student HTTP/1.1" 404 949 http-bio-80-exec-8 5 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:55 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-9 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:57 +0800] "GET / HTTP/1.1" 200 2139 http-bio-80-exec-10 8 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:57 +0800] "GET /css/styles.css HTTP/1.1" 200 3191 http-bio-80-exec-10 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:57 +0800] "GET /js/axios.min.js HTTP/1.1" 200 54050 http-bio-80-exec-7 3 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:57 +0800] "GET /js/data.js HTTP/1.1" 200 5193 http-bio-80-exec-4 5 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:57 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-4 4 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:57 +0800] "GET /favicon.ico HTTP/1.1" 404 949 http-bio-80-exec-7 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:52:57 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-7 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:53:53 +0800] "GET / HTTP/1.1" 200 2136 http-bio-80-exec-7 5 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:53:53 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-7 3 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:53:54 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-7 10 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:54:01 +0800] "GET /blog?title=%E8%BE%89%E8%BE%89 HTTP/1.1" 200 118 http-bio-80-exec-7 5 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:54:03 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-7 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:54:03 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-7 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:54:03 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-7 4 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:54:13 +0800] "GET /blog/2 HTTP/1.1" 200 119 http-bio-80-exec-7 3 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:54:37 +0800] "GET / HTTP/1.1" 200 2133 http-bio-80-exec-7 3 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:54:37 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-7 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:54:38 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-7 233 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:30 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-7 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:30 +0800] "GET /js/data.js HTTP/1.1" 200 5177 http-bio-80-exec-7 3 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:30 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-7 9 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:32 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-7 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:33 +0800] "GET / HTTP/1.1" 200 2133 http-bio-80-exec-7 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:33 +0800] "GET /css/styles.css HTTP/1.1" 200 3191 http-bio-80-exec-7 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:33 +0800] "GET /js/axios.min.js HTTP/1.1" 200 54050 http-bio-80-exec-5 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:33 +0800] "GET /js/data.js HTTP/1.1" 200 5177 http-bio-80-exec-5 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:33 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-4 4 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:33 +0800] "GET /favicon.ico HTTP/1.1" 404 949 http-bio-80-exec-4 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:33 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-4 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:35 +0800] "GET /blog/1 HTTP/1.1" 200 116 http-bio-80-exec-4 3 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:37 +0800] "PUT /blog HTTP/1.1" 200 11 http-bio-80-exec-4 47 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:55:38 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-4 7 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:03 +0800] "POST /blog HTTP/1.1" 200 11 http-bio-80-exec-4 5 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:04 +0800] "GET /blog HTTP/1.1" 200 337 http-bio-80-exec-4 4 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:05 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-4 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:05 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-4 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:05 +0800] "GET /blog HTTP/1.1" 200 337 http-bio-80-exec-4 4 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:05 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-4 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:05 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-4 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:05 +0800] "GET /blog HTTP/1.1" 200 337 http-bio-80-exec-4 4 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:05 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-4 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:07 +0800] "GET /blog/3 HTTP/1.1" 200 119 http-bio-80-exec-4 3 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:12 +0800] "DELETE /blog/3 HTTP/1.1" 500 4607 http-bio-80-exec-4 20 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:24 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-5 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:24 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-5 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:24 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-5 11 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:24 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-5 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:52 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-5 2 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:52 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-5 3 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:52 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-5 5 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:56:52 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-5 1 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:58:55 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-1 48 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:58:55 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-3 7 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:58:55 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-2 14 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:58:56 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-4 776 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:59:00 +0800] "POST /blog HTTP/1.1" 200 11 http-bio-80-exec-6 56 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:59:01 +0800] "GET /blog HTTP/1.1" 200 337 http-bio-80-exec-7 5 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:59:04 +0800] "DELETE /blog/4 HTTP/1.1" 200 11 http-bio-80-exec-8 21 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:08:59:05 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-9 3 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:32:36 +0800] "GET / HTTP/1.1" 200 2133 http-bio-80-exec-1 132 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:32:36 +0800] "GET /js/data.js HTTP/1.1" 200 5177 http-bio-80-exec-3 24 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:32:36 +0800] "GET /favicon.ico HTTP/1.1" 404 949 http-bio-80-exec-2 5 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:32:37 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-4 1045 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:32:37 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-5 4 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:34:27 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-8 12 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:34:27 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-10 15 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:34:53 +0800] "GET /blog?title=%E9%99%88 HTTP/1.1" 200 121 http-bio-80-exec-10 77 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:35:24 +0800] "GET /blog/1 HTTP/1.1" 200 116 http-bio-80-exec-10 8 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:35:55 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-10 12 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:35:55 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-10 7 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:36:18 +0800] "DELETE /blog/2 HTTP/1.1" 200 11 http-bio-80-exec-10 237 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:36:19 +0800] "GET /blog HTTP/1.1" 200 118 http-bio-80-exec-10 3 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:36:36 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-10 13 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:36:36 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-10 14 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:36:36 +0800] "GET /blog HTTP/1.1" 200 118 http-bio-80-exec-10 4 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:36:55 +0800] "POST /blog HTTP/1.1" 200 11 http-bio-80-exec-10 48 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:36:56 +0800] "GET /blog HTTP/1.1" 200 227 http-bio-80-exec-10 3 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:37:23 +0800] "GET /blog/5 HTTP/1.1" 200 119 http-bio-80-exec-10 4 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:38:19 +0800] "PUT /blog HTTP/1.1" 200 11 http-bio-80-exec-10 7 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:38:20 +0800] "GET /blog HTTP/1.1" 200 230 http-bio-80-exec-10 7 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:39:30 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-1 13 +0:0:0:0:0:0:0:1 - - [06/Jan/2025:09:39:30 +0800] "GET /blog HTTP/1.1" 200 230 http-bio-80-exec-1 8 -- Gitee From 1b4923c48deafae8d74361c148f3a9c92c40e5b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=94=A1=E7=8E=AE=E9=93=AD?= <2373854303@qq.com> Date: Tue, 7 Jan 2025 16:23:25 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E6=8F=90=E4=BA=A4107=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\347\273\203\344\271\240(\344\272\224).md" | 921 ++++ .../MySchool/.idea/.gitignore" | 8 + .../MySchool/.idea/MySchool.iml" | 9 + .../MySchool/.idea/compiler.xml" | 16 + .../MySchool/.idea/dataSources.xml" | 12 + .../MySchool/.idea/encodings.xml" | 7 + .../MySchool/.idea/jarRepositories.xml" | 20 + .../MySchool/.idea/misc.xml" | 17 + .../MySchool/.idea/sqldialects.xml" | 6 + .../MySchool/pom.xml" | 103 + .../src/main/java/com/config/JdbcConfig.java" | 20 + .../main/java/com/config/MybatisConfig.java" | 19 + .../main/java/com/config/SpringConfig.java" | 12 + .../java/com/config/SpringMvcConfig.java" | 17 + .../src/main/java/com/config/WebConfig.java" | 20 + .../com/controller/SchoolController.java" | 54 + .../src/main/java/com/entity/School.java" | 15 + .../main/java/com/mapper/SchoolMapper.java" | 33 + .../main/java/com/service/SchoolService.java" | 25 + .../com/service/impl/SchoolServiceImpl.java" | 53 + .../MySchool/src/main/webapp/css/styles.css" | 128 + .../MySchool/src/main/webapp/index.html" | 62 + .../MySchool/src/main/webapp/js/axios.min.js" | 2 + .../MySchool/src/main/webapp/js/data.js" | 182 + .../classes/com/config/JdbcConfig.class" | Bin 0 -> 890 bytes .../classes/com/config/MybatisConfig.class" | Bin 0 -> 889 bytes .../classes/com/config/SpringConfig.class" | Bin 0 -> 591 bytes .../classes/com/config/SpringMvcConfig.class" | Bin 0 -> 1284 bytes .../classes/com/config/WebConfig.class" | Bin 0 -> 830 bytes .../com/controller/SchoolController.class" | Bin 0 -> 3696 bytes .../target/classes/com/entity/School.class" | Bin 0 -> 3014 bytes .../classes/com/mapper/SchoolMapper.class" | Bin 0 -> 1359 bytes .../classes/com/service/SchoolService.class" | Bin 0 -> 540 bytes .../com/service/impl/SchoolServiceImpl.class" | Bin 0 -> 2896 bytes .../compile/default-compile/createdFiles.lst" | 10 + .../compile/default-compile/inputFiles.lst" | 10 + .../target/tomcat/conf/logging.properties" | 64 + .../target/tomcat/conf/tomcat-users.xml" | 26 + .../MySchool/target/tomcat/conf/web.xml" | 4283 +++++++++++++++++ .../target/tomcat/logs/access_log.2025-01-07" | 104 + 40 files changed, 6258 insertions(+) create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224).md" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/.gitignore" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/MySchool.iml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/compiler.xml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/dataSources.xml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/encodings.xml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/jarRepositories.xml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/misc.xml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/sqldialects.xml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/pom.xml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/config/JdbcConfig.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/config/MybatisConfig.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/config/SpringConfig.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/config/SpringMvcConfig.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/config/WebConfig.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/controller/SchoolController.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/entity/School.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/mapper/SchoolMapper.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/service/SchoolService.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/service/impl/SchoolServiceImpl.java" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/webapp/css/styles.css" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/webapp/index.html" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/webapp/js/axios.min.js" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/webapp/js/data.js" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/classes/com/config/JdbcConfig.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/classes/com/config/MybatisConfig.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/classes/com/config/SpringConfig.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/classes/com/config/SpringMvcConfig.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/classes/com/config/WebConfig.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/classes/com/controller/SchoolController.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/classes/com/entity/School.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/classes/com/mapper/SchoolMapper.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/classes/com/service/SchoolService.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/classes/com/service/impl/SchoolServiceImpl.class" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/tomcat/conf/logging.properties" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/tomcat/conf/tomcat-users.xml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/tomcat/conf/web.xml" create mode 100644 "\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/tomcat/logs/access_log.2025-01-07" diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224).md" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224).md" new file mode 100644 index 0000000..f591134 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224).md" @@ -0,0 +1,921 @@ +## 课堂笔记 + +#### **综合练习(五)(学校管理系统)** + +**一、准备sql数据** + +**二、设置好 Maven 并导入依赖项** + +**三、构建好项目结构** + +**四、编写 School 实体类、config 里的各种配置类** + +**五、编写 SchoolMapper 接口、SchoolService 接口、SchoolServiceImpl 实现类** + +**六、编写 SchoolController 类** + +**七、启动 Tomcat** + +**八、修改前端请求页面** + +**九、浏览器 开始测试各个请求** + +## 课后作业 + +#### **综合练习(五)(学校管理系统)** + +#### **项目结构预览** + +![image-20250107161202579](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250107_1736237522.png) + +#### 具体步骤 + +##### **一、准备sql数据** + +```sql +drop database if exists demo; +create database demo charset utf8; +use demo; +# schoolId 学校编号, +create table school( + schoolId int PRIMARY key auto_increment, # schoolId 学校编号 + schoolName VARCHAR(50), # schoolName 学校名称 + schoolAddress VARCHAR(50),# schoolAddress 学校地址 + schoolPhone VARCHAR(255)# schoolPhone 学校电话 +) + +insert into school ( schoolName,schoolAddress,schoolPhone )values + ('清华大学','北京','10086'), + ('北京大学','北京','10010'), + ('闽西大学','闽西','12306'), + ('龙岩学院','龙岩','12315') +``` + +##### **二、设置好 Maven 并导入依赖项** + +**pom.xml 依赖配置文件** + +```xml + + 4.0.0 + com.jd + mySchool + war + 1.0-SNAPSHOT + + + UTF-8 + + + + + org.springframework + spring-webmvc + 5.2.25.RELEASE + + + + + org.springframework + spring-test + 5.2.25.RELEASE + + + + + org.springframework + spring-jdbc + 5.2.25.RELEASE + + + + javax.servlet + javax.servlet-api + 3.1.0 + provided + + + + com.fasterxml.jackson.core + jackson-databind + 2.9.0 + + + + + org.projectlombok + lombok + 1.18.36 + + + + org.mybatis + mybatis + 3.5.16 + + + + + com.mysql + mysql-connector-j + 8.3.0 + + + + junit + junit + 4.13.2 + test + + + + + com.alibaba + druid + 1.1.20 + + + + + + org.mybatis + mybatis-spring + 2.0.6 + + + + + + org.apache.tomcat.maven + tomcat7-maven-plugin + 2.2 + + / + 80 + utf-8 + + + + + +``` + +##### **三、构建好项目结构** + +![image-20250107161250234](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250107_1736237570.png) + +##### **四、编写 School 实体类、config 里的各种配置类** + + **School 实体类** + +```java +package com.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class School { + private int schoolId; + private String schoolName; + private String schoolAddress; + private String schoolPhone; +} +``` + +**JdbcConfig 配置类** + +```java +package com.config; + +import com.alibaba.druid.pool.DruidDataSource; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Component; + +import javax.sql.DataSource; + +@Component +public class JdbcConfig { + @Bean + public DataSource dataSource(){ + DruidDataSource druidDataSource = new DruidDataSource(); + druidDataSource.setDriverClassName("com.mysql.cj.jdbc.Driver"); + druidDataSource.setUrl("jdbc:mysql:///demo"); + druidDataSource.setUsername("root"); + druidDataSource.setPassword("123456"); + return druidDataSource; + } +} +``` + +**MybatisConfig 配置类** + +```java +package com.config; + +import org.mybatis.spring.SqlSessionFactoryBean; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Component; + +import javax.sql.DataSource; + +@Component +@MapperScan("com.mapper") +public class MybatisConfig { + @Bean + public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){ + SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); + sqlSessionFactoryBean.setDataSource(dataSource); + return sqlSessionFactoryBean; + } +} +``` + +**SpringConfig 配置类** + +```java +package com.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; + +@Configuration +@ComponentScan("com.service") +@Import({JdbcConfig.class, MybatisConfig.class}) +public class SpringConfig { + +} +``` + +**SpringMvcConfig 配置类** + +```java +package com.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +@ComponentScan("com.controller") +@EnableWebMvc +public class SpringMvcConfig implements WebMvcConfigurer { + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + registry.addResourceHandler("/**").addResourceLocations("/"); + } +} +``` + +**WebConfig 配置类** + +```java +package com.config; + +import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; + +public class WebConfig extends AbstractAnnotationConfigDispatcherServletInitializer { + @Override + protected Class[] getRootConfigClasses() { + return new Class[]{SpringConfig.class}; + } + + @Override + protected Class[] getServletConfigClasses() { + return new Class[]{SpringMvcConfig.class}; + } + + @Override + protected String[] getServletMappings() { + return new String[]{"/"}; + } +} +``` + +##### **五、编写 SchoolMapper 接口、SchoolService 接口、SchoolServiceImpl 实现类** + +**SchoolMapper 接口** + +```java +package com.mapper; + +import com.entity.School; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +@Mapper +public interface SchoolMapper { + // 查询所有学校信息 + @Select("select * from school;") + List selectAllSchools(); + + // schoolName 查询学校信息 + @Select("select * from school where schoolName like '%${schoolName}%';") + List selectSchoolBySchoolName(String schoolName); + + // id 查询学校信息 + @Select("select * from school where schoolId = #{schoolId};") + School selectSchoolBySchoolId(int schoolId); + + // id 删除学校信息 + @Delete("delete from school where schoolId = #{schoolId};") + int deleteSchoolBySchoolId(int schoolId); + + // 新增学校信息 + @Insert("insert into school (schoolName, schoolAddress, schoolPhone) VALUES (#{schoolName},#{schoolAddress},#{schoolPhone});") + int insertSchool(School school); + + // 修改学校信息 + @Update("update school set schoolName = #{schoolName},schoolAddress = #{schoolAddress},schoolPhone = #{schoolPhone} where schoolId = #{schoolId};") + int updateSchool(School school); +} +``` + +**SchoolService 接口** + +```java +package com.service; + +import com.entity.School; + +import java.util.List; + +public interface SchoolService { + // 查询所有学校信息 + List selectAllSchools(); + + // schoolName 查询学校信息 + List selectSchoolBySchoolName(String schoolName); + + // id 查询学校信息 + School selectSchoolBySchoolId(int schoolId); + + // id 删除学校信息 + int deleteSchoolBySchoolId(int schoolId); + + // 新增学校信息 + int insertSchool(School school); + + // 修改学校信息 + int updateSchool(School school); +} +``` + +**SchoolServiceImpl 实现类** + +```java +package com.service.impl; + +import com.entity.School; +import com.mapper.SchoolMapper; +import com.service.SchoolService; +import lombok.Data; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Data +@Service +public class SchoolServiceImpl implements SchoolService { + @Autowired + private SchoolMapper schoolMapper; + + @Override + // 查询所有学校信息 + public List selectAllSchools() { + return schoolMapper.selectAllSchools(); + } + + @Override + // schoolName 查询学校信息 + public List selectSchoolBySchoolName(String schoolName) { + return schoolMapper.selectSchoolBySchoolName(schoolName); + } + + @Override + // id 查询学校信息 + public School selectSchoolBySchoolId(int schoolId) { + return schoolMapper.selectSchoolBySchoolId(schoolId); + } + + @Override + // id 删除学校信息 + public int deleteSchoolBySchoolId(int schoolId) { + return schoolMapper.deleteSchoolBySchoolId(schoolId); + } + + @Override + // 新增学校信息 + public int insertSchool(School school) { + return schoolMapper.insertSchool(school ); + } + + @Override + // 修改学校信息 + public int updateSchool(School school) { + return schoolMapper.updateSchool(school); + } +} +``` + +##### **六、编写 SchoolController 类** + +**SchoolController 类** + +```java +package com.controller; + +import com.entity.School; +import com.service.SchoolService; +import lombok.Data; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@Data +@RestController +@RequestMapping("/school") +@CrossOrigin +public class SchoolController { + @Autowired + private SchoolService schoolService; + + // 查询所有学校信息 + @GetMapping + public List selectAllSchools() { + return schoolService.selectAllSchools(); + } + + // schoolName 查询学校信息 + @GetMapping(params = "schoolName") + public List selectSchoolBySchoolName(String schoolName) { + return schoolService.selectSchoolBySchoolName(schoolName); + } + + // id 查询学校信息 + @GetMapping("/{schoolId}") + public School selectSchoolBySchoolId(@PathVariable String schoolId) { + return schoolService.selectSchoolBySchoolId(Integer.parseInt(schoolId)); + } + + // id 删除学校信息 + @DeleteMapping("/{schoolId}") + public int deleteSchoolBySchoolId(@PathVariable String schoolId) { + return schoolService.deleteSchoolBySchoolId(Integer.parseInt(schoolId)); + } + + // 新增学校信息 + @PostMapping + public int insertSchool(@RequestBody School school) { + return schoolService.insertSchool(school ); + } + + // 修改学校信息 + @PutMapping + public int updateSchool(@RequestBody School school) { + return schoolService.updateSchool(school); + } +} +``` + +##### **七、启动 Tomcat** + +![image-20250107161505066](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250107_1736237705.png) + +##### **八、修改前端请求页面** + +**index.html** + +```html + + + + + + + 学校管理系统 + + + + +
+ +

学校管理系统

+
+ + + + +
+ + + + + + + + + + + + + + + + +
学校编号学校名称学校地址学校电话操作
+ +
+ + + +``` + +**styles.css** + +```css +body { + font-family: Arial, sans-serif; + background-color: #e0f7fa; /* 浅蓝色背景 */ + margin: 0; + padding: 20px; +} + +.container { + max-width: 800px; + margin: 0 auto; + background: #ffffff; /* 保持白色背景,或者可以更改为更浅的蓝色 */ + padding: 20px; + box-shadow: 0 0 10px rgba(0, 123, 255, 0.1); /* 蓝色阴影 */ +} + +h1 { + text-align: center; + color: #007bff; /* 深蓝色标题 */ +} + +#search-box { + padding: 10px; + width: calc(100% - 120px); + border: 1px solid #cce5ff; /* 浅蓝色边框 */ + border-radius: 4px; + height: 18px; +} + +#add-book-btn { + padding: 10px 20px; + background-color: #007bff; /* 深蓝色按钮 */ + color: white; + border: none; + height: 40px; + border-radius: 4px; + cursor: pointer; +} + +#add-book-btn:hover { + background-color: #0056b3; /* 深一些的蓝色按钮悬停效果 */ +} + +table { + width: 100%; + border-collapse: collapse; + margin-bottom: 20px; +} + +th, td { + padding: 10px; + border: 1px solid #cce5ff; /* 浅蓝色边框 */ + text-align: center; +} + +th { + background-color: #d1ecf1; /* 浅蓝色表头背景 */ +} +tr:hover { + background-color: #e0f7fa; /* 浅蓝色高亮背景,与页面背景相近但稍浅 */ +} +.modal { + display: none; + position: fixed; + z-index: 1; + left: 0; + top: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.4); /* 蓝色半透明背景 */ +} + +.modal-content { + background-color: #fefefe; /* 保持白色背景,或者可以更改为更浅的蓝色 */ + /* 注意:以下两行原本用于居中的代码是错误的,应该移除或更正 */ + transform: translate(60%, 40%); + /* margin应该用于.modal而不是.modal-content来实现居中 */ + padding: 35px; + border: 1px solid #cce5ff; /* 浅蓝色边框 */ + width: 40%; + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); /* 蓝色阴影 */ + /* 为了实现.modal-content的居中,您可能需要添加额外的CSS或使用JavaScript */ +} + +/* 注意:.close-btn的颜色已经在.modal-content之外定义,如果需要更改为蓝色调,可以如下修改 */ +.close-btn { + color: #007bff; /* 深蓝色关闭按钮 */ + float: right; + font-size: 28px; + font-weight: bold; + cursor: pointer; +} + +.close-btn:hover, +.close-btn:focus { + color: #0056b3; /* 深一些的蓝色关闭按钮悬停效果 */ + text-decoration: none; + cursor: pointer; +} + +form { + display: flex; + flex-direction: column; +} + +label { + margin-bottom: 8px; + color: #007bff; /* 深蓝色标签 */ +} + +input[type="text"], input[type="hidden"] { + margin-bottom: 15px; + padding: 10px; + border: 1px solid #cce5ff; /* 浅蓝色边框 */ + border-radius: 4px; +} + +button[type="submit"] { + padding: 10px 20px; + background-color: #007bff; /* 深蓝色提交按钮 */ + color: white; + border: none; + border-radius: 4px; + cursor: pointer; +} + +button[type="submit"]:hover { + background-color: #0056b3; /* 深一些的蓝色提交按钮悬停效果 */ +} +``` + +**data.js** + +```javascript +// 私有变量 +const addBtn = document.querySelector('#add-btn'); +const modal = document.querySelector('.modal'); +const closeModalBtn = document.querySelector('#close-form-btn'); +const tbody = document.querySelector('tbody'); +const form = document.querySelector('#item-form'); +const searchBox = document.querySelector("#search-box"); +const formTitle = document.querySelector("#form-title"); + +// 表单选项 +//#######################改改改################################ +let schoolId = document.querySelector("#schoolId"); +let schoolName = document.querySelector("#schoolName"); +let schoolAddress = document.querySelector("#schoolAddress"); +let schoolPhone = document.querySelector("#schoolPhone"); +//############################################################# + + +let data = []; +// api接口设置 +// const API_BASE_URL = "http://localhost/book"; +const API_BASE_URL = "http://localhost/school"; // #### 改改改 #### + +// 搜索功能 +function search(name) { + axios.get(API_BASE_URL + `?schoolName=${name}`).then(res => { + data = res.data; + renderTable(data); + }); +} + +// 渲染表格数据 # 修改item.后面的属性名称 +function renderTable(data) { + if (data.length === 0) return alert("无内容"); + tbody.innerHTML = data.map(item => { + return ` + ${item.schoolId} + ${item.schoolName} + ${item.schoolAddress} + ${item.schoolPhone} + + + + + `; + }).join(''); + + // 添加事件监听器(事件委托) + tbody.addEventListener('click', handleTableClick); +} + +// 更新,先回显要被修改的旧数据 +function update(id) { + axios.get(API_BASE_URL + `/${id}`).then(res => { + const data = res.data; + showOrCloseModal(); + form.reset(); + + // ########以下内容要修改########## + + // formTitle.innerText = '更新图书'; + formTitle.innerText = '更新学校'; + schoolId.value = data.schoolId; + schoolName.value = data.schoolName; + schoolAddress.value = data.schoolAddress; + schoolPhone.value = data.schoolPhone; + + // ######以上内容要修改##### + }); +} + + +// 处理表格点击事件 +function handleTableClick(e) { + if (e.target.classList.contains('delete-btn')) { + deleteItem(e.target.closest('tr').dataset.id); + } else if (e.target.classList.contains('update-btn')) { + update(e.target.closest('tr').dataset.id); + } +} + +// 开关浮层 +function showOrCloseModal(show = true) { + if (show) { + modal.style.display = 'block'; + } else { + modal.style.display = 'none'; + } + + schoolId.value = null; // 重置当前编辑的图书ID + +} + +// 获取列表 +function fetch() { + axios.get(API_BASE_URL).then(res => { + console.log(res) + data = res.data; + renderTable(data); + }); + +} + +// 根据id删除 +function deleteItem(id) { + if (!confirm("真的要删除吗?")) return; + axios.delete(API_BASE_URL + `/${id}`).then(res => { + alert("删除成功!") + fetch(); + }); +} + + +// 点击保存按钮:添加或更新图书 +function save() { + + // 获取表单项的值######改改##### + + // 非空判断 + if (!schoolName.value || !schoolAddress.value || !schoolPhone.value) { + alert("所有字段都必须填写!"); + return; + } + // 表单项的值,封装成一个对象 + const item = { + schoolId: schoolId.value || null, // 如果为空,则视为添加新图书 + schoolName: schoolName.value, + schoolAddress: schoolAddress.value, + schoolPhone: schoolPhone.value + }; + + // 根据编号判断是添加还是更新 + if (schoolId.value!='') { + axios.put(API_BASE_URL, item).then(res => { + alert("修改成功") + fetch(); + showOrCloseModal(false); + }) + } else { + axios.post(API_BASE_URL, item).then(res => { + console.log(item) + alert("添加成功") + fetch(); + showOrCloseModal(false); + }) + } + +} + + +// 初始化事件监听器 +function init() { + addBtn.addEventListener('click', () => { + form.reset(); + // formTitle.innerText = '添加图书'; + formTitle.innerText = '添加学校'; + showOrCloseModal(); + }); + + closeModalBtn.addEventListener('click', () => { + schoolId.value = null; //### 初始化id + showOrCloseModal(false); + }); + + form.addEventListener('submit', (e) => { + e.preventDefault(); + save(); + }); + + searchBox.addEventListener('keyup', (e) => { + if (e.key === "Enter") { + search(searchBox.value); + searchBox.value = ''; + } + }); + + // 初始加载列表 + fetch(); +} + +// 执行初始化函数 +init(); +``` + +##### **九、浏览器 开始测试各个请求** + +**查询所有学校信息请求并渲染展示** + +![image-20250107161546654](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250107_1736237746.png) + +**用 name 查询学校信息请求并渲染展示** + +![image-20250107161609306](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250107_1736237769.png) + +**用 id 查询学校信息请求** + +![image-20250107161625088](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250107_1736237785.png) + +**用 id 删除学校信息请求** + +![image-20250107161703141](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250107_1736237823.png) + +![image-20241230173052834](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/202412301730861.png) + +![image-20250107161719848](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250107_1736237840.png) + +**新增学校信息请求** + +![image-20250107161803241](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250107_1736237883.png) + +![image-20241231170531708](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20241231_1735635931.png) + +![image-20250107161822593](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250107_1736237902.png) + +**修改学校信息请求** + +![image-20250107161901345](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250107_1736237941.png) + +![image-20241231170614831](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20241231_1735635974.png) + +![image-20250107161917710](https://gitee.com/hyo-ja/picture-warehouse/raw/master/images/upgit_20250107_1736237957.png) diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/.gitignore" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/.gitignore" new file mode 100644 index 0000000..35410ca --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/.gitignore" @@ -0,0 +1,8 @@ +# 默认忽略的文件 +/shelf/ +/workspace.xml +# 基于编辑器的 HTTP 客户端请求 +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/MySchool.iml" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/MySchool.iml" new file mode 100644 index 0000000..d6ebd48 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/MySchool.iml" @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/compiler.xml" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/compiler.xml" new file mode 100644 index 0000000..1245488 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/compiler.xml" @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/dataSources.xml" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/dataSources.xml" new file mode 100644 index 0000000..58dc139 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/dataSources.xml" @@ -0,0 +1,12 @@ + + + + + mysql.8 + true + com.mysql.cj.jdbc.Driver + jdbc:mysql://localhost:3306 + $ProjectFileDir$ + + + \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/encodings.xml" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/encodings.xml" new file mode 100644 index 0000000..aa00ffa --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/encodings.xml" @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/jarRepositories.xml" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/jarRepositories.xml" new file mode 100644 index 0000000..abb532a --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/jarRepositories.xml" @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/misc.xml" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/misc.xml" new file mode 100644 index 0000000..79a352f --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/misc.xml" @@ -0,0 +1,17 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/sqldialects.xml" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/sqldialects.xml" new file mode 100644 index 0000000..56782ca --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/.idea/sqldialects.xml" @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/pom.xml" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/pom.xml" new file mode 100644 index 0000000..0a240fe --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/pom.xml" @@ -0,0 +1,103 @@ + + 4.0.0 + com.jd + mySchool + war + 1.0-SNAPSHOT + + + UTF-8 + + + + + org.springframework + spring-webmvc + 5.2.25.RELEASE + + + + + org.springframework + spring-test + 5.2.25.RELEASE + + + + + org.springframework + spring-jdbc + 5.2.25.RELEASE + + + + javax.servlet + javax.servlet-api + 3.1.0 + provided + + + + com.fasterxml.jackson.core + jackson-databind + 2.9.0 + + + + + org.projectlombok + lombok + 1.18.36 + + + + org.mybatis + mybatis + 3.5.16 + + + + + com.mysql + mysql-connector-j + 8.3.0 + + + + junit + junit + 4.13.2 + test + + + + + com.alibaba + druid + 1.1.20 + + + + + + org.mybatis + mybatis-spring + 2.0.6 + + + + + + org.apache.tomcat.maven + tomcat7-maven-plugin + 2.2 + + / + 80 + utf-8 + + + + + diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/config/JdbcConfig.java" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/config/JdbcConfig.java" new file mode 100644 index 0000000..4a99ba4 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/config/JdbcConfig.java" @@ -0,0 +1,20 @@ +package com.config; + +import com.alibaba.druid.pool.DruidDataSource; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Component; + +import javax.sql.DataSource; + +@Component +public class JdbcConfig { + @Bean + public DataSource dataSource(){ + DruidDataSource druidDataSource = new DruidDataSource(); + druidDataSource.setDriverClassName("com.mysql.cj.jdbc.Driver"); + druidDataSource.setUrl("jdbc:mysql:///demo"); + druidDataSource.setUsername("root"); + druidDataSource.setPassword("123456"); + return druidDataSource; + } +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/config/MybatisConfig.java" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/config/MybatisConfig.java" new file mode 100644 index 0000000..d826480 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/config/MybatisConfig.java" @@ -0,0 +1,19 @@ +package com.config; + +import org.mybatis.spring.SqlSessionFactoryBean; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Bean; +import org.springframework.stereotype.Component; + +import javax.sql.DataSource; + +@Component +@MapperScan("com.mapper") +public class MybatisConfig { + @Bean + public SqlSessionFactoryBean sqlSessionFactoryBean(DataSource dataSource){ + SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean(); + sqlSessionFactoryBean.setDataSource(dataSource); + return sqlSessionFactoryBean; + } +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/config/SpringConfig.java" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/config/SpringConfig.java" new file mode 100644 index 0000000..11385e4 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/config/SpringConfig.java" @@ -0,0 +1,12 @@ +package com.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; + +@Configuration +@ComponentScan("com.service") +@Import({JdbcConfig.class, MybatisConfig.class}) +public class SpringConfig { + +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/config/SpringMvcConfig.java" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/config/SpringMvcConfig.java" new file mode 100644 index 0000000..894b989 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/config/SpringMvcConfig.java" @@ -0,0 +1,17 @@ +package com.config; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +@ComponentScan("com.controller") +@EnableWebMvc +public class SpringMvcConfig implements WebMvcConfigurer { + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + registry.addResourceHandler("/**").addResourceLocations("/"); + } +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/config/WebConfig.java" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/config/WebConfig.java" new file mode 100644 index 0000000..8d00677 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/config/WebConfig.java" @@ -0,0 +1,20 @@ +package com.config; + +import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; + +public class WebConfig extends AbstractAnnotationConfigDispatcherServletInitializer { + @Override + protected Class[] getRootConfigClasses() { + return new Class[]{SpringConfig.class}; + } + + @Override + protected Class[] getServletConfigClasses() { + return new Class[]{SpringMvcConfig.class}; + } + + @Override + protected String[] getServletMappings() { + return new String[]{"/"}; + } +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/controller/SchoolController.java" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/controller/SchoolController.java" new file mode 100644 index 0000000..b00d4c6 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/controller/SchoolController.java" @@ -0,0 +1,54 @@ +package com.controller; + +import com.entity.School; +import com.service.SchoolService; +import lombok.Data; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@Data +@RestController +@RequestMapping("/school") +@CrossOrigin +public class SchoolController { + @Autowired + private SchoolService schoolService; + + // 查询所有学校信息 + @GetMapping + public List selectAllSchools() { + return schoolService.selectAllSchools(); + } + + // schoolName 查询学校信息 + @GetMapping(params = "schoolName") + public List selectSchoolBySchoolName(String schoolName) { + return schoolService.selectSchoolBySchoolName(schoolName); + } + + // id 查询学校信息 + @GetMapping("/{schoolId}") + public School selectSchoolBySchoolId(@PathVariable String schoolId) { + return schoolService.selectSchoolBySchoolId(Integer.parseInt(schoolId)); + } + + // id 删除学校信息 + @DeleteMapping("/{schoolId}") + public int deleteSchoolBySchoolId(@PathVariable String schoolId) { + return schoolService.deleteSchoolBySchoolId(Integer.parseInt(schoolId)); + } + + // 新增学校信息 + @PostMapping + public int insertSchool(@RequestBody School school) { + return schoolService.insertSchool(school ); + } + + // 修改学校信息 + @PutMapping + public int updateSchool(@RequestBody School school) { + return schoolService.updateSchool(school); + } +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/entity/School.java" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/entity/School.java" new file mode 100644 index 0000000..c5faab8 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/entity/School.java" @@ -0,0 +1,15 @@ +package com.entity; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class School { + private int schoolId; + private String schoolName; + private String schoolAddress; + private String schoolPhone; +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/mapper/SchoolMapper.java" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/mapper/SchoolMapper.java" new file mode 100644 index 0000000..73083f9 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/mapper/SchoolMapper.java" @@ -0,0 +1,33 @@ +package com.mapper; + +import com.entity.School; +import org.apache.ibatis.annotations.*; + +import java.util.List; + +@Mapper +public interface SchoolMapper { + // 查询所有学校信息 + @Select("select * from school;") + List selectAllSchools(); + + // schoolName 查询学校信息 + @Select("select * from school where schoolName like '%${schoolName}%';") + List selectSchoolBySchoolName(String schoolName); + + // id 查询学校信息 + @Select("select * from school where schoolId = #{schoolId};") + School selectSchoolBySchoolId(int schoolId); + + // id 删除学校信息 + @Delete("delete from school where schoolId = #{schoolId};") + int deleteSchoolBySchoolId(int schoolId); + + // 新增学校信息 + @Insert("insert into school (schoolName, schoolAddress, schoolPhone) VALUES (#{schoolName},#{schoolAddress},#{schoolPhone});") + int insertSchool(School school); + + // 修改学校信息 + @Update("update school set schoolName = #{schoolName},schoolAddress = #{schoolAddress},schoolPhone = #{schoolPhone} where schoolId = #{schoolId};") + int updateSchool(School school); +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/service/SchoolService.java" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/service/SchoolService.java" new file mode 100644 index 0000000..75ae72f --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/service/SchoolService.java" @@ -0,0 +1,25 @@ +package com.service; + +import com.entity.School; + +import java.util.List; + +public interface SchoolService { + // 查询所有学校信息 + List selectAllSchools(); + + // schoolName 查询学校信息 + List selectSchoolBySchoolName(String schoolName); + + // id 查询学校信息 + School selectSchoolBySchoolId(int schoolId); + + // id 删除学校信息 + int deleteSchoolBySchoolId(int schoolId); + + // 新增学校信息 + int insertSchool(School school); + + // 修改学校信息 + int updateSchool(School school); +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/service/impl/SchoolServiceImpl.java" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/service/impl/SchoolServiceImpl.java" new file mode 100644 index 0000000..1d6bc6e --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/java/com/service/impl/SchoolServiceImpl.java" @@ -0,0 +1,53 @@ +package com.service.impl; + +import com.entity.School; +import com.mapper.SchoolMapper; +import com.service.SchoolService; +import lombok.Data; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +@Data +@Service +public class SchoolServiceImpl implements SchoolService { + @Autowired + private SchoolMapper schoolMapper; + + @Override + // 查询所有学校信息 + public List selectAllSchools() { + return schoolMapper.selectAllSchools(); + } + + @Override + // schoolName 查询学校信息 + public List selectSchoolBySchoolName(String schoolName) { + return schoolMapper.selectSchoolBySchoolName(schoolName); + } + + @Override + // id 查询学校信息 + public School selectSchoolBySchoolId(int schoolId) { + return schoolMapper.selectSchoolBySchoolId(schoolId); + } + + @Override + // id 删除学校信息 + public int deleteSchoolBySchoolId(int schoolId) { + return schoolMapper.deleteSchoolBySchoolId(schoolId); + } + + @Override + // 新增学校信息 + public int insertSchool(School school) { + return schoolMapper.insertSchool(school ); + } + + @Override + // 修改学校信息 + public int updateSchool(School school) { + return schoolMapper.updateSchool(school); + } +} diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/webapp/css/styles.css" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/webapp/css/styles.css" new file mode 100644 index 0000000..fb397cd --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/webapp/css/styles.css" @@ -0,0 +1,128 @@ +body { + font-family: Arial, sans-serif; + background-color: #e0f7fa; /* 浅蓝色背景 */ + margin: 0; + padding: 20px; +} + +.container { + max-width: 800px; + margin: 0 auto; + background: #ffffff; /* 保持白色背景,或者可以更改为更浅的蓝色 */ + padding: 20px; + box-shadow: 0 0 10px rgba(0, 123, 255, 0.1); /* 蓝色阴影 */ +} + +h1 { + text-align: center; + color: #007bff; /* 深蓝色标题 */ +} + +#search-box { + padding: 10px; + width: calc(100% - 120px); + border: 1px solid #cce5ff; /* 浅蓝色边框 */ + border-radius: 4px; + height: 18px; +} + +#add-book-btn { + padding: 10px 20px; + background-color: #007bff; /* 深蓝色按钮 */ + color: white; + border: none; + height: 40px; + border-radius: 4px; + cursor: pointer; +} + +#add-book-btn:hover { + background-color: #0056b3; /* 深一些的蓝色按钮悬停效果 */ +} + +table { + width: 100%; + border-collapse: collapse; + margin-bottom: 20px; +} + +th, td { + padding: 10px; + border: 1px solid #cce5ff; /* 浅蓝色边框 */ + text-align: center; +} + +th { + background-color: #d1ecf1; /* 浅蓝色表头背景 */ +} +tr:hover { + background-color: #e0f7fa; /* 浅蓝色高亮背景,与页面背景相近但稍浅 */ +} +.modal { + display: none; + position: fixed; + z-index: 1; + left: 0; + top: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.4); /* 蓝色半透明背景 */ +} + +.modal-content { + background-color: #fefefe; /* 保持白色背景,或者可以更改为更浅的蓝色 */ + /* 注意:以下两行原本用于居中的代码是错误的,应该移除或更正 */ + transform: translate(60%, 40%); + /* margin应该用于.modal而不是.modal-content来实现居中 */ + padding: 35px; + border: 1px solid #cce5ff; /* 浅蓝色边框 */ + width: 40%; + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); /* 蓝色阴影 */ + /* 为了实现.modal-content的居中,您可能需要添加额外的CSS或使用JavaScript */ +} + +/* 注意:.close-btn的颜色已经在.modal-content之外定义,如果需要更改为蓝色调,可以如下修改 */ +.close-btn { + color: #007bff; /* 深蓝色关闭按钮 */ + float: right; + font-size: 28px; + font-weight: bold; + cursor: pointer; +} + +.close-btn:hover, +.close-btn:focus { + color: #0056b3; /* 深一些的蓝色关闭按钮悬停效果 */ + text-decoration: none; + cursor: pointer; +} + +form { + display: flex; + flex-direction: column; +} + +label { + margin-bottom: 8px; + color: #007bff; /* 深蓝色标签 */ +} + +input[type="text"], input[type="hidden"] { + margin-bottom: 15px; + padding: 10px; + border: 1px solid #cce5ff; /* 浅蓝色边框 */ + border-radius: 4px; +} + +button[type="submit"] { + padding: 10px 20px; + background-color: #007bff; /* 深蓝色提交按钮 */ + color: white; + border: none; + border-radius: 4px; + cursor: pointer; +} + +button[type="submit"]:hover { + background-color: #0056b3; /* 深一些的蓝色提交按钮悬停效果 */ +} \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/webapp/index.html" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/webapp/index.html" new file mode 100644 index 0000000..4508626 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/webapp/index.html" @@ -0,0 +1,62 @@ + + + + + + + 学校管理系统 + + + + +
+ +

学校管理系统

+
+ + + + +
+ + + + + + + + + + + + + + + + +
学校编号学校名称学校地址学校电话操作
+ +
+ + + \ No newline at end of file diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/webapp/js/axios.min.js" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/webapp/js/axios.min.js" new file mode 100644 index 0000000..0ac6c50 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/webapp/js/axios.min.js" @@ -0,0 +1,2 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).axios=t()}(this,(function(){"use strict";function e(e){var r,n;function o(r,n){try{var a=e[r](n),u=a.value,s=u instanceof t;Promise.resolve(s?u.v:u).then((function(t){if(s){var n="return"===r?"return":"next";if(!u.k||t.done)return o(n,t);t=e[n](t).value}i(a.done?"return":"normal",t)}),(function(e){o("throw",e)}))}catch(e){i("throw",e)}}function i(e,t){switch(e){case"return":r.resolve({value:t,done:!0});break;case"throw":r.reject(t);break;default:r.resolve({value:t,done:!1})}(r=r.next)?o(r.key,r.arg):n=null}this._invoke=function(e,t){return new Promise((function(i,a){var u={key:e,arg:t,resolve:i,reject:a,next:null};n?n=n.next=u:(r=n=u,o(e,t))}))},"function"!=typeof e.return&&(this.return=void 0)}function t(e,t){this.v=e,this.k=t}function r(e){var r={},n=!1;function o(r,o){return n=!0,o=new Promise((function(t){t(e[r](o))})),{done:!1,value:new t(o,1)}}return r["undefined"!=typeof Symbol&&Symbol.iterator||"@@iterator"]=function(){return this},r.next=function(e){return n?(n=!1,e):o("next",e)},"function"==typeof e.throw&&(r.throw=function(e){if(n)throw n=!1,e;return o("throw",e)}),"function"==typeof e.return&&(r.return=function(e){return n?(n=!1,e):o("return",e)}),r}function n(e){var t,r,n,i=2;for("undefined"!=typeof Symbol&&(r=Symbol.asyncIterator,n=Symbol.iterator);i--;){if(r&&null!=(t=e[r]))return t.call(e);if(n&&null!=(t=e[n]))return new o(t.call(e));r="@@asyncIterator",n="@@iterator"}throw new TypeError("Object is not async iterable")}function o(e){function t(e){if(Object(e)!==e)return Promise.reject(new TypeError(e+" is not an object."));var t=e.done;return Promise.resolve(e.value).then((function(e){return{value:e,done:t}}))}return o=function(e){this.s=e,this.n=e.next},o.prototype={s:null,n:null,next:function(){return t(this.n.apply(this.s,arguments))},return:function(e){var r=this.s.return;return void 0===r?Promise.resolve({value:e,done:!0}):t(r.apply(this.s,arguments))},throw:function(e){var r=this.s.return;return void 0===r?Promise.reject(e):t(r.apply(this.s,arguments))}},new o(e)}function i(e){return new t(e,0)}function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function u(e){for(var t=1;t=0;--i){var a=this.tryEntries[i],u=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var s=n.call(a,"catchLoc"),c=n.call(a,"finallyLoc");if(s&&c){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),A(r),y}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;A(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,r,n){return this.delegate={iterator:L(t),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=e),y}},t}function c(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!=typeof n)return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}function f(e){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},f(e)}function l(t){return function(){return new e(t.apply(this,arguments))}}function p(e,t,r,n,o,i,a){try{var u=e[i](a),s=u.value}catch(e){return void r(e)}u.done?t(s):Promise.resolve(s).then(n,o)}function h(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var i=e.apply(t,r);function a(e){p(i,n,o,a,u,"next",e)}function u(e){p(i,n,o,a,u,"throw",e)}a(void 0)}))}}function d(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function v(e,t){for(var r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);r2&&void 0!==arguments[2]?arguments[2]:{},i=o.allOwnKeys,a=void 0!==i&&i;if(null!=e)if("object"!==f(e)&&(e=[e]),N(e))for(r=0,n=e.length;r0;)if(t===(r=n[o]).toLowerCase())return r;return null}var Q="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:global,Z=function(e){return!_(e)&&e!==Q};var ee,te=(ee="undefined"!=typeof Uint8Array&&j(Uint8Array),function(e){return ee&&e instanceof ee}),re=P("HTMLFormElement"),ne=function(e){var t=Object.prototype.hasOwnProperty;return function(e,r){return t.call(e,r)}}(),oe=P("RegExp"),ie=function(e,t){var r=Object.getOwnPropertyDescriptors(e),n={};$(r,(function(r,o){var i;!1!==(i=t(r,o,e))&&(n[o]=i||r)})),Object.defineProperties(e,n)},ae="abcdefghijklmnopqrstuvwxyz",ue="0123456789",se={DIGIT:ue,ALPHA:ae,ALPHA_DIGIT:ae+ae.toUpperCase()+ue};var ce,fe,le,pe,he=P("AsyncFunction"),de=(ce="function"==typeof setImmediate,fe=U(Q.postMessage),ce?setImmediate:fe?(le="axios@".concat(Math.random()),pe=[],Q.addEventListener("message",(function(e){var t=e.source,r=e.data;t===Q&&r===le&&pe.length&&pe.shift()()}),!1),function(e){pe.push(e),Q.postMessage(le,"*")}):function(e){return setTimeout(e)}),ve="undefined"!=typeof queueMicrotask?queueMicrotask.bind(Q):"undefined"!=typeof process&&process.nextTick||de,ye={isArray:N,isArrayBuffer:C,isBuffer:function(e){return null!==e&&!_(e)&&null!==e.constructor&&!_(e.constructor)&&U(e.constructor.isBuffer)&&e.constructor.isBuffer(e)},isFormData:function(e){var t;return e&&("function"==typeof FormData&&e instanceof FormData||U(e.append)&&("formdata"===(t=A(e))||"object"===t&&U(e.toString)&&"[object FormData]"===e.toString()))},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&C(e.buffer)},isString:F,isNumber:B,isBoolean:function(e){return!0===e||!1===e},isObject:D,isPlainObject:I,isReadableStream:G,isRequest:K,isResponse:V,isHeaders:X,isUndefined:_,isDate:q,isFile:M,isBlob:z,isRegExp:oe,isFunction:U,isStream:function(e){return D(e)&&U(e.pipe)},isURLSearchParams:J,isTypedArray:te,isFileList:H,forEach:$,merge:function e(){for(var t=Z(this)&&this||{},r=t.caseless,n={},o=function(t,o){var i=r&&Y(n,o)||o;I(n[i])&&I(t)?n[i]=e(n[i],t):I(t)?n[i]=e({},t):N(t)?n[i]=t.slice():n[i]=t},i=0,a=arguments.length;i3&&void 0!==arguments[3]?arguments[3]:{},o=n.allOwnKeys;return $(t,(function(t,n){r&&U(t)?e[n]=R(t,r):e[n]=t}),{allOwnKeys:o}),e},trim:function(e){return e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")},stripBOM:function(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e},inherits:function(e,t,r,n){e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),r&&Object.assign(e.prototype,r)},toFlatObject:function(e,t,r,n){var o,i,a,u={};if(t=t||{},null==e)return t;do{for(i=(o=Object.getOwnPropertyNames(e)).length;i-- >0;)a=o[i],n&&!n(a,e,t)||u[a]||(t[a]=e[a],u[a]=!0);e=!1!==r&&j(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},kindOf:A,kindOfTest:P,endsWith:function(e,t,r){e=String(e),(void 0===r||r>e.length)&&(r=e.length),r-=t.length;var n=e.indexOf(t,r);return-1!==n&&n===r},toArray:function(e){if(!e)return null;if(N(e))return e;var t=e.length;if(!B(t))return null;for(var r=new Array(t);t-- >0;)r[t]=e[t];return r},forEachEntry:function(e,t){for(var r,n=(e&&e[Symbol.iterator]).call(e);(r=n.next())&&!r.done;){var o=r.value;t.call(e,o[0],o[1])}},matchAll:function(e,t){for(var r,n=[];null!==(r=e.exec(t));)n.push(r);return n},isHTMLForm:re,hasOwnProperty:ne,hasOwnProp:ne,reduceDescriptors:ie,freezeMethods:function(e){ie(e,(function(t,r){if(U(e)&&-1!==["arguments","caller","callee"].indexOf(r))return!1;var n=e[r];U(n)&&(t.enumerable=!1,"writable"in t?t.writable=!1:t.set||(t.set=function(){throw Error("Can not rewrite read-only method '"+r+"'")}))}))},toObjectSet:function(e,t){var r={},n=function(e){e.forEach((function(e){r[e]=!0}))};return N(e)?n(e):n(String(e).split(t)),r},toCamelCase:function(e){return e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,(function(e,t,r){return t.toUpperCase()+r}))},noop:function(){},toFiniteNumber:function(e,t){return null!=e&&Number.isFinite(e=+e)?e:t},findKey:Y,global:Q,isContextDefined:Z,ALPHABET:se,generateString:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:se.ALPHA_DIGIT,r="",n=t.length;e--;)r+=t[Math.random()*n|0];return r},isSpecCompliantForm:function(e){return!!(e&&U(e.append)&&"FormData"===e[Symbol.toStringTag]&&e[Symbol.iterator])},toJSONObject:function(e){var t=new Array(10);return function e(r,n){if(D(r)){if(t.indexOf(r)>=0)return;if(!("toJSON"in r)){t[n]=r;var o=N(r)?[]:{};return $(r,(function(t,r){var i=e(t,n+1);!_(i)&&(o[r]=i)})),t[n]=void 0,o}}return r}(e,0)},isAsyncFn:he,isThenable:function(e){return e&&(D(e)||U(e))&&U(e.then)&&U(e.catch)},setImmediate:de,asap:ve};function me(e,t,r,n,o){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),o&&(this.response=o,this.status=o.status?o.status:null)}ye.inherits(me,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:ye.toJSONObject(this.config),code:this.code,status:this.status}}});var be=me.prototype,ge={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((function(e){ge[e]={value:e}})),Object.defineProperties(me,ge),Object.defineProperty(be,"isAxiosError",{value:!0}),me.from=function(e,t,r,n,o,i){var a=Object.create(be);return ye.toFlatObject(e,a,(function(e){return e!==Error.prototype}),(function(e){return"isAxiosError"!==e})),me.call(a,e.message,t,r,n,o),a.cause=e,a.name=e.name,i&&Object.assign(a,i),a};function we(e){return ye.isPlainObject(e)||ye.isArray(e)}function Ee(e){return ye.endsWith(e,"[]")?e.slice(0,-2):e}function Oe(e,t,r){return e?e.concat(t).map((function(e,t){return e=Ee(e),!r&&t?"["+e+"]":e})).join(r?".":""):t}var Se=ye.toFlatObject(ye,{},null,(function(e){return/^is[A-Z]/.test(e)}));function xe(e,t,r){if(!ye.isObject(e))throw new TypeError("target must be an object");t=t||new FormData;var n=(r=ye.toFlatObject(r,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(e,t){return!ye.isUndefined(t[e])}))).metaTokens,o=r.visitor||c,i=r.dots,a=r.indexes,u=(r.Blob||"undefined"!=typeof Blob&&Blob)&&ye.isSpecCompliantForm(t);if(!ye.isFunction(o))throw new TypeError("visitor must be a function");function s(e){if(null===e)return"";if(ye.isDate(e))return e.toISOString();if(!u&&ye.isBlob(e))throw new me("Blob is not supported. Use a Buffer instead.");return ye.isArrayBuffer(e)||ye.isTypedArray(e)?u&&"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}function c(e,r,o){var u=e;if(e&&!o&&"object"===f(e))if(ye.endsWith(r,"{}"))r=n?r:r.slice(0,-2),e=JSON.stringify(e);else if(ye.isArray(e)&&function(e){return ye.isArray(e)&&!e.some(we)}(e)||(ye.isFileList(e)||ye.endsWith(r,"[]"))&&(u=ye.toArray(e)))return r=Ee(r),u.forEach((function(e,n){!ye.isUndefined(e)&&null!==e&&t.append(!0===a?Oe([r],n,i):null===a?r:r+"[]",s(e))})),!1;return!!we(e)||(t.append(Oe(o,r,i),s(e)),!1)}var l=[],p=Object.assign(Se,{defaultVisitor:c,convertValue:s,isVisitable:we});if(!ye.isObject(e))throw new TypeError("data must be an object");return function e(r,n){if(!ye.isUndefined(r)){if(-1!==l.indexOf(r))throw Error("Circular reference detected in "+n.join("."));l.push(r),ye.forEach(r,(function(r,i){!0===(!(ye.isUndefined(r)||null===r)&&o.call(t,r,ye.isString(i)?i.trim():i,n,p))&&e(r,n?n.concat(i):[i])})),l.pop()}}(e),t}function Re(e){var t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,(function(e){return t[e]}))}function Te(e,t){this._pairs=[],e&&xe(e,this,t)}var ke=Te.prototype;function je(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Ae(e,t,r){if(!t)return e;var n=r&&r.encode||je;ye.isFunction(r)&&(r={serialize:r});var o,i=r&&r.serialize;if(o=i?i(t,r):ye.isURLSearchParams(t)?t.toString():new Te(t,r).toString(n)){var a=e.indexOf("#");-1!==a&&(e=e.slice(0,a)),e+=(-1===e.indexOf("?")?"?":"&")+o}return e}ke.append=function(e,t){this._pairs.push([e,t])},ke.toString=function(e){var t=e?function(t){return e.call(this,t,Re)}:Re;return this._pairs.map((function(e){return t(e[0])+"="+t(e[1])}),"").join("&")};var Pe=function(){function e(){d(this,e),this.handlers=[]}return y(e,[{key:"use",value:function(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1}},{key:"eject",value:function(e){this.handlers[e]&&(this.handlers[e]=null)}},{key:"clear",value:function(){this.handlers&&(this.handlers=[])}},{key:"forEach",value:function(e){ye.forEach(this.handlers,(function(t){null!==t&&e(t)}))}}]),e}(),Le={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},Ne={isBrowser:!0,classes:{URLSearchParams:"undefined"!=typeof URLSearchParams?URLSearchParams:Te,FormData:"undefined"!=typeof FormData?FormData:null,Blob:"undefined"!=typeof Blob?Blob:null},protocols:["http","https","file","blob","url","data"]},_e="undefined"!=typeof window&&"undefined"!=typeof document,Ce="object"===("undefined"==typeof navigator?"undefined":f(navigator))&&navigator||void 0,Fe=_e&&(!Ce||["ReactNative","NativeScript","NS"].indexOf(Ce.product)<0),Ue="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope&&"function"==typeof self.importScripts,Be=_e&&window.location.href||"http://localhost",De=u(u({},Object.freeze({__proto__:null,hasBrowserEnv:_e,hasStandardBrowserWebWorkerEnv:Ue,hasStandardBrowserEnv:Fe,navigator:Ce,origin:Be})),Ne);function Ie(e){function t(e,r,n,o){var i=e[o++];if("__proto__"===i)return!0;var a=Number.isFinite(+i),u=o>=e.length;return i=!i&&ye.isArray(n)?n.length:i,u?(ye.hasOwnProp(n,i)?n[i]=[n[i],r]:n[i]=r,!a):(n[i]&&ye.isObject(n[i])||(n[i]=[]),t(e,r,n[i],o)&&ye.isArray(n[i])&&(n[i]=function(e){var t,r,n={},o=Object.keys(e),i=o.length;for(t=0;t-1,i=ye.isObject(e);if(i&&ye.isHTMLForm(e)&&(e=new FormData(e)),ye.isFormData(e))return o?JSON.stringify(Ie(e)):e;if(ye.isArrayBuffer(e)||ye.isBuffer(e)||ye.isStream(e)||ye.isFile(e)||ye.isBlob(e)||ye.isReadableStream(e))return e;if(ye.isArrayBufferView(e))return e.buffer;if(ye.isURLSearchParams(e))return t.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),e.toString();if(i){if(n.indexOf("application/x-www-form-urlencoded")>-1)return function(e,t){return xe(e,new De.classes.URLSearchParams,Object.assign({visitor:function(e,t,r,n){return De.isNode&&ye.isBuffer(e)?(this.append(t,e.toString("base64")),!1):n.defaultVisitor.apply(this,arguments)}},t))}(e,this.formSerializer).toString();if((r=ye.isFileList(e))||n.indexOf("multipart/form-data")>-1){var a=this.env&&this.env.FormData;return xe(r?{"files[]":e}:e,a&&new a,this.formSerializer)}}return i||o?(t.setContentType("application/json",!1),function(e,t,r){if(ye.isString(e))try{return(t||JSON.parse)(e),ye.trim(e)}catch(e){if("SyntaxError"!==e.name)throw e}return(r||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional||qe.transitional,r=t&&t.forcedJSONParsing,n="json"===this.responseType;if(ye.isResponse(e)||ye.isReadableStream(e))return e;if(e&&ye.isString(e)&&(r&&!this.responseType||n)){var o=!(t&&t.silentJSONParsing)&&n;try{return JSON.parse(e)}catch(e){if(o){if("SyntaxError"===e.name)throw me.from(e,me.ERR_BAD_RESPONSE,this,null,this.response);throw e}}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:De.classes.FormData,Blob:De.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};ye.forEach(["delete","get","head","post","put","patch"],(function(e){qe.headers[e]={}}));var Me=qe,ze=ye.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),He=Symbol("internals");function Je(e){return e&&String(e).trim().toLowerCase()}function We(e){return!1===e||null==e?e:ye.isArray(e)?e.map(We):String(e)}function Ge(e,t,r,n,o){return ye.isFunction(n)?n.call(this,t,r):(o&&(t=r),ye.isString(t)?ye.isString(n)?-1!==t.indexOf(n):ye.isRegExp(n)?n.test(t):void 0:void 0)}var Ke=function(e,t){function r(e){d(this,r),e&&this.set(e)}return y(r,[{key:"set",value:function(e,t,r){var n=this;function o(e,t,r){var o=Je(t);if(!o)throw new Error("header name must be a non-empty string");var i=ye.findKey(n,o);(!i||void 0===n[i]||!0===r||void 0===r&&!1!==n[i])&&(n[i||t]=We(e))}var i=function(e,t){return ye.forEach(e,(function(e,r){return o(e,r,t)}))};if(ye.isPlainObject(e)||e instanceof this.constructor)i(e,t);else if(ye.isString(e)&&(e=e.trim())&&!/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim()))i(function(e){var t,r,n,o={};return e&&e.split("\n").forEach((function(e){n=e.indexOf(":"),t=e.substring(0,n).trim().toLowerCase(),r=e.substring(n+1).trim(),!t||o[t]&&ze[t]||("set-cookie"===t?o[t]?o[t].push(r):o[t]=[r]:o[t]=o[t]?o[t]+", "+r:r)})),o}(e),t);else if(ye.isHeaders(e)){var a,u=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=O(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,a=!0,u=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return a=e.done,e},e:function(e){u=!0,i=e},f:function(){try{a||null==r.return||r.return()}finally{if(u)throw i}}}}(e.entries());try{for(u.s();!(a=u.n()).done;){var s=b(a.value,2),c=s[0];o(s[1],c,r)}}catch(e){u.e(e)}finally{u.f()}}else null!=e&&o(t,e,r);return this}},{key:"get",value:function(e,t){if(e=Je(e)){var r=ye.findKey(this,e);if(r){var n=this[r];if(!t)return n;if(!0===t)return function(e){for(var t,r=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;t=n.exec(e);)r[t[1]]=t[2];return r}(n);if(ye.isFunction(t))return t.call(this,n,r);if(ye.isRegExp(t))return t.exec(n);throw new TypeError("parser must be boolean|regexp|function")}}}},{key:"has",value:function(e,t){if(e=Je(e)){var r=ye.findKey(this,e);return!(!r||void 0===this[r]||t&&!Ge(0,this[r],r,t))}return!1}},{key:"delete",value:function(e,t){var r=this,n=!1;function o(e){if(e=Je(e)){var o=ye.findKey(r,e);!o||t&&!Ge(0,r[o],o,t)||(delete r[o],n=!0)}}return ye.isArray(e)?e.forEach(o):o(e),n}},{key:"clear",value:function(e){for(var t=Object.keys(this),r=t.length,n=!1;r--;){var o=t[r];e&&!Ge(0,this[o],o,e,!0)||(delete this[o],n=!0)}return n}},{key:"normalize",value:function(e){var t=this,r={};return ye.forEach(this,(function(n,o){var i=ye.findKey(r,o);if(i)return t[i]=We(n),void delete t[o];var a=e?function(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(function(e,t,r){return t.toUpperCase()+r}))}(o):String(o).trim();a!==o&&delete t[o],t[a]=We(n),r[a]=!0})),this}},{key:"concat",value:function(){for(var e,t=arguments.length,r=new Array(t),n=0;n1?r-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:Date.now();o=i,r=null,n&&(clearTimeout(n),n=null),e.apply(null,t)};return[function(){for(var e=Date.now(),t=e-o,u=arguments.length,s=new Array(u),c=0;c=i?a(s,e):(r=s,n||(n=setTimeout((function(){n=null,a(r)}),i-t)))},function(){return r&&a(r)}]}ye.inherits(Ye,me,{__CANCEL__:!0});var tt=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:3,n=0,o=Ze(50,250);return et((function(r){var i=r.loaded,a=r.lengthComputable?r.total:void 0,u=i-n,s=o(u);n=i;var c=m({loaded:i,total:a,progress:a?i/a:void 0,bytes:u,rate:s||void 0,estimated:s&&a&&i<=a?(a-i)/s:void 0,event:r,lengthComputable:null!=a},t?"download":"upload",!0);e(c)}),r)},rt=function(e,t){var r=null!=e;return[function(n){return t[0]({lengthComputable:r,total:e,loaded:n})},t[1]]},nt=function(e){return function(){for(var t=arguments.length,r=new Array(t),n=0;n1?t-1:0),n=1;n1?"since :\n"+u.map(At).join("\n"):" "+At(u[0]):"as no adapter specified"),"ERR_NOT_SUPPORT")}return r};function Nt(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Ye(null,e)}function _t(e){return Nt(e),e.headers=Ve.from(e.headers),e.data=Xe.call(e,e.transformRequest),-1!==["post","put","patch"].indexOf(e.method)&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Lt(e.adapter||Me.adapter)(e).then((function(t){return Nt(e),t.data=Xe.call(e,e.transformResponse,t),t.headers=Ve.from(t.headers),t}),(function(t){return $e(t)||(Nt(e),t&&t.response&&(t.response.data=Xe.call(e,e.transformResponse,t.response),t.response.headers=Ve.from(t.response.headers))),Promise.reject(t)}))}var Ct="1.7.9",Ft={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){Ft[e]=function(r){return f(r)===e||"a"+(t<1?"n ":" ")+e}}));var Ut={};Ft.transitional=function(e,t,r){function n(e,t){return"[Axios v1.7.9] Transitional option '"+e+"'"+t+(r?". "+r:"")}return function(r,o,i){if(!1===e)throw new me(n(o," has been removed"+(t?" in "+t:"")),me.ERR_DEPRECATED);return t&&!Ut[o]&&(Ut[o]=!0,console.warn(n(o," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(r,o,i)}},Ft.spelling=function(e){return function(t,r){return console.warn("".concat(r," is likely a misspelling of ").concat(e)),!0}};var Bt={assertOptions:function(e,t,r){if("object"!==f(e))throw new me("options must be an object",me.ERR_BAD_OPTION_VALUE);for(var n=Object.keys(e),o=n.length;o-- >0;){var i=n[o],a=t[i];if(a){var u=e[i],s=void 0===u||a(u,i,e);if(!0!==s)throw new me("option "+i+" must be "+s,me.ERR_BAD_OPTION_VALUE)}else if(!0!==r)throw new me("Unknown option "+i,me.ERR_BAD_OPTION)}},validators:Ft},Dt=Bt.validators,It=function(){function e(t){d(this,e),this.defaults=t,this.interceptors={request:new Pe,response:new Pe}}var t;return y(e,[{key:"request",value:(t=h(s().mark((function e(t,r){var n,o;return s().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,this._request(t,r);case 3:return e.abrupt("return",e.sent);case 6:if(e.prev=6,e.t0=e.catch(0),e.t0 instanceof Error){n={},Error.captureStackTrace?Error.captureStackTrace(n):n=new Error,o=n.stack?n.stack.replace(/^.+\n/,""):"";try{e.t0.stack?o&&!String(e.t0.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(e.t0.stack+="\n"+o):e.t0.stack=o}catch(e){}}throw e.t0;case 10:case"end":return e.stop()}}),e,this,[[0,6]])}))),function(e,r){return t.apply(this,arguments)})},{key:"_request",value:function(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{};var r=t=st(this.defaults,t),n=r.transitional,o=r.paramsSerializer,i=r.headers;void 0!==n&&Bt.assertOptions(n,{silentJSONParsing:Dt.transitional(Dt.boolean),forcedJSONParsing:Dt.transitional(Dt.boolean),clarifyTimeoutError:Dt.transitional(Dt.boolean)},!1),null!=o&&(ye.isFunction(o)?t.paramsSerializer={serialize:o}:Bt.assertOptions(o,{encode:Dt.function,serialize:Dt.function},!0)),Bt.assertOptions(t,{baseUrl:Dt.spelling("baseURL"),withXsrfToken:Dt.spelling("withXSRFToken")},!0),t.method=(t.method||this.defaults.method||"get").toLowerCase();var a=i&&ye.merge(i.common,i[t.method]);i&&ye.forEach(["delete","get","head","post","put","patch","common"],(function(e){delete i[e]})),t.headers=Ve.concat(a,i);var u=[],s=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(s=s&&e.synchronous,u.unshift(e.fulfilled,e.rejected))}));var c,f=[];this.interceptors.response.forEach((function(e){f.push(e.fulfilled,e.rejected)}));var l,p=0;if(!s){var h=[_t.bind(this),void 0];for(h.unshift.apply(h,u),h.push.apply(h,f),l=h.length,c=Promise.resolve(t);p0;)n._listeners[t](e);n._listeners=null}})),this.promise.then=function(e){var t,r=new Promise((function(e){n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},t((function(e,t,o){n.reason||(n.reason=new Ye(e,t,o),r(n.reason))}))}return y(e,[{key:"throwIfRequested",value:function(){if(this.reason)throw this.reason}},{key:"subscribe",value:function(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]}},{key:"unsubscribe",value:function(e){if(this._listeners){var t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}}},{key:"toAbortSignal",value:function(){var e=this,t=new AbortController,r=function(e){t.abort(e)};return this.subscribe(r),t.signal.unsubscribe=function(){return e.unsubscribe(r)},t.signal}}],[{key:"source",value:function(){var t;return{token:new e((function(e){t=e})),cancel:t}}}]),e}(),zt=Mt;var Ht={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Ht).forEach((function(e){var t=b(e,2),r=t[0],n=t[1];Ht[n]=r}));var Jt=Ht;var Wt=function e(t){var r=new qt(t),n=R(qt.prototype.request,r);return ye.extend(n,qt.prototype,r,{allOwnKeys:!0}),ye.extend(n,r,null,{allOwnKeys:!0}),n.create=function(r){return e(st(t,r))},n}(Me);return Wt.Axios=qt,Wt.CanceledError=Ye,Wt.CancelToken=zt,Wt.isCancel=$e,Wt.VERSION=Ct,Wt.toFormData=xe,Wt.AxiosError=me,Wt.Cancel=Wt.CanceledError,Wt.all=function(e){return Promise.all(e)},Wt.spread=function(e){return function(t){return e.apply(null,t)}},Wt.isAxiosError=function(e){return ye.isObject(e)&&!0===e.isAxiosError},Wt.mergeConfig=st,Wt.AxiosHeaders=Ve,Wt.formToJSON=function(e){return Ie(ye.isHTMLForm(e)?new FormData(e):e)},Wt.getAdapter=Lt,Wt.HttpStatusCode=Jt,Wt.default=Wt,Wt})); +//# sourceMappingURL=axios.min.js.map diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/webapp/js/data.js" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/webapp/js/data.js" new file mode 100644 index 0000000..847c5e5 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/src/main/webapp/js/data.js" @@ -0,0 +1,182 @@ +// 私有变量 +const addBtn = document.querySelector('#add-btn'); +const modal = document.querySelector('.modal'); +const closeModalBtn = document.querySelector('#close-form-btn'); +const tbody = document.querySelector('tbody'); +const form = document.querySelector('#item-form'); +const searchBox = document.querySelector("#search-box"); +const formTitle = document.querySelector("#form-title"); + +// 表单选项 +//#######################改改改################################ +let schoolId = document.querySelector("#schoolId"); +let schoolName = document.querySelector("#schoolName"); +let schoolAddress = document.querySelector("#schoolAddress"); +let schoolPhone = document.querySelector("#schoolPhone"); +//############################################################# + + +let data = []; +// api接口设置 +// const API_BASE_URL = "http://localhost/book"; +const API_BASE_URL = "http://localhost/school"; // #### 改改改 #### + +// 搜索功能 +function search(name) { + axios.get(API_BASE_URL + `?schoolName=${name}`).then(res => { + data = res.data; + renderTable(data); + }); +} + +// 渲染表格数据 # 修改item.后面的属性名称 +function renderTable(data) { + if (data.length === 0) return alert("无内容"); + tbody.innerHTML = data.map(item => { + return ` + ${item.schoolId} + ${item.schoolName} + ${item.schoolAddress} + ${item.schoolPhone} + + + + + `; + }).join(''); + + // 添加事件监听器(事件委托) + tbody.addEventListener('click', handleTableClick); +} + +// 更新,先回显要被修改的旧数据 +function update(id) { + axios.get(API_BASE_URL + `/${id}`).then(res => { + const data = res.data; + showOrCloseModal(); + form.reset(); + + // ########以下内容要修改########## + + // formTitle.innerText = '更新图书'; + formTitle.innerText = '更新学校'; + schoolId.value = data.schoolId; + schoolName.value = data.schoolName; + schoolAddress.value = data.schoolAddress; + schoolPhone.value = data.schoolPhone; + + // ######以上内容要修改##### + }); +} + + +// 处理表格点击事件 +function handleTableClick(e) { + if (e.target.classList.contains('delete-btn')) { + deleteItem(e.target.closest('tr').dataset.id); + } else if (e.target.classList.contains('update-btn')) { + update(e.target.closest('tr').dataset.id); + } +} + +// 开关浮层 +function showOrCloseModal(show = true) { + if (show) { + modal.style.display = 'block'; + } else { + modal.style.display = 'none'; + } + + schoolId.value = null; // 重置当前编辑的图书ID + +} + +// 获取列表 +function fetch() { + axios.get(API_BASE_URL).then(res => { + console.log(res) + data = res.data; + renderTable(data); + }); + +} + +// 根据id删除 +function deleteItem(id) { + if (!confirm("真的要删除吗?")) return; + axios.delete(API_BASE_URL + `/${id}`).then(res => { + alert("删除成功!") + fetch(); + }); +} + + +// 点击保存按钮:添加或更新图书 +function save() { + + // 获取表单项的值######改改##### + + // 非空判断 + if (!schoolName.value || !schoolAddress.value || !schoolPhone.value) { + alert("所有字段都必须填写!"); + return; + } + // 表单项的值,封装成一个对象 + const item = { + schoolId: schoolId.value || null, // 如果为空,则视为添加新图书 + schoolName: schoolName.value, + schoolAddress: schoolAddress.value, + schoolPhone: schoolPhone.value + }; + + // 根据编号判断是添加还是更新 + if (schoolId.value!='') { + axios.put(API_BASE_URL, item).then(res => { + alert("修改成功") + fetch(); + showOrCloseModal(false); + }) + } else { + axios.post(API_BASE_URL, item).then(res => { + console.log(item) + alert("添加成功") + fetch(); + showOrCloseModal(false); + }) + } + +} + + +// 初始化事件监听器 +function init() { + addBtn.addEventListener('click', () => { + form.reset(); + // formTitle.innerText = '添加图书'; + formTitle.innerText = '添加学校'; + showOrCloseModal(); + }); + + closeModalBtn.addEventListener('click', () => { + schoolId.value = null; //### 初始化id + showOrCloseModal(false); + }); + + form.addEventListener('submit', (e) => { + e.preventDefault(); + save(); + }); + + searchBox.addEventListener('keyup', (e) => { + if (e.key === "Enter") { + search(searchBox.value); + searchBox.value = ''; + } + }); + + // 初始加载列表 + fetch(); +} + +// 执行初始化函数 +init(); diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/classes/com/config/JdbcConfig.class" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/classes/com/config/JdbcConfig.class" new file mode 100644 index 0000000000000000000000000000000000000000..38f06e9361e3d7f2cea798f07c5af6ec242d1e6f GIT binary patch literal 890 zcmah{T~8B16g^W)yOwIPqI~!Ts930UqM{FAOti!Y)1VP0@o~C4)Tz5Wb#{vIuk@uP zn)n0!QO0|>1Y$zsKFs|(_uMmg_V=G3zW{7NR&Wuw%D7!Y0k;AyvRw+W%=S)zyKL_T zSYdm=j7Ax&0;OjrHU7E4L}PVNpxCyN7N~Vhs&|G-SG)JB8&jsf5%*%3ME%p72q~`f|!_=EZ@0rYywijt?z4FGUByGK8T~B5MXVTujQ;Gg+ z-Dj5S^`V#Q6e?e8m9pTm*jI+{Tsylkr11;M&8Q4^(eyfU0s0pm_ zYW{x>+71C*$q}ul74}BLs?fGb63t*>I8{nEon zk2jt?t)j)z)pOrPV480uW0m&gn{Ho+p6D~}$Mf2;%Ca3=743EamYQkD5tdM;|B=4}1n+{*X^JFSL3VQO7~*?gzD#E+PgYPTzd8os z3T7xG8MsCy+}tNyAiMk%g^$OW=rrra5hk1U(g@{dJs9CavtAits`-sj1u*jhaf74; rB!Xqk5Yqxx7HJkwV{T$RnHErO7IQRpp0ccJfouWS^Yg}O_9pNbDQeP5 literal 0 HcmV?d00001 diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/classes/com/config/MybatisConfig.class" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/classes/com/config/MybatisConfig.class" new file mode 100644 index 0000000000000000000000000000000000000000..598d31bd717ba274ee178429758f15b5e0ef29be GIT binary patch literal 889 zcmb7?O>Yx15Qbmpvn*-S7FwE?kCszfN`2v0ghYdS+JHnL65`}+-Qcoo2d`6_e+3sR zfy58sM|qyu4An=2VZRd}ixY9msm`AWC;Db$6S=n)8$04zLE-t> zDm~);Sqy?lhZl_uE3<(N+y8@XKc8r)GC5GWBBhVDHjV@tO+xPnP%+by6`6c*>{~C~ z$y3M0#i!g$^y3wp4pg|oKW=8%i~l*=-^AQWD~+3uCGVPSY_!yla5HuMc4|+I$I|wb zaCY@Xq!U_PM7!C|LZyK^<`_Evdch5BV3T3>vh6Y~cojSqw4!IjW0^RH`CPhR>ttwO zw&wvhQKkRVKP50f8`&!qaq^6Ob^8qLV<<;tYa!XdReEm}ACRA?h@puVL45N|@@4X^ zFDSh_L%Fwe?-MFJA1GCV$25yFowh*DivhQBo-1(FOtnSA&e2p&EK%n*>huF#51i#- TS3=fTZ&18S)%I(!9BV%S32)|m literal 0 HcmV?d00001 diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/classes/com/config/SpringConfig.class" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/classes/com/config/SpringConfig.class" new file mode 100644 index 0000000000000000000000000000000000000000..5ec0607c5f56a4a60e8b4a2def3aded7a950678b GIT binary patch literal 591 zcmb7B%SuBr5IyNr+iD*^s_wc|7tKc8D1sCOr7BqI##L^b)@W~1a&xPGmMg)9AK*uc zbFZazBWMCMIWswDCX>&v_YVLE*eW55jUqOSXfhOzwbA~BA-lWRXUKKzKrvLi+Ni5I z43xVS!I&bAu9afk7fvU57R>p39WiWor46~XW~fKJH*wmGIw?3}DD`aYq&m}yNPRKc zeh^bZgY9Be5p2{tcfgptS%1 literal 0 HcmV?d00001 diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/classes/com/config/SpringMvcConfig.class" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/classes/com/config/SpringMvcConfig.class" new file mode 100644 index 0000000000000000000000000000000000000000..42c04c91aba8d4b7575ae93f082bd26cc41f8c08 GIT binary patch literal 1284 zcmb_c+invv5IxRq!?H9bEtiHuDdm!+(0xI?1RTok%Ic-@pxvAXU>fM{l}MY0Pf?Si#)D6xR%F?i|bg;cZ_b}7+wmRIrk>V3xH!u&Z>#o0uBhL}_M7I%uT~wDJycL- zV7`NO4|napbnXR(gD*wUn z^lQg6uytB>B!D!($7-=p+CHlot8nP6U^qknMv5dgnO2W9pCluht$qgkn3&JenoABn z%+cN(I-r1g(iqO8NUIHQB1>?2SxS3gG5IY6KLN+leo6oU literal 0 HcmV?d00001 diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/classes/com/config/WebConfig.class" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/classes/com/config/WebConfig.class" new file mode 100644 index 0000000000000000000000000000000000000000..1ac063d11c651c156745d862db8ae380201946db GIT binary patch literal 830 zcmaKqO;6k~5Qbl~VY7tgD_uVO$qhK*3%4R9v{j`_3x@_#Rqe$|O>mpFBgeZ){Z;L$ zQl<6>^hY5k$rhGf+8pfhc;=aR#`$yo^EZG4YzJsz)5n&N$3C9;c-q1=#PoS$^o2_K zI~jK?>m@@cmF}%Eu6A@YQ52HmJ3G4{dY{Em@J#5GSAL3~i&UzG8(1p0{y@m#-VsHu z6El)_n8`_Ocz1Im@?7bZYOUS}Mb46+FhOJnHj%GY+1%o-=>1Yw8*>O~2on;i_E?`$ zUXtq07`CQvPKL?f%jG*zU7vw*8pBx5tpJ9P#-_Ze=oeP><(08t_?3)#QFqOYL7p4y z_;Fk~D-w6CwQ<5Jqw9jNRFMmpTuM8d(;IqWB{KC@T5Q9ozoGm*(8v+cI!`A~JEMJe z?+4g-GG@@GwOKo{Kz4g%FJg&K9+t5}QDyQ$1p@-_7iQi!!bbFsyyJw{7$HDS2&q%Kh$%ST0O_3U-TS*lUncWZeB<>HJ$@AJF_$Qd7e9W?&i;be)z0-$Y`3kIw45_rDtQ5k z);ltqxvy@i>9V7j(iz=$xGp?z=9%OEjBaR4<&CUn-BOtbS7*$eT3S;rU5@?9uv65D zbj+VmNqU=+QXlDUyJ*V8vNL$es%wSa==b62&Zqr8YOGb6f2OP`?Q~_(K`adly2fWk9!IISCp^m6g7)4rK=2khgePZfcvs>wsX}{bL*6d zYe=+c*Ky-H)wm|J;O!`?cG2@R5=U`FmRA-QuQ3ZL6ic(qC0cY>BW~O=J#P>=STU=5 z#}G)Ynq@1eUDu^K_IaAD8Qz2}ua#j3+1Cp7Qrk||1bcn(R#$DcdlE}mE+N-I!8v2!~@RD>#Bd1+U|c7`7B_r)9h^aHu8&kMFs%Udl@m3^h_ZvPTdz3ckcc*?h&b996J}5BZg=!Fj6U z_q3(H1$t`B7Ys)$$hdJ@v#oI`4Q3(Oa>INf<-_ldX3*-!gRHJj;d@Hs+3s0ixfw0j z;~0N&^z#>sKuDep`vH!k>|bHu$)4wg4jgrV)sPPMiPZNH&k+)M%25cfvXwhPq#?G7 zw+gQj9XQVa5KdHahdCDV;C<99d>i6iQlgGMM@Og$cF=|G_m=sv+<=o9A(R(j)D6(Z z@i6~WA4AxDFDR;0exNx&P?sC%M}(gv(j4n}U97HZtS*eZu_QT_7!z)cG~VP~OfvJ9 zTiI!xX&o>c!V|8l=WL{{fRn^;5s;Uq1(mVpXcKkOlGXB(IFAdAP&xaH%&}V5CATcz z#uicH%~2-XiZb0Ch1Z?rNU^1vj$j{2J;T25_)yPT(#7|57V)dN!ZlKbZ?hND3z~qa zuSUW4{3p;nuKGZi*h`^CQ)53s1gGR_G+HG#>R+n8$H%%|)l#GD^XeTzu=$=Gj5 ze1k~Gld)fsSUi>5MbaJeL0LM*=2Ce44in2U0x$_xKb>hFE=w#^QgWD~83t(I3MS|KbAmm4v15 z`juQHsAMN1OK8-%my1VE<-E9*8OU7fA%*mAAM$JVVL}ddPfdqsTnYxer-~#X-aYmh zvGHAW-JKZ>E2yXb3_UcH6~{WR;D2;n0lhH%@x SmHo`+4#)Hy-v>Uyr@+4eYBov$ literal 0 HcmV?d00001 diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/classes/com/entity/School.class" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/classes/com/entity/School.class" new file mode 100644 index 0000000000000000000000000000000000000000..2e2c461f1f4ef60bb2eb46803bfb09b86bb6cbec GIT binary patch literal 3014 zcma)8-*XdH6#h2ZO}5DvMkDSJ%#=FOr#sKd@kx2N!&~!gC!GR%6?0huS|Sx;mnoz``Gxf$SlRl9k^ZZ$*?jk;fN z5O()m)mxo*T)*KzoK}du{J^z!T2`Hk`=GJb;E&F@uIJl+!*ltY{9MypUH0xxUvylj zW&2J|;_XDFlG;-oACy+E%-9x9($%t)Mx7X^b4~(nVD)Z+xB-lUeO`ko} z7hE>fIw4r0A-u};J=KduIN5L;{wWRRVr47oJF!S%*rZ%ji{5&x>Rf0@W2RNZ9g+68 zP{62#0~oXLiY%{UOvCV&?zC_k?^<{b2Q3saZsC}yC6Oj%IfH{5_C+7m+4V-V=Cmwa z!YAwzb#GDCuTq<}P=h1OH*B=YgWbB$(z&gNOwp8Wn*y$A(0K7hjMKS$vFaJJXWzf? zxP13hgF1E#dtsz}QDbcU|2@Vbj-vgXVme~N9Hp3$7wqIO*hwMxEHt5u=ZC0GQ`5K` zrC*>u3EW=inh1<(yg}Jg4mgZAsl64RzRg_|$_D_&p7Jn;E|9e?5GytSC>{mMYzxGy z4*=4mK-q19CNUKPmAS_x?b3k_Xg^1CO9n`Ll}AXD5GYm9B6J-g--`Dx=EMeKJH?cW zMls(Rj2Yi4rgTRX^XOnqeW#exX;Dl*OqIKKf%_0yd^Az|35Nb;;!hZlV8owH`~hQr zvb2drpi)Rq^8b%=M#Ws9W|sA-zmP8I&oTTM)>J{?#8BHkRW|67Dklnt_#~bq{}`Eq zQAqSSrOSevE}Mm)c6tqW_XWzj^GEp&&LtNQ8e%Y zZE>zuoS>xRIxgTtN(PoVtICuTc*wUmLn(>x`ASbxGBL|LCy_~-{~(*hDeDFHCh-yf znc55NSK?5w*wmh1%g1R-zdW=`s} zW4W2S6z9%tP!&;G6EipQ7|E$kSb;rN*5#m}hbN{~N*$%kMsUO;1wS$iMsPGXnDM+0?~r&&(seScX(SVx_LA;h zJtl?`7;T5PkKS(z-4Z=+UC*eM&JjlWRZxuLE_WHcr+-7{<}+mTyEc&%Qa3T2&nuY? znal51a!TYqN=}PB!etYCqk~P=SIz9xA!Yqly@W~_LzBC~7)DFaurC;HrAbbs($ogx zrGmbJEf3xdhTU=Xt4{ZfhQp3X!AD1$Z&W_pWLP8_2YQ4FetE+vx}P9M5uGqY+s^6B Jyds9V{{S=T^Hcx; literal 0 HcmV?d00001 diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/classes/com/mapper/SchoolMapper.class" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/classes/com/mapper/SchoolMapper.class" new file mode 100644 index 0000000000000000000000000000000000000000..38ad082538f7e13fc5190cf32b3b50a5298e8609 GIT binary patch literal 1359 zcma)6+iuf95FM8^p(T{I&>PpKw8TLbMu-;_iWCG$mcm6??Mt6F_L6MzCGxI|DwKD= zi3dJ_k3x)hZO2iK+=s~8IdkTmnaS>-zrTJ1zzf)I0cpWQ16Bp|nJfFg@3`YA@`VBG zW_NH(�A1?pp&cWY2&lhmS%klb9LMxsdQ`;6{PPLdoU1r3>|5BWveNg0X-dbHRr` z>xW?^spL_JGLHvQJhJG7x?^VXA%=xTX9U;C**4!1w<&nh;Qq- zmVI-szaMFUls!{-;?r?}xUX z#-{rnbiY~U-u4hM?QX?b4R~IwXnW+4Jj$eOZ<@+@I8Mpthm^`RP{yv`##=?lLeF%e z@($*@tn6tqiWU;>I#Y~9&_<0h$&ALr2J5dt5>^=AKa;)ive4vvFi=U=9zP>4)j7@E&7d}wb?80jZUljFr zs2lfbc#3aJ(*Oe&@Yw-qHVn7|4LmL4X#twh!tV;=SMj%W0)~KP%(({bBIkNV&I;z- xfK}vNeRWrm%FvY2fiee^Uw`Zyey(r*Rm|)j=5L= zp#3#{(lvdaGfcwyv}0pxUU{$xK|Dq#4dkeq?Q)HUVx3bRv5Uo73adf{xW^VCc~ufxgGE1&``&s(QBe bvGZLIs6WImKsdsl#eE!D92+F&p;ZQ-mMWF9 literal 0 HcmV?d00001 diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/classes/com/service/impl/SchoolServiceImpl.class" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/classes/com/service/impl/SchoolServiceImpl.class" new file mode 100644 index 0000000000000000000000000000000000000000..6f2de710e6ca8c6a8b29c036890c6196c63cd5d5 GIT binary patch literal 2896 zcma)8ZF3V<6n<{Hd1<<(ZJ>qPY6YsK31wAKDJf`M0i$U_f>rR1ZL%~=lij-6!1Q1E z*&iTZ_<%E72Ay&Ai_Z9)RDABwPF z17&G$O7pQa>(YE8&8KOM<5m*4(+vGgn$P9T7t(y0#8+t?!mSkUNN-BBkwQiKY7$lw zcLnrjrRKWzRdajW@&qPJ6}MqDf+wRKSt@YtM$7T-hP7@t?Txy%*{?( z%Vg(D_ssjI(emxOQL>vp)_F&oGbWFeH5$;si%NGL>i{$;CaC_krcO6ritF)JQ zlwTuxzBj7~)JX+X{ul$Ntfr)H!t_LT9l*&iO zh$7>vY>jWV6O@Y@0l2Q)4omB+bqU)8RK_I~tia(O0fcF7SIxcGFnZB;Z2ywLKz43j zU@DYd(YfD4c$re&ZEUz(##PI)JfcWRjci(BQhU0dVpIDod!*SJKdq?rItVhSg!OgH ztW#g((e_;1xJMxu=5DikuGD3q;Xnf6l0e+`Yx1CtNqx?$y6h#H3D!C$hs(ZM*u`w)NvjQIu_;VD&7}3dQfgfZ@FdHtFqWLT@13( z$`halTbg_9+?28^cGhRL`0kr(?QZ&Qb-Wn#px&cB}ve~KtD{+`g85Y;QKkc+965UZRyd zK&%;BT}9z#;sYo6i{T{a*u)U&9r_sOha^(|DF$L)P*VZagbE9xxB;)?6rmJomLrOS zR;JemI`tG$kUjMrFp9Jn80jXu!RGsby^c46%qaFg zV99QVuW>#3)A zc?x3G{tT8lH$b^gVwociE5sT{BANONhmv^jZ%ia{nSUvPC=*RyT_KYNg39W|C528w zs$5iY_WH$8W*~EkLJE2Pg^=ISYlNH`Ei7smgAz=S7HTX&YBc{4$@yIj-?=#5n|Mxb z4T%r%swf6WDbDNT1CC;l|5tt(5SMgMBKC~U(nwbbQiTxDSd)Y2nCQ%uH*1*b6?#FC v>7Q}v))S0mMt3nL6W&E8bC}~@9O;x^RKwF@n$b$cutvlfuI=A@*MWZlj5$Ij literal 0 HcmV?d00001 diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" new file mode 100644 index 0000000..5bf170b --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst" @@ -0,0 +1,10 @@ +com\config\MybatisConfig.class +com\config\WebConfig.class +com\service\SchoolService.class +com\config\JdbcConfig.class +com\service\impl\SchoolServiceImpl.class +com\config\SpringConfig.class +com\controller\SchoolController.class +com\config\SpringMvcConfig.class +com\mapper\SchoolMapper.class +com\entity\School.class diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" new file mode 100644 index 0000000..5072927 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst" @@ -0,0 +1,10 @@ +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.07\20250107 综合练习(五)\MySchool\src\main\java\com\config\JdbcConfig.java +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.07\20250107 综合练习(五)\MySchool\src\main\java\com\config\MybatisConfig.java +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.07\20250107 综合练习(五)\MySchool\src\main\java\com\config\SpringConfig.java +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.07\20250107 综合练习(五)\MySchool\src\main\java\com\config\SpringMvcConfig.java +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.07\20250107 综合练习(五)\MySchool\src\main\java\com\config\WebConfig.java +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.07\20250107 综合练习(五)\MySchool\src\main\java\com\controller\SchoolController.java +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.07\20250107 综合练习(五)\MySchool\src\main\java\com\entity\School.java +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.07\20250107 综合练习(五)\MySchool\src\main\java\com\mapper\SchoolMapper.java +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.07\20250107 综合练习(五)\MySchool\src\main\java\com\service\impl\SchoolServiceImpl.java +E:\学习专用\SSM框架基础(专用)\课后作业\2025.01.07\20250107 综合练习(五)\MySchool\src\main\java\com\service\SchoolService.java diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/tomcat/conf/logging.properties" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/tomcat/conf/logging.properties" new file mode 100644 index 0000000..76c9512 --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/tomcat/conf/logging.properties" @@ -0,0 +1,64 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler, 3manager.org.apache.juli.FileHandler, 4host-manager.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler + +.handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler + +############################################################ +# Handler specific properties. +# Describes specific configuration info for Handlers. +############################################################ + +1catalina.org.apache.juli.FileHandler.level = FINE +1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs +1catalina.org.apache.juli.FileHandler.prefix = catalina. + +2localhost.org.apache.juli.FileHandler.level = FINE +2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs +2localhost.org.apache.juli.FileHandler.prefix = localhost. + +3manager.org.apache.juli.FileHandler.level = FINE +3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs +3manager.org.apache.juli.FileHandler.prefix = manager. + +4host-manager.org.apache.juli.FileHandler.level = FINE +4host-manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs +4host-manager.org.apache.juli.FileHandler.prefix = host-manager. + +java.util.logging.ConsoleHandler.level = FINE +java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter + + +############################################################ +# Facility specific properties. +# Provides extra control for each logger. +############################################################ + +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.FileHandler + +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.FileHandler + +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO +org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.FileHandler + +# For example, set the org.apache.catalina.util.LifecycleBase logger to log +# each component that extends LifecycleBase changing state: +#org.apache.catalina.util.LifecycleBase.level = FINE + +# To see debug messages in TldLocationsCache, uncomment the following line: +#org.apache.jasper.compiler.TldLocationsCache.level = FINE diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/tomcat/conf/tomcat-users.xml" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/tomcat/conf/tomcat-users.xml" new file mode 100644 index 0000000..7114f5d --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/tomcat/conf/tomcat-users.xml" @@ -0,0 +1,26 @@ + + + + + diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/tomcat/conf/web.xml" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/tomcat/conf/web.xml" new file mode 100644 index 0000000..cc8383c --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/tomcat/conf/web.xml" @@ -0,0 +1,4283 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + default + org.apache.catalina.servlets.DefaultServlet + + debug + 0 + + + listings + false + + 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + jsp + org.apache.jasper.servlet.JspServlet + + fork + false + + + xpoweredBy + false + + 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + default + / + + + + + jsp + *.jsp + *.jspx + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 30 + + + + + + + + + + + + 123 + application/vnd.lotus-1-2-3 + + + 3dml + text/vnd.in3d.3dml + + + 3g2 + video/3gpp2 + + + 3gp + video/3gpp + + + 7z + application/x-7z-compressed + + + aab + application/x-authorware-bin + + + aac + audio/x-aac + + + aam + application/x-authorware-map + + + aas + application/x-authorware-seg + + + abs + audio/x-mpeg + + + abw + application/x-abiword + + + ac + application/pkix-attr-cert + + + acc + application/vnd.americandynamics.acc + + + ace + application/x-ace-compressed + + + acu + application/vnd.acucobol + + + acutc + application/vnd.acucorp + + + adp + audio/adpcm + + + aep + application/vnd.audiograph + + + afm + application/x-font-type1 + + + afp + application/vnd.ibm.modcap + + + ahead + application/vnd.ahead.space + + + ai + application/postscript + + + aif + audio/x-aiff + + + aifc + audio/x-aiff + + + aiff + audio/x-aiff + + + aim + application/x-aim + + + air + application/vnd.adobe.air-application-installer-package+zip + + + ait + application/vnd.dvb.ait + + + ami + application/vnd.amiga.ami + + + anx + application/annodex + + + apk + application/vnd.android.package-archive + + + application + application/x-ms-application + + + apr + application/vnd.lotus-approach + + + art + image/x-jg + + + asc + application/pgp-signature + + + asf + video/x-ms-asf + + + asm + text/x-asm + + + aso + application/vnd.accpac.simply.aso + + + asx + video/x-ms-asf + + + atc + application/vnd.acucorp + + + atom + application/atom+xml + + + atomcat + application/atomcat+xml + + + atomsvc + application/atomsvc+xml + + + atx + application/vnd.antix.game-component + + + au + audio/basic + + + avi + video/x-msvideo + + + avx + video/x-rad-screenplay + + + aw + application/applixware + + + axa + audio/annodex + + + axv + video/annodex + + + azf + application/vnd.airzip.filesecure.azf + + + azs + application/vnd.airzip.filesecure.azs + + + azw + application/vnd.amazon.ebook + + + bat + application/x-msdownload + + + bcpio + application/x-bcpio + + + bdf + application/x-font-bdf + + + bdm + application/vnd.syncml.dm+wbxml + + + bed + application/vnd.realvnc.bed + + + bh2 + application/vnd.fujitsu.oasysprs + + + bin + application/octet-stream + + + bmi + application/vnd.bmi + + + bmp + image/bmp + + + body + text/html + + + book + application/vnd.framemaker + + + box + application/vnd.previewsystems.box + + + boz + application/x-bzip2 + + + bpk + application/octet-stream + + + btif + image/prs.btif + + + bz + application/x-bzip + + + bz2 + application/x-bzip2 + + + c + text/x-c + + + c11amc + application/vnd.cluetrust.cartomobile-config + + + c11amz + application/vnd.cluetrust.cartomobile-config-pkg + + + c4d + application/vnd.clonk.c4group + + + c4f + application/vnd.clonk.c4group + + + c4g + application/vnd.clonk.c4group + + + c4p + application/vnd.clonk.c4group + + + c4u + application/vnd.clonk.c4group + + + cab + application/vnd.ms-cab-compressed + + + cap + application/vnd.tcpdump.pcap + + + car + application/vnd.curl.car + + + cat + application/vnd.ms-pki.seccat + + + cc + text/x-c + + + cct + application/x-director + + + ccxml + application/ccxml+xml + + + cdbcmsg + application/vnd.contact.cmsg + + + cdf + application/x-cdf + + + cdkey + application/vnd.mediastation.cdkey + + + cdmia + application/cdmi-capability + + + cdmic + application/cdmi-container + + + cdmid + application/cdmi-domain + + + cdmio + application/cdmi-object + + + cdmiq + application/cdmi-queue + + + cdx + chemical/x-cdx + + + cdxml + application/vnd.chemdraw+xml + + + cdy + application/vnd.cinderella + + + cer + application/pkix-cert + + + cgm + image/cgm + + + chat + application/x-chat + + + chm + application/vnd.ms-htmlhelp + + + chrt + application/vnd.kde.kchart + + + cif + chemical/x-cif + + + cii + application/vnd.anser-web-certificate-issue-initiation + + + cil + application/vnd.ms-artgalry + + + cla + application/vnd.claymore + + + class + application/java + + + clkk + application/vnd.crick.clicker.keyboard + + + clkp + application/vnd.crick.clicker.palette + + + clkt + application/vnd.crick.clicker.template + + + clkw + application/vnd.crick.clicker.wordbank + + + clkx + application/vnd.crick.clicker + + + clp + application/x-msclip + + + cmc + application/vnd.cosmocaller + + + cmdf + chemical/x-cmdf + + + cml + chemical/x-cml + + + cmp + application/vnd.yellowriver-custom-menu + + + cmx + image/x-cmx + + + cod + application/vnd.rim.cod + + + com + application/x-msdownload + + + conf + text/plain + + + cpio + application/x-cpio + + + cpp + text/x-c + + + cpt + application/mac-compactpro + + + crd + application/x-mscardfile + + + crl + application/pkix-crl + + + crt + application/x-x509-ca-cert + + + cryptonote + application/vnd.rig.cryptonote + + + csh + application/x-csh + + + csml + chemical/x-csml + + + csp + application/vnd.commonspace + + + css + text/css + + + cst + application/x-director + + + csv + text/csv + + + cu + application/cu-seeme + + + curl + text/vnd.curl + + + cww + application/prs.cww + + + cxt + application/x-director + + + cxx + text/x-c + + + dae + model/vnd.collada+xml + + + daf + application/vnd.mobius.daf + + + dataless + application/vnd.fdsn.seed + + + davmount + application/davmount+xml + + + dcr + application/x-director + + + dcurl + text/vnd.curl.dcurl + + + dd2 + application/vnd.oma.dd2+xml + + + ddd + application/vnd.fujixerox.ddd + + + deb + application/x-debian-package + + + def + text/plain + + + deploy + application/octet-stream + + + der + application/x-x509-ca-cert + + + dfac + application/vnd.dreamfactory + + + dib + image/bmp + + + dic + text/x-c + + + dir + application/x-director + + + dis + application/vnd.mobius.dis + + + dist + application/octet-stream + + + distz + application/octet-stream + + + djv + image/vnd.djvu + + + djvu + image/vnd.djvu + + + dll + application/x-msdownload + + + dmg + application/octet-stream + + + dmp + application/vnd.tcpdump.pcap + + + dms + application/octet-stream + + + dna + application/vnd.dna + + + doc + application/msword + + + docm + application/vnd.ms-word.document.macroenabled.12 + + + docx + application/vnd.openxmlformats-officedocument.wordprocessingml.document + + + dot + application/msword + + + dotm + application/vnd.ms-word.template.macroenabled.12 + + + dotx + application/vnd.openxmlformats-officedocument.wordprocessingml.template + + + dp + application/vnd.osgi.dp + + + dpg + application/vnd.dpgraph + + + dra + audio/vnd.dra + + + dsc + text/prs.lines.tag + + + dssc + application/dssc+der + + + dtb + application/x-dtbook+xml + + + dtd + application/xml-dtd + + + dts + audio/vnd.dts + + + dtshd + audio/vnd.dts.hd + + + dump + application/octet-stream + + + dv + video/x-dv + + + dvb + video/vnd.dvb.file + + + dvi + application/x-dvi + + + dwf + model/vnd.dwf + + + dwg + image/vnd.dwg + + + dxf + image/vnd.dxf + + + dxp + application/vnd.spotfire.dxp + + + dxr + application/x-director + + + ecelp4800 + audio/vnd.nuera.ecelp4800 + + + ecelp7470 + audio/vnd.nuera.ecelp7470 + + + ecelp9600 + audio/vnd.nuera.ecelp9600 + + + ecma + application/ecmascript + + + edm + application/vnd.novadigm.edm + + + edx + application/vnd.novadigm.edx + + + efif + application/vnd.picsel + + + ei6 + application/vnd.pg.osasli + + + elc + application/octet-stream + + + eml + message/rfc822 + + + emma + application/emma+xml + + + eol + audio/vnd.digital-winds + + + eot + application/vnd.ms-fontobject + + + eps + application/postscript + + + epub + application/epub+zip + + + es3 + application/vnd.eszigno3+xml + + + esf + application/vnd.epson.esf + + + et3 + application/vnd.eszigno3+xml + + + etx + text/x-setext + + + exe + application/octet-stream + + + exi + application/exi + + + ext + application/vnd.novadigm.ext + + + ez + application/andrew-inset + + + ez2 + application/vnd.ezpix-album + + + ez3 + application/vnd.ezpix-package + + + f + text/x-fortran + + + f4v + video/x-f4v + + + f77 + text/x-fortran + + + f90 + text/x-fortran + + + fbs + image/vnd.fastbidsheet + + + fcs + application/vnd.isac.fcs + + + fdf + application/vnd.fdf + + + fe_launch + application/vnd.denovo.fcselayout-link + + + fg5 + application/vnd.fujitsu.oasysgp + + + fgd + application/x-director + + + fh + image/x-freehand + + + fh4 + image/x-freehand + + + fh5 + image/x-freehand + + + fh7 + image/x-freehand + + + fhc + image/x-freehand + + + fig + application/x-xfig + + + flac + audio/flac + + + fli + video/x-fli + + + flo + application/vnd.micrografx.flo + + + flv + video/x-flv + + + flw + application/vnd.kde.kivio + + + flx + text/vnd.fmi.flexstor + + + fly + text/vnd.fly + + + fm + application/vnd.framemaker + + + fnc + application/vnd.frogans.fnc + + + for + text/x-fortran + + + fpx + image/vnd.fpx + + + frame + application/vnd.framemaker + + + fsc + application/vnd.fsc.weblaunch + + + fst + image/vnd.fst + + + ftc + application/vnd.fluxtime.clip + + + fti + application/vnd.anser-web-funds-transfer-initiation + + + fvt + video/vnd.fvt + + + fxp + application/vnd.adobe.fxp + + + fxpl + application/vnd.adobe.fxp + + + fzs + application/vnd.fuzzysheet + + + g2w + application/vnd.geoplan + + + g3 + image/g3fax + + + g3w + application/vnd.geospace + + + gac + application/vnd.groove-account + + + gbr + application/rpki-ghostbusters + + + gdl + model/vnd.gdl + + + geo + application/vnd.dynageo + + + gex + application/vnd.geometry-explorer + + + ggb + application/vnd.geogebra.file + + + ggt + application/vnd.geogebra.tool + + + ghf + application/vnd.groove-help + + + gif + image/gif + + + gim + application/vnd.groove-identity-message + + + gmx + application/vnd.gmx + + + gnumeric + application/x-gnumeric + + + gph + application/vnd.flographit + + + gqf + application/vnd.grafeq + + + gqs + application/vnd.grafeq + + + gram + application/srgs + + + gre + application/vnd.geometry-explorer + + + grv + application/vnd.groove-injector + + + grxml + application/srgs+xml + + + gsf + application/x-font-ghostscript + + + gtar + application/x-gtar + + + gtm + application/vnd.groove-tool-message + + + gtw + model/vnd.gtw + + + gv + text/vnd.graphviz + + + gxt + application/vnd.geonext + + + gz + application/x-gzip + + + h + text/x-c + + + h261 + video/h261 + + + h263 + video/h263 + + + h264 + video/h264 + + + hal + application/vnd.hal+xml + + + hbci + application/vnd.hbci + + + hdf + application/x-hdf + + + hh + text/x-c + + + hlp + application/winhlp + + + hpgl + application/vnd.hp-hpgl + + + hpid + application/vnd.hp-hpid + + + hps + application/vnd.hp-hps + + + hqx + application/mac-binhex40 + + + htc + text/x-component + + + htke + application/vnd.kenameaapp + + + htm + text/html + + + html + text/html + + + hvd + application/vnd.yamaha.hv-dic + + + hvp + application/vnd.yamaha.hv-voice + + + hvs + application/vnd.yamaha.hv-script + + + i2g + application/vnd.intergeo + + + icc + application/vnd.iccprofile + + + ice + x-conference/x-cooltalk + + + icm + application/vnd.iccprofile + + + ico + image/x-icon + + + ics + text/calendar + + + ief + image/ief + + + ifb + text/calendar + + + ifm + application/vnd.shana.informed.formdata + + + iges + model/iges + + + igl + application/vnd.igloader + + + igm + application/vnd.insors.igm + + + igs + model/iges + + + igx + application/vnd.micrografx.igx + + + iif + application/vnd.shana.informed.interchange + + + imp + application/vnd.accpac.simply.imp + + + ims + application/vnd.ms-ims + + + in + text/plain + + + ink + application/inkml+xml + + + inkml + application/inkml+xml + + + iota + application/vnd.astraea-software.iota + + + ipfix + application/ipfix + + + ipk + application/vnd.shana.informed.package + + + irm + application/vnd.ibm.rights-management + + + irp + application/vnd.irepository.package+xml + + + iso + application/octet-stream + + + itp + application/vnd.shana.informed.formtemplate + + + ivp + application/vnd.immervision-ivp + + + ivu + application/vnd.immervision-ivu + + + jad + text/vnd.sun.j2me.app-descriptor + + + jam + application/vnd.jam + + + jar + application/java-archive + + + java + text/x-java-source + + + jisp + application/vnd.jisp + + + jlt + application/vnd.hp-jlyt + + + jnlp + application/x-java-jnlp-file + + + joda + application/vnd.joost.joda-archive + + + jpe + image/jpeg + + + jpeg + image/jpeg + + + jpg + image/jpeg + + + jpgm + video/jpm + + + jpgv + video/jpeg + + + jpm + video/jpm + + + js + application/javascript + + + jsf + text/plain + + + json + application/json + + + jspf + text/plain + + + kar + audio/midi + + + karbon + application/vnd.kde.karbon + + + kfo + application/vnd.kde.kformula + + + kia + application/vnd.kidspiration + + + kml + application/vnd.google-earth.kml+xml + + + kmz + application/vnd.google-earth.kmz + + + kne + application/vnd.kinar + + + knp + application/vnd.kinar + + + kon + application/vnd.kde.kontour + + + kpr + application/vnd.kde.kpresenter + + + kpt + application/vnd.kde.kpresenter + + + ksp + application/vnd.kde.kspread + + + ktr + application/vnd.kahootz + + + ktx + image/ktx + + + ktz + application/vnd.kahootz + + + kwd + application/vnd.kde.kword + + + kwt + application/vnd.kde.kword + + + lasxml + application/vnd.las.las+xml + + + latex + application/x-latex + + + lbd + application/vnd.llamagraphics.life-balance.desktop + + + lbe + application/vnd.llamagraphics.life-balance.exchange+xml + + + les + application/vnd.hhe.lesson-player + + + lha + application/octet-stream + + + link66 + application/vnd.route66.link66+xml + + + list + text/plain + + + list3820 + application/vnd.ibm.modcap + + + listafp + application/vnd.ibm.modcap + + + log + text/plain + + + lostxml + application/lost+xml + + + lrf + application/octet-stream + + + lrm + application/vnd.ms-lrm + + + ltf + application/vnd.frogans.ltf + + + lvp + audio/vnd.lucent.voice + + + lwp + application/vnd.lotus-wordpro + + + lzh + application/octet-stream + + + m13 + application/x-msmediaview + + + m14 + application/x-msmediaview + + + m1v + video/mpeg + + + m21 + application/mp21 + + + m2a + audio/mpeg + + + m2v + video/mpeg + + + m3a + audio/mpeg + + + m3u + audio/x-mpegurl + + + m3u8 + application/vnd.apple.mpegurl + + + m4a + audio/mp4 + + + m4b + audio/mp4 + + + m4r + audio/mp4 + + + m4u + video/vnd.mpegurl + + + m4v + video/mp4 + + + ma + application/mathematica + + + mac + image/x-macpaint + + + mads + application/mads+xml + + + mag + application/vnd.ecowin.chart + + + maker + application/vnd.framemaker + + + man + text/troff + + + mathml + application/mathml+xml + + + mb + application/mathematica + + + mbk + application/vnd.mobius.mbk + + + mbox + application/mbox + + + mc1 + application/vnd.medcalcdata + + + mcd + application/vnd.mcd + + + mcurl + text/vnd.curl.mcurl + + + mdb + application/x-msaccess + + + mdi + image/vnd.ms-modi + + + me + text/troff + + + mesh + model/mesh + + + meta4 + application/metalink4+xml + + + mets + application/mets+xml + + + mfm + application/vnd.mfmp + + + mft + application/rpki-manifest + + + mgp + application/vnd.osgeo.mapguide.package + + + mgz + application/vnd.proteus.magazine + + + mid + audio/midi + + + midi + audio/midi + + + mif + application/x-mif + + + mime + message/rfc822 + + + mj2 + video/mj2 + + + mjp2 + video/mj2 + + + mlp + application/vnd.dolby.mlp + + + mmd + application/vnd.chipnuts.karaoke-mmd + + + mmf + application/vnd.smaf + + + mmr + image/vnd.fujixerox.edmics-mmr + + + mny + application/x-msmoney + + + mobi + application/x-mobipocket-ebook + + + mods + application/mods+xml + + + mov + video/quicktime + + + movie + video/x-sgi-movie + + + mp1 + audio/mpeg + + + mp2 + audio/mpeg + + + mp21 + application/mp21 + + + mp2a + audio/mpeg + + + mp3 + audio/mpeg + + + mp4 + video/mp4 + + + mp4a + audio/mp4 + + + mp4s + application/mp4 + + + mp4v + video/mp4 + + + mpa + audio/mpeg + + + mpc + application/vnd.mophun.certificate + + + mpe + video/mpeg + + + mpeg + video/mpeg + + + mpega + audio/x-mpeg + + + mpg + video/mpeg + + + mpg4 + video/mp4 + + + mpga + audio/mpeg + + + mpkg + application/vnd.apple.installer+xml + + + mpm + application/vnd.blueice.multipass + + + mpn + application/vnd.mophun.application + + + mpp + application/vnd.ms-project + + + mpt + application/vnd.ms-project + + + mpv2 + video/mpeg2 + + + mpy + application/vnd.ibm.minipay + + + mqy + application/vnd.mobius.mqy + + + mrc + application/marc + + + mrcx + application/marcxml+xml + + + ms + text/troff + + + mscml + application/mediaservercontrol+xml + + + mseed + application/vnd.fdsn.mseed + + + mseq + application/vnd.mseq + + + msf + application/vnd.epson.msf + + + msh + model/mesh + + + msi + application/x-msdownload + + + msl + application/vnd.mobius.msl + + + msty + application/vnd.muvee.style + + + mts + model/vnd.mts + + + mus + application/vnd.musician + + + musicxml + application/vnd.recordare.musicxml+xml + + + mvb + application/x-msmediaview + + + mwf + application/vnd.mfer + + + mxf + application/mxf + + + mxl + application/vnd.recordare.musicxml + + + mxml + application/xv+xml + + + mxs + application/vnd.triscape.mxs + + + mxu + video/vnd.mpegurl + + + n-gage + application/vnd.nokia.n-gage.symbian.install + + + n3 + text/n3 + + + nb + application/mathematica + + + nbp + application/vnd.wolfram.player + + + nc + application/x-netcdf + + + ncx + application/x-dtbncx+xml + + + ngdat + application/vnd.nokia.n-gage.data + + + nlu + application/vnd.neurolanguage.nlu + + + nml + application/vnd.enliven + + + nnd + application/vnd.noblenet-directory + + + nns + application/vnd.noblenet-sealer + + + nnw + application/vnd.noblenet-web + + + npx + image/vnd.net-fpx + + + nsf + application/vnd.lotus-notes + + + oa2 + application/vnd.fujitsu.oasys2 + + + oa3 + application/vnd.fujitsu.oasys3 + + + oas + application/vnd.fujitsu.oasys + + + obd + application/x-msbinder + + + oda + application/oda + + + + odb + application/vnd.oasis.opendocument.database + + + + odc + application/vnd.oasis.opendocument.chart + + + + odf + application/vnd.oasis.opendocument.formula + + + odft + application/vnd.oasis.opendocument.formula-template + + + + odg + application/vnd.oasis.opendocument.graphics + + + + odi + application/vnd.oasis.opendocument.image + + + + odm + application/vnd.oasis.opendocument.text-master + + + + odp + application/vnd.oasis.opendocument.presentation + + + + ods + application/vnd.oasis.opendocument.spreadsheet + + + + odt + application/vnd.oasis.opendocument.text + + + oga + audio/ogg + + + ogg + audio/ogg + + + ogv + video/ogg + + + + ogx + application/ogg + + + onepkg + application/onenote + + + onetmp + application/onenote + + + onetoc + application/onenote + + + onetoc2 + application/onenote + + + opf + application/oebps-package+xml + + + oprc + application/vnd.palm + + + org + application/vnd.lotus-organizer + + + osf + application/vnd.yamaha.openscoreformat + + + osfpvg + application/vnd.yamaha.openscoreformat.osfpvg+xml + + + otc + application/vnd.oasis.opendocument.chart-template + + + otf + application/x-font-otf + + + + otg + application/vnd.oasis.opendocument.graphics-template + + + + oth + application/vnd.oasis.opendocument.text-web + + + oti + application/vnd.oasis.opendocument.image-template + + + + otp + application/vnd.oasis.opendocument.presentation-template + + + + ots + application/vnd.oasis.opendocument.spreadsheet-template + + + + ott + application/vnd.oasis.opendocument.text-template + + + oxps + application/oxps + + + oxt + application/vnd.openofficeorg.extension + + + p + text/x-pascal + + + p10 + application/pkcs10 + + + p12 + application/x-pkcs12 + + + p7b + application/x-pkcs7-certificates + + + p7c + application/pkcs7-mime + + + p7m + application/pkcs7-mime + + + p7r + application/x-pkcs7-certreqresp + + + p7s + application/pkcs7-signature + + + p8 + application/pkcs8 + + + pas + text/x-pascal + + + paw + application/vnd.pawaafile + + + pbd + application/vnd.powerbuilder6 + + + pbm + image/x-portable-bitmap + + + pcap + application/vnd.tcpdump.pcap + + + pcf + application/x-font-pcf + + + pcl + application/vnd.hp-pcl + + + pclxl + application/vnd.hp-pclxl + + + pct + image/pict + + + pcurl + application/vnd.curl.pcurl + + + pcx + image/x-pcx + + + pdb + application/vnd.palm + + + pdf + application/pdf + + + pfa + application/x-font-type1 + + + pfb + application/x-font-type1 + + + pfm + application/x-font-type1 + + + pfr + application/font-tdpfr + + + pfx + application/x-pkcs12 + + + pgm + image/x-portable-graymap + + + pgn + application/x-chess-pgn + + + pgp + application/pgp-encrypted + + + pic + image/pict + + + pict + image/pict + + + pkg + application/octet-stream + + + pki + application/pkixcmp + + + pkipath + application/pkix-pkipath + + + plb + application/vnd.3gpp.pic-bw-large + + + plc + application/vnd.mobius.plc + + + plf + application/vnd.pocketlearn + + + pls + audio/x-scpls + + + pml + application/vnd.ctc-posml + + + png + image/png + + + pnm + image/x-portable-anymap + + + pnt + image/x-macpaint + + + portpkg + application/vnd.macports.portpkg + + + pot + application/vnd.ms-powerpoint + + + potm + application/vnd.ms-powerpoint.template.macroenabled.12 + + + potx + application/vnd.openxmlformats-officedocument.presentationml.template + + + ppam + application/vnd.ms-powerpoint.addin.macroenabled.12 + + + ppd + application/vnd.cups-ppd + + + ppm + image/x-portable-pixmap + + + pps + application/vnd.ms-powerpoint + + + ppsm + application/vnd.ms-powerpoint.slideshow.macroenabled.12 + + + ppsx + application/vnd.openxmlformats-officedocument.presentationml.slideshow + + + ppt + application/vnd.ms-powerpoint + + + pptm + application/vnd.ms-powerpoint.presentation.macroenabled.12 + + + pptx + application/vnd.openxmlformats-officedocument.presentationml.presentation + + + pqa + application/vnd.palm + + + prc + application/x-mobipocket-ebook + + + pre + application/vnd.lotus-freelance + + + prf + application/pics-rules + + + ps + application/postscript + + + psb + application/vnd.3gpp.pic-bw-small + + + psd + image/vnd.adobe.photoshop + + + psf + application/x-font-linux-psf + + + pskcxml + application/pskc+xml + + + ptid + application/vnd.pvi.ptid1 + + + pub + application/x-mspublisher + + + pvb + application/vnd.3gpp.pic-bw-var + + + pwn + application/vnd.3m.post-it-notes + + + pya + audio/vnd.ms-playready.media.pya + + + pyv + video/vnd.ms-playready.media.pyv + + + qam + application/vnd.epson.quickanime + + + qbo + application/vnd.intu.qbo + + + qfx + application/vnd.intu.qfx + + + qps + application/vnd.publishare-delta-tree + + + qt + video/quicktime + + + qti + image/x-quicktime + + + qtif + image/x-quicktime + + + qwd + application/vnd.quark.quarkxpress + + + qwt + application/vnd.quark.quarkxpress + + + qxb + application/vnd.quark.quarkxpress + + + qxd + application/vnd.quark.quarkxpress + + + qxl + application/vnd.quark.quarkxpress + + + qxt + application/vnd.quark.quarkxpress + + + ra + audio/x-pn-realaudio + + + ram + audio/x-pn-realaudio + + + rar + application/x-rar-compressed + + + ras + image/x-cmu-raster + + + rcprofile + application/vnd.ipunplugged.rcprofile + + + rdf + application/rdf+xml + + + rdz + application/vnd.data-vision.rdz + + + rep + application/vnd.businessobjects + + + res + application/x-dtbresource+xml + + + rgb + image/x-rgb + + + rif + application/reginfo+xml + + + rip + audio/vnd.rip + + + rl + application/resource-lists+xml + + + rlc + image/vnd.fujixerox.edmics-rlc + + + rld + application/resource-lists-diff+xml + + + rm + application/vnd.rn-realmedia + + + rmi + audio/midi + + + rmp + audio/x-pn-realaudio-plugin + + + rms + application/vnd.jcp.javame.midlet-rms + + + rnc + application/relax-ng-compact-syntax + + + roa + application/rpki-roa + + + roff + text/troff + + + rp9 + application/vnd.cloanto.rp9 + + + rpss + application/vnd.nokia.radio-presets + + + rpst + application/vnd.nokia.radio-preset + + + rq + application/sparql-query + + + rs + application/rls-services+xml + + + rsd + application/rsd+xml + + + rss + application/rss+xml + + + rtf + application/rtf + + + rtx + text/richtext + + + s + text/x-asm + + + saf + application/vnd.yamaha.smaf-audio + + + sbml + application/sbml+xml + + + sc + application/vnd.ibm.secure-container + + + scd + application/x-msschedule + + + scm + application/vnd.lotus-screencam + + + scq + application/scvp-cv-request + + + scs + application/scvp-cv-response + + + scurl + text/vnd.curl.scurl + + + sda + application/vnd.stardivision.draw + + + sdc + application/vnd.stardivision.calc + + + sdd + application/vnd.stardivision.impress + + + sdkd + application/vnd.solent.sdkm+xml + + + sdkm + application/vnd.solent.sdkm+xml + + + sdp + application/sdp + + + sdw + application/vnd.stardivision.writer + + + see + application/vnd.seemail + + + seed + application/vnd.fdsn.seed + + + sema + application/vnd.sema + + + semd + application/vnd.semd + + + semf + application/vnd.semf + + + ser + application/java-serialized-object + + + setpay + application/set-payment-initiation + + + setreg + application/set-registration-initiation + + + sfd-hdstx + application/vnd.hydrostatix.sof-data + + + sfs + application/vnd.spotfire.sfs + + + sgl + application/vnd.stardivision.writer-global + + + sgm + text/sgml + + + sgml + text/sgml + + + sh + application/x-sh + + + shar + application/x-shar + + + shf + application/shf+xml + + + + sig + application/pgp-signature + + + silo + model/mesh + + + sis + application/vnd.symbian.install + + + sisx + application/vnd.symbian.install + + + sit + application/x-stuffit + + + sitx + application/x-stuffitx + + + skd + application/vnd.koan + + + skm + application/vnd.koan + + + skp + application/vnd.koan + + + skt + application/vnd.koan + + + sldm + application/vnd.ms-powerpoint.slide.macroenabled.12 + + + sldx + application/vnd.openxmlformats-officedocument.presentationml.slide + + + slt + application/vnd.epson.salt + + + sm + application/vnd.stepmania.stepchart + + + smf + application/vnd.stardivision.math + + + smi + application/smil+xml + + + smil + application/smil+xml + + + smzip + application/vnd.stepmania.package + + + snd + audio/basic + + + snf + application/x-font-snf + + + so + application/octet-stream + + + spc + application/x-pkcs7-certificates + + + spf + application/vnd.yamaha.smaf-phrase + + + spl + application/x-futuresplash + + + spot + text/vnd.in3d.spot + + + spp + application/scvp-vp-response + + + spq + application/scvp-vp-request + + + spx + audio/ogg + + + src + application/x-wais-source + + + sru + application/sru+xml + + + srx + application/sparql-results+xml + + + sse + application/vnd.kodak-descriptor + + + ssf + application/vnd.epson.ssf + + + ssml + application/ssml+xml + + + st + application/vnd.sailingtracker.track + + + stc + application/vnd.sun.xml.calc.template + + + std + application/vnd.sun.xml.draw.template + + + stf + application/vnd.wt.stf + + + sti + application/vnd.sun.xml.impress.template + + + stk + application/hyperstudio + + + stl + application/vnd.ms-pki.stl + + + str + application/vnd.pg.format + + + stw + application/vnd.sun.xml.writer.template + + + sub + text/vnd.dvb.subtitle + + + sus + application/vnd.sus-calendar + + + susp + application/vnd.sus-calendar + + + sv4cpio + application/x-sv4cpio + + + sv4crc + application/x-sv4crc + + + svc + application/vnd.dvb.service + + + svd + application/vnd.svd + + + svg + image/svg+xml + + + svgz + image/svg+xml + + + swa + application/x-director + + + swf + application/x-shockwave-flash + + + swi + application/vnd.aristanetworks.swi + + + sxc + application/vnd.sun.xml.calc + + + sxd + application/vnd.sun.xml.draw + + + sxg + application/vnd.sun.xml.writer.global + + + sxi + application/vnd.sun.xml.impress + + + sxm + application/vnd.sun.xml.math + + + sxw + application/vnd.sun.xml.writer + + + t + text/troff + + + taglet + application/vnd.mynfc + + + tao + application/vnd.tao.intent-module-archive + + + tar + application/x-tar + + + tcap + application/vnd.3gpp2.tcap + + + tcl + application/x-tcl + + + teacher + application/vnd.smart.teacher + + + tei + application/tei+xml + + + teicorpus + application/tei+xml + + + tex + application/x-tex + + + texi + application/x-texinfo + + + texinfo + application/x-texinfo + + + text + text/plain + + + tfi + application/thraud+xml + + + tfm + application/x-tex-tfm + + + thmx + application/vnd.ms-officetheme + + + tif + image/tiff + + + tiff + image/tiff + + + tmo + application/vnd.tmobile-livetv + + + torrent + application/x-bittorrent + + + tpl + application/vnd.groove-tool-template + + + tpt + application/vnd.trid.tpt + + + tr + text/troff + + + tra + application/vnd.trueapp + + + trm + application/x-msterminal + + + tsd + application/timestamped-data + + + tsv + text/tab-separated-values + + + ttc + application/x-font-ttf + + + ttf + application/x-font-ttf + + + ttl + text/turtle + + + twd + application/vnd.simtech-mindmapper + + + twds + application/vnd.simtech-mindmapper + + + txd + application/vnd.genomatix.tuxedo + + + txf + application/vnd.mobius.txf + + + txt + text/plain + + + u32 + application/x-authorware-bin + + + udeb + application/x-debian-package + + + ufd + application/vnd.ufdl + + + ufdl + application/vnd.ufdl + + + ulw + audio/basic + + + umj + application/vnd.umajin + + + unityweb + application/vnd.unity + + + uoml + application/vnd.uoml+xml + + + uri + text/uri-list + + + uris + text/uri-list + + + urls + text/uri-list + + + ustar + application/x-ustar + + + utz + application/vnd.uiq.theme + + + uu + text/x-uuencode + + + uva + audio/vnd.dece.audio + + + uvd + application/vnd.dece.data + + + uvf + application/vnd.dece.data + + + uvg + image/vnd.dece.graphic + + + uvh + video/vnd.dece.hd + + + uvi + image/vnd.dece.graphic + + + uvm + video/vnd.dece.mobile + + + uvp + video/vnd.dece.pd + + + uvs + video/vnd.dece.sd + + + uvt + application/vnd.dece.ttml+xml + + + uvu + video/vnd.uvvu.mp4 + + + uvv + video/vnd.dece.video + + + uvva + audio/vnd.dece.audio + + + uvvd + application/vnd.dece.data + + + uvvf + application/vnd.dece.data + + + uvvg + image/vnd.dece.graphic + + + uvvh + video/vnd.dece.hd + + + uvvi + image/vnd.dece.graphic + + + uvvm + video/vnd.dece.mobile + + + uvvp + video/vnd.dece.pd + + + uvvs + video/vnd.dece.sd + + + uvvt + application/vnd.dece.ttml+xml + + + uvvu + video/vnd.uvvu.mp4 + + + uvvv + video/vnd.dece.video + + + uvvx + application/vnd.dece.unspecified + + + uvvz + application/vnd.dece.zip + + + uvx + application/vnd.dece.unspecified + + + uvz + application/vnd.dece.zip + + + vcard + text/vcard + + + vcd + application/x-cdlink + + + vcf + text/x-vcard + + + vcg + application/vnd.groove-vcard + + + vcs + text/x-vcalendar + + + vcx + application/vnd.vcx + + + vis + application/vnd.visionary + + + viv + video/vnd.vivo + + + vor + application/vnd.stardivision.writer + + + vox + application/x-authorware-bin + + + vrml + model/vrml + + + vsd + application/vnd.visio + + + vsf + application/vnd.vsf + + + vss + application/vnd.visio + + + vst + application/vnd.visio + + + vsw + application/vnd.visio + + + vtu + model/vnd.vtu + + + vxml + application/voicexml+xml + + + w3d + application/x-director + + + wad + application/x-doom + + + wav + audio/x-wav + + + wax + audio/x-ms-wax + + + + wbmp + image/vnd.wap.wbmp + + + wbs + application/vnd.criticaltools.wbs+xml + + + wbxml + application/vnd.wap.wbxml + + + wcm + application/vnd.ms-works + + + wdb + application/vnd.ms-works + + + weba + audio/webm + + + webm + video/webm + + + webp + image/webp + + + wg + application/vnd.pmi.widget + + + wgt + application/widget + + + wks + application/vnd.ms-works + + + wm + video/x-ms-wm + + + wma + audio/x-ms-wma + + + wmd + application/x-ms-wmd + + + wmf + application/x-msmetafile + + + + wml + text/vnd.wap.wml + + + + wmlc + application/vnd.wap.wmlc + + + + wmls + text/vnd.wap.wmlscript + + + + wmlsc + application/vnd.wap.wmlscriptc + + + wmv + video/x-ms-wmv + + + wmx + video/x-ms-wmx + + + wmz + application/x-ms-wmz + + + woff + application/x-font-woff + + + wpd + application/vnd.wordperfect + + + wpl + application/vnd.ms-wpl + + + wps + application/vnd.ms-works + + + wqd + application/vnd.wqd + + + wri + application/x-mswrite + + + wrl + model/vrml + + + wsdl + application/wsdl+xml + + + wspolicy + application/wspolicy+xml + + + wtb + application/vnd.webturbo + + + wvx + video/x-ms-wvx + + + x32 + application/x-authorware-bin + + + x3d + application/vnd.hzn-3d-crossword + + + xap + application/x-silverlight-app + + + xar + application/vnd.xara + + + xbap + application/x-ms-xbap + + + xbd + application/vnd.fujixerox.docuworks.binder + + + xbm + image/x-xbitmap + + + xdf + application/xcap-diff+xml + + + xdm + application/vnd.syncml.dm+xml + + + xdp + application/vnd.adobe.xdp+xml + + + xdssc + application/dssc+xml + + + xdw + application/vnd.fujixerox.docuworks + + + xenc + application/xenc+xml + + + xer + application/patch-ops-error+xml + + + xfdf + application/vnd.adobe.xfdf + + + xfdl + application/vnd.xfdl + + + xht + application/xhtml+xml + + + xhtml + application/xhtml+xml + + + xhvml + application/xv+xml + + + xif + image/vnd.xiff + + + xla + application/vnd.ms-excel + + + xlam + application/vnd.ms-excel.addin.macroenabled.12 + + + xlc + application/vnd.ms-excel + + + xlm + application/vnd.ms-excel + + + xls + application/vnd.ms-excel + + + xlsb + application/vnd.ms-excel.sheet.binary.macroenabled.12 + + + xlsm + application/vnd.ms-excel.sheet.macroenabled.12 + + + xlsx + application/vnd.openxmlformats-officedocument.spreadsheetml.sheet + + + xlt + application/vnd.ms-excel + + + xltm + application/vnd.ms-excel.template.macroenabled.12 + + + xltx + application/vnd.openxmlformats-officedocument.spreadsheetml.template + + + xlw + application/vnd.ms-excel + + + xml + application/xml + + + xo + application/vnd.olpc-sugar + + + xop + application/xop+xml + + + xpi + application/x-xpinstall + + + xpm + image/x-xpixmap + + + xpr + application/vnd.is-xpr + + + xps + application/vnd.ms-xpsdocument + + + xpw + application/vnd.intercon.formnet + + + xpx + application/vnd.intercon.formnet + + + xsl + application/xml + + + xslt + application/xslt+xml + + + xsm + application/vnd.syncml+xml + + + xspf + application/xspf+xml + + + xul + application/vnd.mozilla.xul+xml + + + xvm + application/xv+xml + + + xvml + application/xv+xml + + + xwd + image/x-xwindowdump + + + xyz + chemical/x-xyz + + + yang + application/yang + + + yin + application/yin+xml + + + z + application/x-compress + + + Z + application/x-compress + + + zaz + application/vnd.zzazz.deck+xml + + + zip + application/zip + + + zir + application/vnd.zul + + + zirz + application/vnd.zul + + + zmm + application/vnd.handheld-entertainment+xml + + + + + + + + + + + + + + + + + + index.html + index.htm + index.jsp + + + diff --git "a/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/tomcat/logs/access_log.2025-01-07" "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/tomcat/logs/access_log.2025-01-07" new file mode 100644 index 0000000..e4dac0f --- /dev/null +++ "b/\350\224\241\347\216\256\351\223\255/20250107 \347\273\274\345\220\210\347\273\203\344\271\240(\344\272\224)/MySchool/target/tomcat/logs/access_log.2025-01-07" @@ -0,0 +1,104 @@ +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:05:48 +0800] "GET / HTTP/1.1" 200 2139 http-bio-80-exec-1 49 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:05:49 +0800] "GET /js/axios.min.js HTTP/1.1" 200 54050 http-bio-80-exec-2 3 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:05:49 +0800] "GET /css/styles.css HTTP/1.1" 200 3191 http-bio-80-exec-3 2 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:05:49 +0800] "GET /js/data.js HTTP/1.1" 200 5206 http-bio-80-exec-4 2 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:05:49 +0800] "GET /student HTTP/1.1" 404 965 http-bio-80-exec-7 4 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:05:49 +0800] "GET /favicon.ico HTTP/1.1" 404 973 http-bio-80-exec-5 2 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:05:49 +0800] "GET /student HTTP/1.1" 404 965 http-bio-80-exec-9 1 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:43:31 +0800] "GET /favicon.ico HTTP/1.1" 404 949 http-bio-80-exec-2 30 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:43:31 +0800] "GET /student HTTP/1.1" 404 949 http-bio-80-exec-1 92 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:43:36 +0800] "GET /school HTTP/1.1" 200 373 http-bio-80-exec-4 752 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:44:37 +0800] "GET / HTTP/1.1" 200 2139 http-bio-80-exec-6 9 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:44:37 +0800] "GET /student HTTP/1.1" 404 949 http-bio-80-exec-8 1 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:44:43 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-9 1 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:44:43 +0800] "GET / HTTP/1.1" 200 2139 http-bio-80-exec-10 2 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:44:43 +0800] "GET /css/styles.css HTTP/1.1" 200 3191 http-bio-80-exec-10 3 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:44:43 +0800] "GET /js/axios.min.js HTTP/1.1" 200 54050 http-bio-80-exec-7 3 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:44:43 +0800] "GET /js/data.js HTTP/1.1" 200 5205 http-bio-80-exec-7 2 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:44:43 +0800] "GET /favicon.ico HTTP/1.1" 404 949 http-bio-80-exec-7 1 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:44:43 +0800] "GET /school HTTP/1.1" 200 373 http-bio-80-exec-1 15 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:44:43 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-1 1 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:48:30 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-2 2 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:48:31 +0800] "GET / HTTP/1.1" 200 2182 http-bio-80-exec-2 2 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:48:31 +0800] "GET /css/styles.css HTTP/1.1" 200 3191 http-bio-80-exec-2 3 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:48:31 +0800] "GET /js/axios.min.js HTTP/1.1" 200 54050 http-bio-80-exec-3 3 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:48:31 +0800] "GET /js/data.js HTTP/1.1" 200 5216 http-bio-80-exec-8 9 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:48:31 +0800] "GET /school HTTP/1.1" 200 373 http-bio-80-exec-8 8 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:48:31 +0800] "GET /favicon.ico HTTP/1.1" 404 949 http-bio-80-exec-8 1 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:48:31 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-8 1 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:48:48 +0800] "GET /school?schoolName=%E6%B8%85%E5%8D%8E HTTP/1.1" 200 12 http-bio-80-exec-8 17 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:48:52 +0800] "GET /school?schoolName=%E6%B8%85%E5%8D%8E HTTP/1.1" 200 12 http-bio-80-exec-8 3 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:49:58 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-1 49 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:49:58 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-2 5 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:49:58 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-3 8 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:49:59 +0800] "GET /school HTTP/1.1" 200 373 http-bio-80-exec-5 769 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:50:23 +0800] "POST /school HTTP/1.1" 200 11 http-bio-80-exec-6 58 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:50:24 +0800] "GET /school HTTP/1.1" 200 485 http-bio-80-exec-7 5 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:50:26 +0800] "GET /school/5 HTTP/1.1" 500 1143 http-bio-80-exec-8 5 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:50:27 +0800] "GET /school/5 HTTP/1.1" 500 1143 http-bio-80-exec-4 2 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:50:28 +0800] "GET /school/5 HTTP/1.1" 500 1143 http-bio-80-exec-9 1 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:50:28 +0800] "GET /school/5 HTTP/1.1" 500 1143 http-bio-80-exec-10 1 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:50:33 +0800] "GET /school/5 HTTP/1.1" 500 1143 http-bio-80-exec-1 2 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:50:33 +0800] "GET /school/5 HTTP/1.1" 500 1143 http-bio-80-exec-2 1 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:50:33 +0800] "GET /school/5 HTTP/1.1" 500 1143 http-bio-80-exec-3 1 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:50:33 +0800] "GET /school/5 HTTP/1.1" 500 1143 http-bio-80-exec-5 1 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:50:34 +0800] "GET /school/5 HTTP/1.1" 500 1143 http-bio-80-exec-6 1 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:50:37 +0800] "DELETE /school/5 HTTP/1.1" 500 1143 http-bio-80-exec-7 5 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:51:30 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-8 4 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:51:30 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-8 1 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:51:30 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-4 2 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:51:30 +0800] "GET /school HTTP/1.1" 200 485 http-bio-80-exec-8 14 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:54:44 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-1 63 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:54:44 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-2 8 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:54:44 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-3 6 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:54:45 +0800] "GET /school HTTP/1.1" 200 485 http-bio-80-exec-5 800 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:54:46 +0800] "GET /school/5 HTTP/1.1" 500 1149 http-bio-80-exec-6 10 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:54:47 +0800] "GET /school/5 HTTP/1.1" 500 1149 http-bio-80-exec-4 1 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:54:47 +0800] "GET /school/5 HTTP/1.1" 500 1149 http-bio-80-exec-7 2 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:54:47 +0800] "GET /school/5 HTTP/1.1" 500 1149 http-bio-80-exec-8 1 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:54:47 +0800] "GET /school/5 HTTP/1.1" 500 1149 http-bio-80-exec-9 1 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:54:47 +0800] "GET /school/5 HTTP/1.1" 500 1149 http-bio-80-exec-10 1 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:55:37 +0800] "GET /school/5 HTTP/1.1" 500 1149 http-bio-80-exec-1 1 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:56:50 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-2 15 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:56:50 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-3 18 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:56:50 +0800] "GET /js/axios.min.js.map HTTP/1.1" 404 949 http-bio-80-exec-4 26 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:56:51 +0800] "GET /school/5 HTTP/1.1" 200 122 http-bio-80-exec-1 1199 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:56:51 +0800] "GET /school HTTP/1.1" 200 485 http-bio-80-exec-6 204 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:56:57 +0800] "GET /school/5 HTTP/1.1" 200 122 http-bio-80-exec-7 4 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:57:04 +0800] "PUT /school HTTP/1.1" 200 11 http-bio-80-exec-9 55 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:15:57:05 +0800] "GET /school HTTP/1.1" 200 482 http-bio-80-exec-10 5 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:00:30 +0800] "DELETE /school/5 HTTP/1.1" 200 11 http-bio-80-exec-3 23 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:00:30 +0800] "GET /school HTTP/1.1" 200 373 http-bio-80-exec-3 6 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:00:37 +0800] "POST /school HTTP/1.1" 200 11 http-bio-80-exec-3 5 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:00:38 +0800] "GET /school HTTP/1.1" 200 470 http-bio-80-exec-3 4 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:00:42 +0800] "GET /school?schoolName=%E6%B8%85 HTTP/1.1" 200 102 http-bio-80-exec-3 229 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:00:45 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-3 2 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:00:45 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-3 2 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:00:46 +0800] "GET /school HTTP/1.1" 200 470 http-bio-80-exec-3 6 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:01:14 +0800] "GET /school/5 HTTP/1.1" 200 - http-bio-80-exec-3 3 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:01:16 +0800] "GET /school/5 HTTP/1.1" 200 - http-bio-80-exec-3 3 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:01:18 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-3 3 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:01:18 +0800] "GET /school HTTP/1.1" 200 470 http-bio-80-exec-3 5 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:01:23 +0800] "GET /school/6 HTTP/1.1" 200 107 http-bio-80-exec-3 4 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:02:08 +0800] "PUT /school HTTP/1.1" 200 11 http-bio-80-exec-3 5 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:02:08 +0800] "GET /school HTTP/1.1" 200 475 http-bio-80-exec-3 3 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:04:18 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-10 2 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:04:18 +0800] "GET /js/data.js HTTP/1.1" 304 - http-bio-80-exec-10 2 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:04:18 +0800] "GET /school HTTP/1.1" 200 475 http-bio-80-exec-10 8 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:04:19 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-10 1 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:04:19 +0800] "GET /school HTTP/1.1" 200 475 http-bio-80-exec-10 3 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:15:35 +0800] "GET / HTTP/1.1" 200 2182 http-bio-80-exec-1 193 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:15:35 +0800] "GET /js/data.js HTTP/1.1" 200 5216 http-bio-80-exec-3 20 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:15:36 +0800] "GET /school HTTP/1.1" 200 373 http-bio-80-exec-4 947 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:15:36 +0800] "GET /school HTTP/1.1" 200 373 http-bio-80-exec-2 3 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:15:58 +0800] "GET /school?schoolName=%E6%B8%85 HTTP/1.1" 200 102 http-bio-80-exec-6 78 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:16:17 +0800] "GET /school/1 HTTP/1.1" 200 100 http-bio-80-exec-7 10 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:16:50 +0800] "GET / HTTP/1.1" 304 - http-bio-80-exec-8 13 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:16:50 +0800] "GET /school HTTP/1.1" 200 373 http-bio-80-exec-10 5 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:17:12 +0800] "DELETE /school/4 HTTP/1.1" 200 11 http-bio-80-exec-10 16 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:17:13 +0800] "GET /school HTTP/1.1" 200 283 http-bio-80-exec-10 6 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:18:11 +0800] "POST /school HTTP/1.1" 200 11 http-bio-80-exec-10 46 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:18:12 +0800] "GET /school HTTP/1.1" 200 389 http-bio-80-exec-10 4 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:18:37 +0800] "GET /school/5 HTTP/1.1" 200 116 http-bio-80-exec-10 4 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:19:10 +0800] "PUT /school HTTP/1.1" 200 11 http-bio-80-exec-10 7 +0:0:0:0:0:0:0:1 - - [07/Jan/2025:16:19:11 +0800] "GET /school HTTP/1.1" 200 398 http-bio-80-exec-10 4 -- Gitee