什么是图书管理系统

图书管理系统是基于Servlet+maven +MySQL +Tomcat实现的用于用户可以记录并管理学生借阅图书信息的一个信息系统

开发环境

Win10

技术栈

JDBC、json封装、maven、Servlet、java自定义异常、多线程、Filter过滤器、URL编码及其解码等

项目功能

主要业务:管理学校图书信息,记录并管理学生借阅图书信息,图书管理系统的登录,图书借阅信息的新增、修改、删除功能

  • 用户登录
  • 会话管理
  • 图书借阅信息管理

项目目标

1、涉及相关知识:数据库设计、基本CRUD操作、JDBC操作、关联查询操作
2、 Servlet处理HTTP请求
3、 HTTP相关知识:数据类型、请求方法、状态码
4、Filter过滤器实现请求和响应的过滤
5、 熟悉整个项目开发流程,并将其部署到服务器上

1.1:数据库设计一般步骤

1.需求分析

2.概念结构设计

3.逻辑结构设计

4.物理结构设计

5.数据库实施

6.数据库的运行和维护

1.2:基本CRUD操作

详情见下面博客

1.3:JDBC操作

jdbc编程步骤:
1.装载相应的数据库的JDBC驱动并进行初始化
2.建立JDBC和数据库之间的Connection连接
3.创建Statement或者PreparedStatement接口,执行SQL语句
4.处理和显示结果
5.释放资源
详情见下面博客

1.4:关联查询操作

详情见下面博客

2.1:Servlet处理HTTP请求

HttpServlet的作用就是得到http请求并作出响应并返回结果给容器的
HttpServlet的作用是:
根据客户发出的HTTP请求,生成响应的HTTP响应结果。HttpServlet首先必须读取HTTP请求的内容。Servlet容器负责创建HttpRequest对象,并把HTTP请求信息封装到HttpRequest对象中,这大大简化了HttpServlet解析请求数据的工作量。

3.1:HTTP数据类型

参考链接:HTTP—Post提交数据的几种类型.

3.2:HTTP请求方法

HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。其中 POST 一般用来向服务端提交数据

提交数据到服务器的时候有两种方式可供选择,一个是post一个是get。

3.2.1:get和post的区别、http常见Header

项目 | Book-System

3.3:HTTP响应状态码

3.3.1:状态码有什么用

http状态码有什么用?

http状态码的核心作用是Web Server服务器用来告诉客户端,当前的网页请求发生了什么事,或者说当前Web服务器的响应状态。所以HTTP状态码常用来判断和分析当前Web服务器的运行状况。

作为一个互联网开发人员对于一些服务器返回的HTTP状态的意思都必须是了如指掌的,只有将这些状态码一一弄清楚,工作中遇到的各种问题才能够处理的得心应手。好了,下面就让我们来了解一下比较常见的HTTP状态码吧!

3.3.2:哪里查看以及常见状态码

http状态码在哪里查看?
1.浏览器的F12调试(或者右键检查),network查看Status,status就是http返回的状态码。
如果有兴趣了解更多,可以继续看看下面的内容
HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。
项目 | Book-System

3.3.3:小总结

1开头 (请求已被接受,需要继续处理)这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。
2开头 (请求成功)表示成功处理了请求的状态代码。
3开头 (请求被重定向)表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。
4开头 (请求错误)这些状态代码表示请求可能出错,妨碍了服务器的处理。
5开头(服务器错误)这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。

4.1:Filter过滤器

Filter 的基本工作原理

1、Filter 程序是一个实现了特殊接口的 Java 类,与 Servlet 类似,也是由Servlet 容器进行调用和执行的。
2、当在 web.xml 注册了一个 Filter 来对某个 Servlet 程序进行拦截处理时,它可以决定是否将请求继续传递给 Servlet 程序,以及对请求和响应消息是否进行修改。
3、当 Servlet 容器开始调用某个 Servlet 程序时,如果发现已经注册了一个Filter 程序来对该 Servlet 进行拦截,那么容器不再直接调用 Servlet 的service 方法,而是调用 Filter 的 doFilter 方法,再由 doFilter 方法决定是否去** service 方法。
4、但在 Filter.doFilter 方法中不能直接调用 Servlet 的 service 方法,而是调
用 FilterChain.doFilter 方法来**目标 Servlet 的 service 方法,FilterChain 对象时通过 Filter.doFilter 方法的参数传递进来的。
5、只要在 Filter.doFilter 方法中调用 FilterChain.doFilter 方法的语句前后增加某些程序代码,这样就可以在 Servlet 进行响应前后实现某些特殊功能。
6、如果在 Filter.doFilter 方法中没有调用 FilterChain.doFilter 方法,则目标Servlet 的 service 方法不会被执行,这样通过 Filter 就可以阻止某些非法的访问请求。

项目结构

一:本项目使用MVC(model-view-controller)三层结构

  • model-数据访问层
  • view-展现层
  • controller-应用层
    对于java web应用来说,不管是B/S还是C/S,大体上都可以分成服务端和客户端两部分,只不过B/S的客户端就是公用的浏览器。
    项目 | Book-System

m是model,也就是和数据库相关的那些,比如实体类和dao、mapper.xml等,对应着三层结构的数据访问层;
v是view,也就是前台的页面或者说是客户端展示给用户看的东西,也就是展现层;
c是controller以及service等具体的业务逻辑(前后端交互的业务逻辑),对应着三层结构的应用层。
项目 | Book-System

二:前后端接口约定
要实现功能,需要先明确前后端约定好的接口,我们主要实现图书借阅信息管理,所以只实现该业务相关接口。
需要说明的是,接口的定义一般是前后端约定好的,所以也和前端代码息息相关,前端需要什么数据,需要什么格式的数据,也会在接口中体现。
项目 | Book-System
演示:
Book-System.

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-06-24
  • 2022-12-23
  • 2021-11-30
  • 2021-06-04
猜你喜欢
  • 2022-12-23
  • 2021-08-01
  • 2021-06-29
  • 2021-11-02
  • 2021-08-27
  • 2021-11-19
  • 2021-12-12
相关资源
相似解决方案