论文部分内容阅读
【摘 要】每年各校读书协会的同学都会举行图书漂流活动,但效果甚微,相应的网站系统虽能实现图书的交流,但仍不能在图书的管理和用户的交互有而很大的改进。图书流动困难,图书利用率低。本项目旨在开发一个SSM(spring+springMVC+mybatis)框架的图书管理系统,与学校网站如信息门户相结合,将其推广实现图书资源的高效利用。本项目的特点在于将实体的图书漂流角进行网络虚拟化,提高可管理性,将图书资源最大化利用建立统一的高校管理服务平台,提供专业和高质量的学习交流途径。
【关键词】图书漂流;SSM;JavaWeb
1.项目背景
1.1项目背景及目标
“图书漂流角”在每个学校都存在,并且每年各校读书协会的同学都会举行图书漂流活动,但效果甚微。主要的问题在于图书管理问题难以解决,即使有学生愿意将自己的书籍捐出去,但是过不了多长时间就会丢失,而且想要寻找资源的人往往不能准确迅捷的找到自己的目标,只能在众多书籍中一一寻找。虽然相应的网站系统能具备图书的交流功能,但仍不能得到广泛的支持。一是学生捐献图书的意向,因为收集地点的距离消退,而是只有在正规的网站发表和宣传同学们才能接受图书漂流这种书籍资源高效利用的新方法,因此可将本项目与学校网站如信息门户相结合,将其推广实现图书资源的高效利用。
本项目的目标是让更多学生参与图书漂流,使之在校内流转,推而广之,各高校学生之间也可进行相应图书交流。项目成熟后,我们会为系统升级,实现除图书资源以外其它资料的交流。本项目实现图书的简便管理以方便用户的操作以及管理员的管理,投放图书的人会详细提供图书信息,此保证书籍的完整和真实。
1.2项目创新特色概述
(1)中通过分类实现自主管理实现用户轻松使用和管理员轻松管理。
(2)将实体的图书漂流角进行网络虚拟化,提高可管理性,将图书资源最大化利用,建立统一的高校管理服务平台,提供专业和高质量的学习交流途径。
2.技术简介
此系统采用Spring、SpringMVC、Mybatis后端技术进行网站后台的搭建,使用JQuery、HTML、CSS、JavaScript、Ajax进行前端页面的编写,主要技术如下:
2.1 Spring、SpringMVC简介
Spring是一个开源的、轻量级的Java开发框架,在该网站使用Spring减少了代码的书写量,将实例交给spring进行管理,通过Bean进行Java对象、Java组件的管理和处理。在系统创建的过程中使用的是Maven进行项目的管理,减少出错的概率。
Spring组成:
Spring Core:提供Spring框架的基本功能,提供了依赖注入来实现容器对Bean的管理。
Spring AOP:面向切面编程 ,使用AOP可以将通用逻辑(事务管理、日志管理等)分离出来然后统一切入到业务逻辑代码中。
Spring DAO:使用JDBC时需要取得连接、创建语句、处理结果、关闭连接,这会导致大量的重复代码,而SpringDAO模块抽取了这些重复的代码,不仅能保证数据库方位代码的过程简洁而且还能防止因数据库资源关闭失败而引起的问题。
Spring Context:向Spring框架提供上下文信息。如果说BeanFactory使Spring成为一个容器,那么上下文模块便使得Spring成为一个框架。
SpringIOC::控制反转,由Spring来负责对象的生命周期和对象间的关系。主要通过DI(依赖注入)来实现IOC,本系统使用标注注入的方式。注入需要在配置文件中写大量的代码为了简化配置文件,Spring提供了标注注入,常见的注解標记如下:
@Component:通用注解
@Controller:控制层组件注解
@Resource:默认按照名称进行注入
@Autowired:默认按类型注入
@Service:业务层组件注解
@Value:基本值注入
SpringMVC简介:
SpringMVC是典型的MVC结构,其提供了模型、视图和控制器相关的主要实现组件,具体如下:
DispatcherServlet:前端控制器,是SpringMVC的中央调度器,是请求的入口,当请求到达前端控制器,由其来调用其他的组件处理用户的请求。
HandlerMapping:处理器映射,请求派发,DispatcherServlet会一句HandlerMapping来调用相应的Controller组件
Controller:二级控制器,也可以成为后端控制器,负责具体的请求处理流程,然后将处理结果返回给前端控制器
ModelAndView:模型,封装了处理结果数据和视图名称信息。
ViewResolver:视图,视图显示处理器
SpringMVC常见注解:
@Controller:定义控制器,简化配置文件,降低侵入性
@Responsebody:放在方法上,表示返回类型将会直接作为HTTP响应字节输出,此注解可以方便的将数据自动转换为JSON格式字符转返回到客户端。
@RequestMapping:用来定义访问的URL,放在类级别上,也可以放在方法级别上
@PathVariabble:用来获取请求URL中的动态参数,在使用SpringMVC创建RESTful API时会用到
2.2 Mybatis技术介绍
Mybatis支持普通SQL查询,存储过程和高级映射;对JDBC户数进行封装,简化数据库操作代码;使用简单的XML或注解用于配置和映射,将接口和Java对象映射成数据库中的记录。此系统中使用注解的方式对数据库中的数据进行操作。 按照功能Mybatis可以分为三层,分别是接口层、数据处理层、基础支撑层。
接口层:作用是和数据库进行交互,提供可供外部使用的接口,开发人员可以通过这些本地接口来操作数据库。包括数据的增删改查,获取配置接口
数据处理层:是Mybatis的核心层。包括参数映射、SQL解析、SQL执行和结果映射四部分。
基础支撑层:将共用的组件抽取出来为数据处理层提供最基础的功能支撑,包含连接管理、事务管理、配置加载和缓存处理。
2.3 Ajax及JQuery、Thymeleaf
JQuery是一个强大的JavaScript库。可以快速、简洁的实现JavaScript代码可以简化HTML文档元素的遍历、事件处理、动画和Ajax交互可以实现快速的Web开发。
功能:
方便快捷获取DOM元素:使用纯JavaScript的方式遍历DOM以及查询DOM中的某一部分,需要编写冗余的代码,使用JQuery只需要一行代码就可以了。
动态修改CSS样式:使用JQuery可以动态修改页面的CSS,即使在页面展现出来以后,JQuery仍然可以改变文档中某个部分的类或者样式属性。
动态改变DOM内容:使用JQuery可以很容易的对页面DOM进行修改。
响应用户的教化操作:JQuery提供了截取页面时间的适当方式,而不需要使用时间处理程序拆散HTML代码。此外,他的事件处理API也满足浏览器的不一致性。
为页面添加动态效果:JQuery内置了一批淡入、淡出、擦除等动态效果
JQuery Ajax操作:JQuery统一了多种浏览器的Ajax操作。
Thymeleaf是一个XML/XHTML/HTML5模板引擎,可用于Web与非Web环境中的应用开发。它是一个开源的Java库,Thymeleaf提供了一个用于整合Spring MVC的可选模块。 使用Thymeleaf可以创建动态的页面渲染页面,减少了使用jQuery对页面进行数据操作,可以实现页面数据的动态更新等。
此系统中使用JQuery和Ajax实现前后端数据的交互行为。
2.4加密
使用Java自带的Base64对输入的重要信息进行加密存储,保证系统的安全性,防止数据的泄露。
3.系统概述
3.1表现层
本系统的表现层是通过HTML、JQuery、Ajax、CSS技术,以web页面的方式展示给用户,在从前端向后端传输数据的过程中利用了两种技术方式,一种是通过form表单的形式,另一种是通过ajax技术的方式,进行前后端的交互,ajax的使用使前后端交互更加便捷,同时可以实现异步刷新的作用,不会每次都刷新整个页面,这样极大的提高了用户的体验。利用jquery框架可以更容易的对JavaScript进行使用,在部分页面使用CSS和Thymeleaf对页面进行渲染。
所需要的主要页面有:
(1)注册页面:用来填写普通用户的主要信息。(2)登录页面:填写登录用户信息的用户名和密码,并进行登录验证。(3)主页:就是用户进入的首页,在这里展示的该网站所表达的主题,可以看到网站的功能,可以搜索书籍,查看书籍信息。(4)管理员管理页面:对管理员进行分级,不同级别的管理员拥有不同的权限。(5)书籍详情页:书籍详情页显示的是该书籍的所有信息,包括作者和时间,同时在文章的底部将看到评论的内容,所有用户对该文章的评论的内容都会显示在底部。
3.2业务逻辑层
业务逻辑层主要处理前端控制器传来的请求和数据,后端通过地址映射分发到对应的控制器,进行相应的业务上的逻辑处理,在进行业务逻辑处理的时候,通过springmvc注解的形式。通过注解的形式减少了配置文件的繁琐,代码整体看上去更加整洁,维护性起来更加方便,在后端进行控制器,服务接口层,服务实现层的分层排布,同时利用mybatis框架对DAO层进行封装,在mybtis的DAO文件中寫sql语句,这样方便修改和便于对sql语句的管理。
服务接口层主要是用来向各个实现方法提供接口,不同的方法根据不同的功能可以对同一个接口进行不同的业务逻辑,接口层的使用让代码逻辑看起来更加的清晰,服务实现层主要实现的是对数据的处理,通过调用数据层的方法来从数据库中取出相应的数据,根据固定返回条件,返回给控制器的业务逻辑中,控制器对返回来的数据进行处理,经过业务逻辑处理,通过Model类进行封装,返回给前端控制器。
3.3数据层
该层主要对数据进行更新和读取,作为业务层和数据库的中间层,主要为逻辑服务提供数据,通过DAO层对数据进行分离,将数据逻辑和数据源进行分离操作,并最终能够实现对数据对象的基本操作。
数据库的需求分析:
数据库需求分析属于软件过程的需求分析阶段,数据库分析的作用是通过搜集用户的需求来指导数据库的设计。
通过以上分析,现在可以将数据库的需求整理出来:
(1)用户信息表:包括用户名,密码,电话号码, (2)用户角色表:用户的id,标志位判断是否是管理员,还是普通用户,还是超级管理员。(3)内容表,该表存储了书籍的信息。包括的字段有:书名,简介,书籍id,书籍编号,标志位判断内容的分类信息。(4)图片表:存储图片的信息。(5)评论表,该表存储了对书籍的评论内容,包括评论的内容,评论者,回复对象的用户名,用户id,回复对象的id,文章的id.
代码地址:https://gitee.com/skyspatur/demo
参考文献
[1]郭炳宇,王田甜等.移动互联后台设计与开发[M].北京:高等教育出版社,2017
[2]郭炳宇,王田甜等.移动互联Web前端开发[M].北京:高等教育出版社,2017
基金项目:江苏大学2019年度大学生实践创新训练计划项目,项目编号:201910299504X
作者简介:
熊宏杰(2000.3--),,男,汉族,甘肃华亭人,江苏大学本科在读,计算机方向。
李祥(2000.9--),男,汉族,江苏宿迁人,江苏大学本科在读,计算机方向。
余筱(2000.8--),女,汉族,江苏南京人,江苏大学本科在读,计算机方向。
【关键词】图书漂流;SSM;JavaWeb
1.项目背景
1.1项目背景及目标
“图书漂流角”在每个学校都存在,并且每年各校读书协会的同学都会举行图书漂流活动,但效果甚微。主要的问题在于图书管理问题难以解决,即使有学生愿意将自己的书籍捐出去,但是过不了多长时间就会丢失,而且想要寻找资源的人往往不能准确迅捷的找到自己的目标,只能在众多书籍中一一寻找。虽然相应的网站系统能具备图书的交流功能,但仍不能得到广泛的支持。一是学生捐献图书的意向,因为收集地点的距离消退,而是只有在正规的网站发表和宣传同学们才能接受图书漂流这种书籍资源高效利用的新方法,因此可将本项目与学校网站如信息门户相结合,将其推广实现图书资源的高效利用。
本项目的目标是让更多学生参与图书漂流,使之在校内流转,推而广之,各高校学生之间也可进行相应图书交流。项目成熟后,我们会为系统升级,实现除图书资源以外其它资料的交流。本项目实现图书的简便管理以方便用户的操作以及管理员的管理,投放图书的人会详细提供图书信息,此保证书籍的完整和真实。
1.2项目创新特色概述
(1)中通过分类实现自主管理实现用户轻松使用和管理员轻松管理。
(2)将实体的图书漂流角进行网络虚拟化,提高可管理性,将图书资源最大化利用,建立统一的高校管理服务平台,提供专业和高质量的学习交流途径。
2.技术简介
此系统采用Spring、SpringMVC、Mybatis后端技术进行网站后台的搭建,使用JQuery、HTML、CSS、JavaScript、Ajax进行前端页面的编写,主要技术如下:
2.1 Spring、SpringMVC简介
Spring是一个开源的、轻量级的Java开发框架,在该网站使用Spring减少了代码的书写量,将实例交给spring进行管理,通过Bean进行Java对象、Java组件的管理和处理。在系统创建的过程中使用的是Maven进行项目的管理,减少出错的概率。
Spring组成:
Spring Core:提供Spring框架的基本功能,提供了依赖注入来实现容器对Bean的管理。
Spring AOP:面向切面编程 ,使用AOP可以将通用逻辑(事务管理、日志管理等)分离出来然后统一切入到业务逻辑代码中。
Spring DAO:使用JDBC时需要取得连接、创建语句、处理结果、关闭连接,这会导致大量的重复代码,而SpringDAO模块抽取了这些重复的代码,不仅能保证数据库方位代码的过程简洁而且还能防止因数据库资源关闭失败而引起的问题。
Spring Context:向Spring框架提供上下文信息。如果说BeanFactory使Spring成为一个容器,那么上下文模块便使得Spring成为一个框架。
SpringIOC::控制反转,由Spring来负责对象的生命周期和对象间的关系。主要通过DI(依赖注入)来实现IOC,本系统使用标注注入的方式。注入需要在配置文件中写大量的代码为了简化配置文件,Spring提供了标注注入,常见的注解標记如下:
@Component:通用注解
@Controller:控制层组件注解
@Resource:默认按照名称进行注入
@Autowired:默认按类型注入
@Service:业务层组件注解
@Value:基本值注入
SpringMVC简介:
SpringMVC是典型的MVC结构,其提供了模型、视图和控制器相关的主要实现组件,具体如下:
DispatcherServlet:前端控制器,是SpringMVC的中央调度器,是请求的入口,当请求到达前端控制器,由其来调用其他的组件处理用户的请求。
HandlerMapping:处理器映射,请求派发,DispatcherServlet会一句HandlerMapping来调用相应的Controller组件
Controller:二级控制器,也可以成为后端控制器,负责具体的请求处理流程,然后将处理结果返回给前端控制器
ModelAndView:模型,封装了处理结果数据和视图名称信息。
ViewResolver:视图,视图显示处理器
SpringMVC常见注解:
@Controller:定义控制器,简化配置文件,降低侵入性
@Responsebody:放在方法上,表示返回类型将会直接作为HTTP响应字节输出,此注解可以方便的将数据自动转换为JSON格式字符转返回到客户端。
@RequestMapping:用来定义访问的URL,放在类级别上,也可以放在方法级别上
@PathVariabble:用来获取请求URL中的动态参数,在使用SpringMVC创建RESTful API时会用到
2.2 Mybatis技术介绍
Mybatis支持普通SQL查询,存储过程和高级映射;对JDBC户数进行封装,简化数据库操作代码;使用简单的XML或注解用于配置和映射,将接口和Java对象映射成数据库中的记录。此系统中使用注解的方式对数据库中的数据进行操作。 按照功能Mybatis可以分为三层,分别是接口层、数据处理层、基础支撑层。
接口层:作用是和数据库进行交互,提供可供外部使用的接口,开发人员可以通过这些本地接口来操作数据库。包括数据的增删改查,获取配置接口
数据处理层:是Mybatis的核心层。包括参数映射、SQL解析、SQL执行和结果映射四部分。
基础支撑层:将共用的组件抽取出来为数据处理层提供最基础的功能支撑,包含连接管理、事务管理、配置加载和缓存处理。
2.3 Ajax及JQuery、Thymeleaf
JQuery是一个强大的JavaScript库。可以快速、简洁的实现JavaScript代码可以简化HTML文档元素的遍历、事件处理、动画和Ajax交互可以实现快速的Web开发。
功能:
方便快捷获取DOM元素:使用纯JavaScript的方式遍历DOM以及查询DOM中的某一部分,需要编写冗余的代码,使用JQuery只需要一行代码就可以了。
动态修改CSS样式:使用JQuery可以动态修改页面的CSS,即使在页面展现出来以后,JQuery仍然可以改变文档中某个部分的类或者样式属性。
动态改变DOM内容:使用JQuery可以很容易的对页面DOM进行修改。
响应用户的教化操作:JQuery提供了截取页面时间的适当方式,而不需要使用时间处理程序拆散HTML代码。此外,他的事件处理API也满足浏览器的不一致性。
为页面添加动态效果:JQuery内置了一批淡入、淡出、擦除等动态效果
JQuery Ajax操作:JQuery统一了多种浏览器的Ajax操作。
Thymeleaf是一个XML/XHTML/HTML5模板引擎,可用于Web与非Web环境中的应用开发。它是一个开源的Java库,Thymeleaf提供了一个用于整合Spring MVC的可选模块。 使用Thymeleaf可以创建动态的页面渲染页面,减少了使用jQuery对页面进行数据操作,可以实现页面数据的动态更新等。
此系统中使用JQuery和Ajax实现前后端数据的交互行为。
2.4加密
使用Java自带的Base64对输入的重要信息进行加密存储,保证系统的安全性,防止数据的泄露。
3.系统概述
3.1表现层
本系统的表现层是通过HTML、JQuery、Ajax、CSS技术,以web页面的方式展示给用户,在从前端向后端传输数据的过程中利用了两种技术方式,一种是通过form表单的形式,另一种是通过ajax技术的方式,进行前后端的交互,ajax的使用使前后端交互更加便捷,同时可以实现异步刷新的作用,不会每次都刷新整个页面,这样极大的提高了用户的体验。利用jquery框架可以更容易的对JavaScript进行使用,在部分页面使用CSS和Thymeleaf对页面进行渲染。
所需要的主要页面有:
(1)注册页面:用来填写普通用户的主要信息。(2)登录页面:填写登录用户信息的用户名和密码,并进行登录验证。(3)主页:就是用户进入的首页,在这里展示的该网站所表达的主题,可以看到网站的功能,可以搜索书籍,查看书籍信息。(4)管理员管理页面:对管理员进行分级,不同级别的管理员拥有不同的权限。(5)书籍详情页:书籍详情页显示的是该书籍的所有信息,包括作者和时间,同时在文章的底部将看到评论的内容,所有用户对该文章的评论的内容都会显示在底部。
3.2业务逻辑层
业务逻辑层主要处理前端控制器传来的请求和数据,后端通过地址映射分发到对应的控制器,进行相应的业务上的逻辑处理,在进行业务逻辑处理的时候,通过springmvc注解的形式。通过注解的形式减少了配置文件的繁琐,代码整体看上去更加整洁,维护性起来更加方便,在后端进行控制器,服务接口层,服务实现层的分层排布,同时利用mybatis框架对DAO层进行封装,在mybtis的DAO文件中寫sql语句,这样方便修改和便于对sql语句的管理。
服务接口层主要是用来向各个实现方法提供接口,不同的方法根据不同的功能可以对同一个接口进行不同的业务逻辑,接口层的使用让代码逻辑看起来更加的清晰,服务实现层主要实现的是对数据的处理,通过调用数据层的方法来从数据库中取出相应的数据,根据固定返回条件,返回给控制器的业务逻辑中,控制器对返回来的数据进行处理,经过业务逻辑处理,通过Model类进行封装,返回给前端控制器。
3.3数据层
该层主要对数据进行更新和读取,作为业务层和数据库的中间层,主要为逻辑服务提供数据,通过DAO层对数据进行分离,将数据逻辑和数据源进行分离操作,并最终能够实现对数据对象的基本操作。
数据库的需求分析:
数据库需求分析属于软件过程的需求分析阶段,数据库分析的作用是通过搜集用户的需求来指导数据库的设计。
通过以上分析,现在可以将数据库的需求整理出来:
(1)用户信息表:包括用户名,密码,电话号码, (2)用户角色表:用户的id,标志位判断是否是管理员,还是普通用户,还是超级管理员。(3)内容表,该表存储了书籍的信息。包括的字段有:书名,简介,书籍id,书籍编号,标志位判断内容的分类信息。(4)图片表:存储图片的信息。(5)评论表,该表存储了对书籍的评论内容,包括评论的内容,评论者,回复对象的用户名,用户id,回复对象的id,文章的id.
代码地址:https://gitee.com/skyspatur/demo
参考文献
[1]郭炳宇,王田甜等.移动互联后台设计与开发[M].北京:高等教育出版社,2017
[2]郭炳宇,王田甜等.移动互联Web前端开发[M].北京:高等教育出版社,2017
基金项目:江苏大学2019年度大学生实践创新训练计划项目,项目编号:201910299504X
作者简介:
熊宏杰(2000.3--),,男,汉族,甘肃华亭人,江苏大学本科在读,计算机方向。
李祥(2000.9--),男,汉族,江苏宿迁人,江苏大学本科在读,计算机方向。
余筱(2000.8--),女,汉族,江苏南京人,江苏大学本科在读,计算机方向。