基于SSM架构的网络租车系统
摘 要
随着网络应用的兴起,人们的生活也因此发生了翻天覆地的变化。人们开始利用计算机来解决我们生活中的实际问题,由此诞生了许多互联网产业,同时也有不少传统服务业已经向互联网服务业进行改变,利用网络技术为人们的生活提供更优质的服务。
本文首先介绍了开发项目使用的框架以及所用插件,对其的优势进行了介绍。然后是本项目的需求分析,主要讲述了本项目中各个角色以及其所拥有的功能和权限。其次是本项目的数据库设计,包括每个字段的类型和长度以及说明。然后是本系统的详细开发流程,展示了项目中的主要页面及主要代码。最后是将对系统进行一些测试,将测试结果进行展示。
关键词 :SSM框架;JAVA技术;租车系统
Abstract
With the rise of web applications, people’s lives have undergone earth-shaking changes. People began to use computers to solve practical problems in our lives. Many Internet industries have been born. At the same time, many traditional service industries have changed the Internet service industry and used network technologies to provide people with better services.
This article first introduced the framework used by the development project and the plug-ins used, and introduced its advantages. This is followed by an analysis of the needs of this project. It mainly describes the various roles in this project and their own functions and permissions. Followed by the database design of this project, including the type and length of each field and description. This is followed by a detailed development process for the system, showing the main pages and major codes in the project. Finally, some tests will be performed on the system and the test results will be displayed.
Keywords : SSM Framework; JAVA Technology; Car Rental System
1.绪论
1.1 课题来源
在学校期间,自己通过在老师的指导下完成了一个简易的租车网页,仅仅是将数据库中数据用表格展示,并输入车辆数和天数后完成租车。在公司实习期间,接触到了spring + srpingmvc + mybatis(以下简称SSM)的JavaWeb框架,发现其操作流程清晰,代码不冗杂。经过一段时间的工作积累,决定将以前做的租车系统进行优化,使用SSM框架,maven技术来做一个小型租车网站。
1.2 课题背景
在互联网产业迅速发展的今天,一些线下产业正在被侵蚀,所以需要向互联网企业转型,这样才能不被时代所淘汰。
而作为租车行业,需要提高商家的知名度。这样用户才能更好的了解商家和车辆信息,以及对比价格。现在每个城市都还存在一些小型租车公司,他们没有一个统一的平台,传播度不高,普及的用户不广。对于不了解地方的外地游客来说,并不能获取租车的信息。所以说开发一个租车系统将各个城市中的线下租车公司进行资源整合。对用户来说,可以更清晰的了解租车公司的车辆信息,以及商家位置,方便了用户。对商家而言,将自己的信息放到网络上,用户可以更加了解自己的店铺,可以提高知名度,也可以更快捷的为用户服务。这正是本项目开发的目的和意义所在。
1.3 系统设计的目标
基于SSM框架的网络租车系统,其开发主要包括前台页面数据的展示,后台是基于MySQL数据库的restful api开发,利用ajax请求api将数据展示在前台页面。
-
用户邮箱注册与验证码登陆 :用户注册后需要通过邮箱所发邮件链接进行激活,激活成功后才能登陆,否则会提示未激活。当用户选中车辆需要租赁时会需要用户登陆
-
查看用户基本信息 :修改用户密码,上传用户头像等
-
车辆信息展示 :使用轮播图展示车辆图片,展示基本车辆信息,使用百度地图api展示商家位置
-
商家信息展示 :展示基本商家信息,展示商家下的车辆。使用百度地图api展示商家位置
-
邮件提醒 :用户成功租赁车辆后会向用户和商家发送邮件提醒商家和用户
-
车辆管理 :上传车辆,修改车辆
-
商家管理 :上传商家,修改商家
-
管理员管理 :设置管理员,删除管理员
2.系统可行性分析
2.1 经济可行性
由于本次开发所运用技术都是免费开源的技术或者框架,不存在版权收费问题。而且这个项目是JavaWeb项目,开发完成后仅需将war包放到服务器上并且搭配一个域名就可完成一个网站的搭建。用户通过手机或电脑都可以进行访问,不需要很强的配置。而商家上传车辆也仅需要一个电脑和车辆图片,就可完成上传,对于电脑配置也没有很大的要求。所以本系统在经济上就有完全的可行性。
2.2 技术可行性
一个项目是否可以完成开发,还是要看技术是否能达到要求。
由于在学校期间学习了Jsp,Oracle等技术,对于前台页面的开发还是可以完成的。然后又经过一段时间的实习,学到了更加优秀的技术,并且接触到ssm框架。使自己的眼界和技能都提升了一大步。Mysql和oracle在基本操作上的差异不是很大,而且在公司实习也是用的mysql,并且mysql体积小。经过比较最后决定使用mysql作为数据库。前台页面主要是利用jsp,并且利用bootstrap,jQuery,arttemplter,validform等js插件完成前台页面简洁,优美,功能强大的数据展现。后台部分由于采用了框架,所以对功能实现了分层,使得各个代码之间的逻辑清晰,代码简洁明了。所以掌握的技术还是可以完成整个系统的开发,在技术上也具有可行性。
2.3 操作可行性
操作可行性是指系统开发完成并上线后,用户和商家对于本系统的掌握程度。
由于本系统整体页面简洁,不冗杂,操作按钮清晰,用户浏览清晰。操作简单。
商家也仅需会基本的计算机操作,就可完成车辆上传等操作。所以操作上具有可行性。
2.4 维护可行性
一个系统是否能够长远运行,需要有人一直维护系统,对出现的简单错误进行修改,对一些复杂性的错误及时提醒。
本系统在开发时运用了log4g进行了错误日记记录,维护人员可以根据错误日记信息快速找到错误点,进行判断修改。所以在维护上具有可行性。
3.关键技术介绍
3.1 软件环境
软件环境是一个程序的运行土壤,开发程序时需要就要设定好的,如果环境错误或缺失很容易造成系统崩溃或运行错误。
-
操作系统 :Window10专业版
-
Jdk :1.8.0
-
服务器 :apache-tomcat-9.0.6
-
数据库 :MySQL 5.7
-
系统开发工具 :IntelliJ IDEA 2017.2.6
3.2 开发技术简介
本软件系统开发所用到的技术:MySQL 、Java、JavaScrapt、jQuery、Sping、Spring MVC、MyBatis、Maven。
3.2.1 Java简介
Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性。
由于是将源码编译成class字节码文件,最后由jvm虚拟机来解释执行字节码文件。所以具有“一次开发,到处运行”的跨平台特性。
3.2.2 JavaScrapt简介
JavaScirpt一种高级编程语言,是一种基于原型,函数先行的语言。
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
基本特点 :
-
是一种解释性脚本语言(代码不进行预编译)
-
主要用来向HTML页面添加交互行为
-
可以直接嵌入HTML页面,但写成单独的js文件有利于结构和行为的分离
常用来完成以下任务 :
-
嵌入动态文本于HTML页面
-
对浏览器事件作出响应
-
读写HTML元素
-
在数据被提交到服务器之前验证数据
-
检测访客的浏览器信息
-
控制,包括创建和修改等
3.2.3 jQuery简介
jQuery是一套跨浏览器的JavaScript库,简化了HTML与JavaScript直接的操作,是目前最受欢迎的JavaScript库。
jQuery的语法设计使得很多基本操作变得容易,如选择DOM节点、操作文档对象,创建动画效果、处理事件、以及开发Ajax程序。并且有良好的扩展性,可以基于jQuery开发许多插件。
3.2.4 MySQL简介
MySQL拥有体积小、速度快、稳定性高等特点,对于一些数据量不是特别大的中小型网站而言MySQL是最佳的数据库。工作模式是基于客户机/服务器结构。并且有良好的跨平台特性,能够在大部分操作系统上运行。
基本特点:
-
为多种編程语言提供了API
-
支持多线程,充分利用CPU资源,支持多用户
-
优化的SQL查询算法,有效地提高查询速度
-
可以处理拥有上千万条记录的大型数据库
3.2.5 Spring简介
主要解决业务逻辑层和其他各层的松耦合问题,所以整个系统都是面向接口的编程思想。并且采用控制反转(Inversion of Control,IoC)原则的配置管理。使组件应用程序更加方便快捷。
3.2.6 Spring MVC简介
MVC:(Model-view-controller)模式是软件工程中一种常见的软件架构模式,把软件系统总体分为三个大模块:模型(Model)、视图(View)和控制器(Controller)。
-
视图层 :只是负责页面的渲染,布局和数据的展示。只需通过向后台请求数据就可完成展现。不再考虑后台数据逻辑的处理
-
控制层 是将视图层发送的请求拦截,再根据不同场景及数据要求调用不同的处理方法
-
模型层 :主要是后台逻辑处理,针对不同业务场景或需求制定不同的算法,处理不同的数据进行拼装。实现不同的功能
3.2.7 MyBatis 简介
Mybatis是一个Java持久化的框架,它通过XML描述符或注解把对象与存储过程或SQL语句关联起来。与其他类似的对象关系映射框架不同的是,Mybatis并不是将Java对象与数据库表关联,而是将Java方法与Sql语句关联。
3.2.8 Maven简介
Maven:一个软件项目管理及自动构建。
Maven是一个项目管理和整合的工具。Maven为开发者提供了一套完整的构建生命周期框架。开发团队基本不用花多少时间就能自动完成工程的基础构建配置,因为Maven使用了一个标准的目录结构和一个默认的构建生命周期。在创建报告、检查、构建和测试自动配置时,Maven可以让开发者的工作变得更简单。
3.3 应用插件简介
本软件系统开发所用到的插件:Validform验证表单插件、bootstrap框架、autoComplate自动补充插件,arttemplete模板插件、dialog弹出框插件、idcode插件。
3.3.1 Validform表单验证
用于前台表单页面的校验,并且可以自定义校验类型,以及已有的限定规则,使得表单校验变得很简单。
3.3.2 bootStrap框架
Bootstrap,来自 Twitter,是目前很受欢迎的前端框架。Bootstrap 是基于 HTML、CSS、JavaScript 的,它简洁灵活,使得 Web 开发更加快捷。 它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。Bootstrap提供了优雅的HTML和CSS规范,它即是由动态CSS语言Less写成。Bootstrap一经推出后颇受欢迎,一直是GitHub上的热门开源项目,包括NASA的MSNBC(微软全国广播公司)的Breaking News都使用了该项目。国内一些移动开发者较为熟悉的框架,如WeX5前端开源框架等,也是基于Bootstrap源码进行性能优化而来。
3.3.3 autoComplete自动填充
搜索关键字输入后,会将符合条件的结果以特定格式展现在输入框下方。
3.3.4 arttemplate 模板插件
art-template 是一个简约、超快的模板引擎。
特性:
-
拥有接近JavaScript渲染极限的性能
-
调试友好:语法、运行时错误日志精确到模板所在行;支持在模板文件上打断点
-
支持Experss、Koa、Webpack
-
支持模板继承与子模板
3.3.5 dialog 弹出框插件
弹出框,相比于原生的alert()方法更美观,可自定义标题和按钮,也可设定回调事件。
3.3.6 idcode 验证码插件
验证码插件。相比于后台的验证码,前台验证码具有速度快,不受网络速度的限制的优势。
4.系统概要设计
4.1 需求分析
用户总体分为三种:普通用户,管理员,超级管理员。
-
超级管理员 :是网站的负责人,可以新建商家,并可以对商家信息进行修改,也可以删除违法或不再继续运营的商家。也可以上传车辆,但是需要指定商家
-
管理员 :商家的负责人,可以上传车辆,商家指定为自己所在的商家。也可以修改车辆,通过条件筛选车辆。删除不再继续租赁的车辆
-
用户 :浏览车辆,根据条件筛选车辆,登录成功后租赁车辆。用户注册时没有头像,有一个默认头像,进入个人信息页面后可以修改自己的头像。并修改自己的用户名
这三种身份都是用户,都需要注册,超级管理员是预先设定的。所以数据库中需要一个用户表,然后一个字段说明用户级别。一个表存储商家下的管理员。
4.1.1 用户需求分析图
4.1.2 管理员需求分析图
4.1.3 超级管理员需求分析图
4.2 数据库设计
数据库名 :car_project
表名 :car 车辆表
序号 | 列名 | 数据类型 | 长度 | 小数位 | 主键 | 允许空 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | car_id | Varchar | 255 | 是 | 否 | Java的uuid随机生成 | ||
2 | car_brand | Varchar | 255 | 否 | 车辆品牌 | |||
3 | car_name | Varchar | 255 | 否 | 车辆名称 | |||
4 | car_type | Varchar | 255 | 否 | 车辆类型 | |||
5 | car_image | Varchar | 255 | 否 | 车辆图片,多张图片之间用“,”拼接 | |||
6 | car_price | Decimal | 10 | 2 | 否 | 价格 | ||
7 | car_amount | Int | 10 | 否 | 数量 | |||
8 | car_people | Int | 10 | 否 | 载人数 | |||
9 | car_good | Decimal | 10 | 否 | 载货量 | |||
10 | car_info | Varchar | 255 | 否 | 车辆描述信息 | |||
11 | rent_count | Int | 10 | 否 | 租赁次数 | |||
12 | shop_id | Varchar | 255 | 否 | 商家id | |||
13 | car_milage | Decimal | 10 | 否 | 里程数 | |||
14 | car_time | Date | 否 | 购买时间 | ||||
15 | user_id | Varchar | 255 | 否 | 上传者id |
表名 :user 用户表
序号 | 列名 | 数据类型 | 长度 | 小数位 | 主键 | 允许空 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | user_id | Varchar | 255 | 是 | 否 | 用户的标识,注册时随机生成的字符串 | ||
2 | user_count | Varchar | 255 | 否 | 登录账号 | |||
3 | user_name | Varchar | 255 | 否 | 用户的名称 | |||
4 | user_email | Varchar | 255 | 否 | 用户的邮箱地址 | |||
5 | user_password | Varchar | 255 | 否 | 用户密码 | |||
6 | user_registration | Date | 10 | 2 | 否 | 注册时间 | ||
7 | is_active | int | 10 | 否 | 0 | 是否激活,用户注册后需通过邮件激活 | ||
8 | rent_count | int | 10 | 否 | 0 | 租赁次数 | ||
9 | user_image | varchar | 10 | 否 | Default.png | 用户头像 | ||
10 | is_admin | int | 255 | 否 | 0 | 0 用户,1管理员,2 超级管理员 |
表名 :shop 商家表
序号 | 列名 | 数据类型 | 长度 | 小数位 | 主键 | 允许空 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | shop_id | varchar | 255 | 是 | 否 | 商家id | ||
2 | shop_name | varchar | 255 | 否 | 商家名称 | |||
3 | shop_phone | int | 11 | 否 | 商家联系方式 | |||
4 | shop_email | varchar | 255 | 否 | 商家邮箱 | |||
5 | shop_location | varchar | 255 | 否 | 商家位置 | |||
6 | jingdu | decimal | 10 | 7 | 否 | 位置的经度 | ||
7 | weidu | decimal | 10 | 7 | 否 | 位置的纬度 |
表名 :order订单表
序号 | 列名 | 数据类型 | 长度 | 小数位 | 主键 | 允许空 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | order_id | varchar | 255 | 是 | 否 | 订单id | ||
2 | user_id | varchar | 255 | 否 | 用户id | |||
3 | shop_id | varchar | 255 | 否 | 商家id | |||
4 | car_id | varchar | 255 | 否 | 车辆id | |||
5 | price | decimal | 10 | 2 | 否 | 价格 | ||
6 | order_time | date | 否 | 订单时间 |
表名 :admin管理员表
序号 | 列名 | 数据类型 | 长度 | 小数位 | 主键 | 允许空 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | id | varchar | 255 | 是 | 否 | id | ||
2 | user_id | varchar | 255 | 否 | 用户id | |||
3 | shop_id | varchar | 255 | 否 | 商家id |
5.系统详细设计
5.1 用户注册与登陆
5.1.1 用户注册
用户注册页面
用户登录代码
用户登录后根据用户等级跳转到不同页面,同时将用户的头像地址,id,用户昵称,等级存放到cookies中。
用户注册如图4所示需要邮箱地址,因为邮箱是联系商家或用户的一个主要方式。并且在失去焦点后会向后台发送校验请求。校验邮箱、用户名是否被注册。确定密码失去焦点后会自动校验与第一次输入密码是否一致。验证码失去焦点后会自动校验与图片内文字是否一致。校验全部通过后完成注册。
完成注册后,系统会自动向注册邮箱发送一封激活账户的邮件,用户点击邮件内的链接可以将账户进行激活。
5.1.2 用户激活
用户通过邮件内的链接点击进行是如图6所示的页面。
出现这样的页面,则标识该用户已经成功激活。并且在3秒后会自动跳转到登录页面。
5.1.3 用户登陆
用户在页面点击进入或激活成功后会进入登录页面。
表单中也用到了Validform表单校验,用来检测用户名是否存在、密码是否与数据库中存储的密码是否一致、验证码是否与图片内文字是否一致。通过后会跳转到首页,并且在点击租赁车辆时如果未登录,也会跳转到登录页面。
用户登录成功后会向cookies中存储信息,这样在不同页面也可以检查到用户是登录状态。
5.2 头部栏与底部栏
本软件系统中其他页面都通过:
jsp
<jsp:include page=”public/header.jsp”></jsp:include>
<jsp:include page=”public/footer.jsp”></jsp:include>
命令将头部栏和底部栏引入到其他页面。
5.2.1 头部栏
未登录时头部栏如图8所示,显示的是登录注册按钮,当登录后会变成图9所示,头部栏展示用户头像和用户昵称,以及注销按钮。
输入框可对车辆和商家进行搜索,搜索结果如图11所示。关键字可以从车辆的品牌、类型、名称来搜索。也可通过商家名称进行搜索。
如图10所示,对输入框设置键盘抬起事件。并设置一个0.8秒的延迟。设置延迟主要是为了减少搜索次数,如果不设置延迟,在一些输入法或系统下会将每次按键都发送一次请求,设置后会将0.8秒后的输入框内文字进行查询。这样会减少查询次数,减少等待时间。然后根据返回数据的不同对前台的内容设置不同的格式。最后将查询到的数据展示。
5.2.2 底部栏
底部栏主要展示的是开发者信息,以及版权信息。并且加入了邮件的超链接。
html
<a href=mailto:ytulnj@163.com>
点击超链接会自动调用电脑的邮件发送程序,来给指定的邮箱发送邮件。
5.3 首页
首页是一个网站的主页面,是一个网站的脸面,首页的好坏足够影响系统在用户心中的形象。所以要求首页简洁大方,逻辑清晰,可操作性良好。本网站的首页头部和底部嵌入了头部栏和底部栏。中间放入了一个轮播图,展示商家或网站的广告。再向下则是筛选条件,通过筛选条件确定下面的车辆展示。 筛选条件中有车辆品牌,车辆类型,车辆价格等条件。并且车辆价格也可用户自己输入。如果选择错误也可通过重置按钮取消选择。并且三个条件可以联合查询。如果在该查询条件下没有车辆会提示,该查询条件下没有车辆。 下面车辆框展示车辆的图片,车辆的名称、品牌、价格、剩余车辆、租赁次数,以及商家的名称。鼠标移入后会显示边框,提醒用户正在查看的车辆。点击商家名称也可进入商家信息页面。点击车辆框进入车辆信息页面。
5.4 详细页面
车辆详情页和商家详情页都是在detail.jsp展示。通过地址栏中的参数,如果是carId则是展示车辆详情页面,如果是shopId则是展示商家详情页面。
在详情页会调用百度地图的api将商家位置展示在地图上,并且会定位到用户位置,然后在地图上展现用户到商家的驾车路线。
传参为商家的经纬度,然后将商家经纬度进行标识在地图中,并设置为15级别的地图大小。并开启地图的鼠标滑轮滚动。然后定位用户位置,将用户位置与商家位置设置为起点和终点,最后驾车路线就会展示在地图中。
5.4.1 车辆详情页面
通过车辆id查询车辆信息,以表格形式展现在页面上,车辆图片以轮播图的形式进行播放展示,右侧为租赁车辆的输入框,可以输入租赁的天数以及辆数。如果输入车辆数大于剩余数量则校验不通过。并且如果用户未登录会弹出提示框,提示用户登录,然后跳转到登录页面。
下方是展示该车辆所在的商家的一些基本信息。
然后是相同车型的车辆展示,并且限制了数量在20辆以内。
5.4.2 商家详情页面
通过商家id进行查询,将基本信息以表格形式进行展现,右侧通过百度地图展示商家位置。下面展示该商家下的车辆进行展示。
5.5 用户页面
由与将不同身份的用户都放到一个页面下展示,并且根据身份不同需要展示的页面内容是不一样的。登录成功后,会在后台存储包括用户id、昵称、头像、身份级别等信息返回前台。前台接受到数据后会向cookies中存储用户信息。包括用户id,用户昵称,用户头像等。使得在不同标签中都可以检测到用户的状态。
如图16所示,用户在进入用户页面时会根据用户的等级来决定模板,这样就可以让不同身份的用户看到不同的信息。
5.5.1 普通用户
用户头像开始是一个默认图片,用户可进入页面自行修改。并且可以进行修改昵称和密码。然后又显示的是一些不可编辑的信息,包括注册时间,邮箱,登录账号和租赁次数等。最后会将租赁的记录展示出来,并且做了限制,只显示最近的20条记录。在租赁记录中点击车辆名称和商家名称都可以进入到车辆或商家的详情页。
5.5.2 普通管理员
普通管理员是作为商家下的管理人员,可以进行上传车辆、编辑车辆和删除车辆的操作。点击上传车辆按钮会进入到上传车辆页面,并且上传车辆页面表单中的商家名称固定为所在商家的名称且不可编辑。删除车辆可以单个删除也可通过多选按钮进行批量删除。在删除时会弹出提示框,提醒此操作是危险操作。点击车辆名称可以进入编辑车辆页面。
5.5.3 超级管理员
超级管理员作为网站的负责人,可以设置新建商家、编辑商家和删除商家。点击新建商家可以进入新建商家页面。点击商家列表中的商家名称可以进入编辑商家页面。通过删除按钮可以删除单个或批量删除商家,删除时会弹出提示框,提醒此操作是危险操作。
同时超级管理员也可以为商家设置管理员。由于管理员也是一个用户,所以管理员也需要进行注册并且进行激活。在输入框通过搜索用户账号进行搜索,并且会对输入的关键字进行查询。在搜索商家名称时也可通过关键字进行提示筛选。当用户账号和商家名称输入完成之后点击设置会将输入的用户设置为输入的商家下的管理员。同时超级管理员也有上传车辆的权限,但是点击上传车辆按钮进入上传车辆页面商家名称为空,需要手动输入。原则上超级管理员是不会对车辆进行操作。
5.6 车辆页面
上传车辆和编辑车辆都是在car.jsp页面完成,通过后面是否带参数判断是编辑车辆还是上传车辆。
由于车辆需要图片来进行展示,所以会有车辆图片的编辑操作,但是不能确定管理员会上传几张图片,所以设定一个按钮,点击后会打开文件框来上传图片,并限制最大数量。在上传图片时可以会操作失误,图片错误,所以需要预览和删除功能。在编辑车辆页面还需要将之前的图片进行展示,如果数量等于最大数量则不允许继续上传,不然则可以继续上传图片,也可对之前的图片进行删除操作。
5.6.1 上传车辆页面
点击上传图片按钮会弹出上传文件窗口,并且可以将上传的图片在右侧进行预览。并且在图片下方有一个删除按钮,点击删除后可以将图片删除,这样可以避免点击失误,并且如果对图片不满意可以将其删除。并且限制了最多只能上传6张图片。
上传成功后会显示如图22所示页面。点击继续上传后可以跳转到上传车辆页面,否则会在3秒后回到首页。
5.6.2 编辑车辆页面
可以将以前上传的图片进行删除,也可修改其他基本信息。但是租赁次数是没法修改的。
修改完成后会出现提示页面并自动返回到首页。
5.7 商家页面
新建商家和编辑商家都是在shop.jsp页面完成,通过判断是否带参数来确定是新建商家还是编辑商家。
5.7.1 新建商家页面
商家需要的属性有商家名称,商家联系方式,商家邮箱,商家位置,商家经纬度。
其中商家名称、商家联系方式、商家邮箱、商家位置都不能重复。商家联系方式作为用户联系商家的方式,商家邮箱作为用户成功租赁车后系统自动向商家发送邮件的地址,商家位置是作为一个商家具有线下实体店的主要信息。商家经纬度主要是作为百度地图标识商家位置的主要参数。
5.7.2 编辑商家页面
超级管理员点击商家名称后进入编辑商家页面,展示商家的基本信息,输入框不可编辑,并且改变了输入框的样式,让输入框只有下边框。点击编辑按钮后输入框可编辑,显示边框。
5.8 错误页面
错误页面主要是对系统可以出现的错误进行预测并设置其错误后显示的页面。本系统主要设置了404错误和500错误后显示的页面。
5.8.1 404页面
当地址栏输入的地址不存在时,会自动拦截到404页面,中间会有一个动画效果,并且右侧有个消息框,点击里面的回到首页可以回到系统的首页。
5.8.2 500错误页面
并不会将错误信息进行展示,只是拦截,并展示这个页面。
5.9 后台代码说明
后台逻辑层次分为controller、dao、data、service、util五个包。Controller层是作为前台与后台的链接,起到拦截调用分发的作用。Dao层是对数据库的操作,主要是对数据库操作的方法,其中一个java接口对于一个相同名称的xml文件,在xml中编写sql。Data层是对数据库中表的映射,一个数据库的表对应一个类文件。Service中是主要逻辑的编写,其中service文件夹中还有一个impl文件夹,在service中编写接口,在impl中具体对方法进行实现。这样暴露接口后其他人员查看不到具体逻辑的实现。Util文件夹中是一些其他操作类,比如邮件发送,图片存储等方法
6.系统测试
6.1 后台代码测试
结构如图29所示:
测试类主要是对后台程序是否能够正常连接数据库,逻辑操作是否正确,方法能否被正确调用进行测试。主要是对dao层和service层进行测试。Dao层主要是看数据库操作结果是否正确。Service层主要是看逻辑操作是否正确。
6.2 程序运行测试
6.2.1 注册
注册页面测试图
用户收到邮件页面
用户激活页面
用户信息校验成功。并且注册邮箱会收到一份邮件,点击链接后会将用户激活。
6.2.2 登录
用户未激活页面
如果账号未激活,会出现提示信息。
6.2.3 修改头像测试
点击更好头像后会出现文件框,选择图片后可以实现图片预览,不点击保存是无法更换成功的,只能将图片展示。点击保存后,保存按钮消失,头部栏的头像也会发生改变。
6.2.4 租赁车辆测试
当租赁数量大于剩余车辆时会提示数量错误。
当未登录时会弹出提示框提示用户需要登录。
用户登录后再进行选择会提示所租车辆名称和天数,辆数以及价格。点击结算后系统会自动向用户和商家发送邮件进行提醒。
总结
毕业设计主要是对大学期间所学知识的检验,将所学知识转换成项目实战。这个项目也是将自己从学校学到的知识和从公司学到的知识进行融合,利用ssm框架完成一个小型网站的开发。从题目的选取、整个项目的需求分析、数据库设计、页面设计、具体代码实现、系统测试这些不管是整体架构还是琐碎细节都需要自己来进行实现。这整个过程让我受益匪浅。
整体开发过程中遇到的错误还是很多的,但是经过自己的思考、网络资源的提示、同学老师的帮助,这些困难还是被一一克服了。
这个系统还有很多可以改进的地方,比如手机号验证码等、通过浏览器或ip地址定位进行导航、用户登录使用第三方账号比如QQ或微信。这也是以后需要完善的地方。
参考文献
[1] 梁弼.SSH框架整合技术研究及应用[J].西安文理学院学报:自然科学版,2011,14(3):16-19.
[2] 陈夫真.基于SSM的某高校教室管理信息系统的设计与实现[D].苏州:苏州大学,2012.
[3] 张锦煌,吴丽娟,梁舒婷.基于SSM整合框架开发的项目管理系统[J].电脑知识与技术,2015,11(11):103-105.
[4] 孙卫琴. Java面向对象编程[M]:北京:电子工业出版社, 2006.7 .168-172
[5] 阎宏. Java与模式[M]:北京:电子工业出版社, 2002.10..88-96
[6] 孙卫琴等著.基于MVC的Java Web设计与开发.北京:电子工业出版社,2012
[7] 陈雄华,林开雄,文建国.精通Spring 4.x:企业应用开发实战[M].北京:电子工业出版社,2017.1
[8] 张海藩.软件工程导论[M].北京:清华大学出版社,2013.
[9] 徐国智.MySQL数据库系统开发实例精粹[M].北京:电子工业出版社,2006
[10] 朱华方.基于SSM框架轻量级的分布式高考成绩管理系统设计与实现[D].济南:山东师范大学,2016.
[11] 胡启敏,薛锦云,钟林辉.基于Spring框架的轻量级J2EE架构与应用[J].计算机工程与应用,2008(05):115-118
[12] 徐雯,高建华.基于Spring MVC及MyBatis的Web应用框架研究[J].微型电脑应用,2012,28(07):1-4
参考文献
- 基于RESTful的车贷管理系统的设计与实现(西安电子科技大学·赵秀银)
- 基于B2B模式的企业用车系统的设计与实现(北京交通大学·魏靓洁)
- 工程车辆车联网智能管理平台综合技术研究和实现(天津城市建设学院·陈其霞)
- 基于MVC模式的车载服务平台监控管理系统研究(广东工业大学·梅本祥)
- 基于RESTful的车贷管理系统的设计与实现(西安电子科技大学·赵秀银)
- 基于RESTful的车贷管理系统的设计与实现(西安电子科技大学·赵秀银)
- 基于B2B模式的企业用车系统的设计与实现(北京交通大学·魏靓洁)
- 基于B/S模式汽车租赁管理系统的设计与实现(吉林大学·林锦标)
- 基于ASP.NET的车辆租赁网站的设计与实现(电子科技大学·郑新娜)
- 基于Struts框架和Ajax技术的汽车租赁管理系统设计与实现(解放军信息工程大学·李志强)
- 基于B/S模式汽车租赁管理系统的设计与实现(吉林大学·林锦标)
- 基于RESTful的车贷管理系统的设计与实现(西安电子科技大学·赵秀银)
- 基于ASP.NET技术的旅游汽车运营系统的设计与实现(北京工业大学·刘璇瑶)
- 线上租车网站系统的设计与实现(太原理工大学·马国华)
- 基于RESTful的车贷管理系统的设计与实现(西安电子科技大学·赵秀银)
本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:源码客栈 ,原文地址:https://m.bishedaima.com/yuanma/35402.html