Book
图书管理系统图书管理项目是一个基于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 就可以阻止某些非法的访问请求。 项目演示图书管理系统
Book