Book-System项目

图书管理系统

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

项目目标

  • 相关知识:数据库设计、基本CRUD操作,关联查询操作,JDBC操作
  • Servlet处理HTTP请求
  • HTTP相关知识:请求方法、响应状态码、数据类型等
  • Filter过滤器实现请求和响应的过滤
  • 项目开发流程,部署到服务器上等

开发环境与技术栈

Java自定义异常、maven、Servlet、json封装、Filter过滤器、多线程、单例模式、JDBC、URL编码及解码等

项目功能

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

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

我的职责

自定义父类和子类异常,进行异常的统一处理,使用@WebServlet注解修改Servlet属性,在统一的代码中封装json的返回格式,并返回失败的json数据;实现工具类线程安全的双重校验锁,利用filter过滤器进行请求和响应的过滤,并且用到JDBC的知识以及URL的编码及解码,将项目部署到服务器上等。

项目详情

  • 项目使用MVC三层结构
    三层结构是什么,是展现层、应用层、数据访问层,这个基本上是没有太大的异议的,两种看法的来源基本上都是来自对于mvc的理解。
    对于java web应用来说,不管是B/S还是C/S,大体上都可以分成服务端和客户端两部分,只不过B/S的客户端就是公用的浏览器。
    在这里插入图片描述
    m是model,也就是和数据库相关的那些,比如实体类和dao、mapper.xml等,对应着三层结构的数据访问层;
    v是view,也就是前台的页面或者说是客户端展示给用户看的东西,也就是展现层;
    而c就是controller以及service等具体的业务逻辑,对应着三层结构的应用层。

在这里插入图片描述

  • 前后端接口约定
    要实现功能,需要先明确前后端约定好的接口,我们主要实现图书借阅信息管理,所以只实现该业务相关接口。
    需要说明的是,接口的定义一般是前后端约定好的,所以也和前端代码息息相关,前端需要什么数据,需要什么格式的数据,也会在接口中体现。
    在这里插入图片描述

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

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

  • application/json
    application/json 这个 Content-Type 作为响应头,用来告诉服务端消息主体是序列化后的 JSON 字符串。由于 JSON 规范的流行,除了低版本 IE 之外的各大浏览器都原生支持 JSON.stringify,服务端语言也都有处理 JSON 的函数,使用 JSON 不会遇上什么麻烦。
    JSON 格式支持比键值对复杂得多的结构化数据,这一点也很有用

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

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 就可以阻止某些非法的访问请求。

项目演示

图书管理系统

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值