文章目录
摘 要
随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理。在现实运用中,应用软件的工作规则和开发步骤,采用Java技术建设合同管理app。
本设计主要实现集人性化、高效率、便捷等优点于一身的合同管理app,完成用户管理、合作分享、合作分类列表、合同分类、合同信息等功能模块。系统通过浏览器与服务器进行通信,实现数据的交互与变更。只需通过一台电脑,动动手指就可以操作系统,实现数据通信管理。整个系统的设计过程都充分考虑了数据的安全、稳定及可靠等问题,而且操作过程简单。本系统通过科学的管理方式、便捷的服务提高了工作效率,减少了数据存储上的错误和遗漏。
合同管理app使用Java语言,采用基于 MVC模式的JavaEE技术进行开发,使用 MyEclipse 2017 CI 10 编译器编写,数据方面主要采用的是微软的MySQL关系型数据库来作为数据存储媒介,配合前台HTML+CSS 技术完成系统的开发。
关键词:合同管理;Springboot框架;APP
目 录
[第1章 绪论... 1](#第1章 绪论… 1)
[1.1 研究意义... 1](#1.1 研究意义… 1)
[1.2研究背景... 1](#1.2研究背景… 1)
[1.3 本文的组织结构... 2](#1.3 本文的组织结构… 2)
[第2章 相关技术介绍... 2](#第2章 相关技术介绍… 2)
[2.1 J2EE技术... 2](#2.1 J2EE技术… 2)
[2.2 Springboot框架... 2](#2.2 Springboot框架… 2)
[2.3 MySQL数据库... 2](#2.3 MySQL数据库… 2)
[2.4B/S结构... 2](#2.4B/S结构… 2)
[2.5 JavaScript运行模式... 2](#2.5 JavaScript运行模式… 2)
[2.6 B/S体系工作原理... 3](#2.6 B/S体系工作原理… 3)
[第3章 系统分析... 5](#第3章 系统分析… 5)
[3.1 可行性分析... 5](#3.1 可行性分析… 5)
[3.2 功能需求分析... 5](#3.2 功能需求分析… 5)
[3.2.1 前台用户功能... 7](#3.2.1 前台用户功能… 7)
[3.2.2 管理员功能... 7](#3.2.2 管理员功能… 7)
[3.3 非功能需求分析... 8](#3.3 非功能需求分析… 8)
[3.4 安全性需求分析... 8](#3.4 安全性需求分析… 8)
[3.4.1 系统的安全性... 8](#3.4.1 系统的安全性… 8)
[3.4.2 数据的安全性... 8](#3.4.2 数据的安全性… 8)
[3.5 数据流程分析... 8](#3.5 数据流程分析… 8)
[第4章 系统设计... 10](#第4章 系统设计… 10)
[4.1 系统架构设计... 10](#4.1 系统架构设计… 10)
[4.2 系统总体设计... 10](#4.2 系统总体设计… 10)
[4.3 系统功能设计... 11](#4.3 系统功能设计… 11)
[4.4 数据库设计... 12](#4.4 数据库设计… 12)
[4.4.1 数据需求分析... 12](#4.4.1 数据需求分析… 12)
[4.4.2 数据库概念设计... 12](#4.4.2 数据库概念设计… 12)
[4.4.3 数据库表设计... 13](#4.4.3 数据库表设计… 13)
[第5章 系统实现... 16](#第5章 系统实现… 16)
[5.1 数据库访问层的实现... 16](#5.1 数据库访问层的实现… 16)
[5.2 注册模块的实现... 16](#5.2 注册模块的实现… 16)
[5.3 登录模块的实现... 20](#5.3 登录模块的实现… 20)
[5.4 用户资料修改模块的实现... 27](#5.4 用户资料修改模块的实现… 27)
[5.5 合作分享管理模块的实现... 27](#5.5 合作分享管理模块的实现… 27)
[5.6 合同分类管理模块的实现... 28](#5.6 合同分类管理模块的实现… 28)
[5.7合同信息管理模块的实现... 30](#5.7合同信息管理模块的实现… 30)
[第6章 系统测试... 35](#第6章 系统测试… 35)
[6.1 测试目的... 35](#6.1 测试目的… 35)
[6.2 功能测试... 35](#6.2 功能测试… 35)
[6.3 性能测试... 36](#6.3 性能测试… 36)
[第7章 总结与展望... 37](#第7章 总结与展望… 37)
[参考文献... 38](#参考文献… 38)
[致谢... 40](#致谢… 40)
系统设计
1.1.1 前台用户功能
前台用户可分为未注册用户需求和以注册用户需求。
未注册用户的功能如下:
注册账号:用户填写个人信息,并验证手机号码。
浏览资讯:用户可以浏览主页面的资讯来了解小程序的最新网站信息。
已注册用户的功能如下:
登录:根据账号密码进行登录操作。
合作分享信息:用户可以查看合作分享资料信息。
资讯:可以查看资讯信息。
1.1.2 管理员功能
管理员可分为普通管理员和超级管理员。
管理员功能如下:
修改密码:管理员可以随时修改自己进入小程序的登录密码,以保证小程序的安全性。
合同分类管理:对合同分类进行维护,添加、删除、修改信息。
资讯管理:对资讯信息进行维护,添加、删除、修改信息。
合同信息管理:对合同信息信息进行维护管理。
合作分类列表数据管理:对合作分类基本信息数据进行维护管理。
用户在填写数据的时候必须与注册页面上的验证相匹配否则会注册失败,注册页面的表单验证是通过JavaScript进行验证的,用户名的长度必须在6到18之间,邮箱必须带有@符号,密码和密码确认必须相同,你输入的密码,小程序会根据你输入密码的强度给出指定的值,电话号码和身份证号码必须要求输入格式与生活相符合,当你前台验证通过的时候你点击注册,表单会将你输入的值通过name值传递给并保存到数据库中。
Java
* 注册
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(HttpServletRequest request) throws IOException {
// 查询用户
Map<String, String> query = new HashMap<>();
Map<String,Object> map = service.readBody(request.getReader());
query.put("username",String.valueOf(map.get("username")));
List list = service.selectBaseList(service.select(query, new HashMap<>()));
if (list.size()>0){
return error(30000, "用户已存在");
}
map.put("password",service.encryption(String.valueOf(map.get("password"))));
service.insert(map);
return success(1);
}
public Map<String,Object> readBody(BufferedReader reader){
BufferedReader br = null;
StringBuilder sb = new StringBuilder("");
try{
br = reader;
String str;
while ((str = br.readLine()) != null){
sb.append(str);
}
br.close();
String json = sb.toString();
return JSONObject.parseObject(json, Map.class);
}catch (IOException e){
e.printStackTrace();
}finally{
if (null != br){
try{
br.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
return null;
}
public void insert(Map<String,Object> body){
E entity = JSON.parseObject(JSON.toJSONString(body),eClass);
baseMapper.insert(entity);
log.info("[{}] - 插入操作:{}",entity);
}
主要由两部分组成,登录前的登录界面以及登录后的用户功能界面。登录界面,要求用户输入用户名和密码,当用户名和密码其中一个输入为空时,给出提示"用户名,密码不能为空"。获取用户名和密码后到数据库中查找,如果用户名存在,以及对应的密码正确,则登录成功,否则登录失败。登录失败后给出提示,并把焦点停在文本框中。登录成功后将该次会话的全局变量username设置为用户名。登录成功后进入会员的功能模块,主要有会员基本信息修改,已经发布课程信息管理,发布信息,和退出功能。退出功能是清除全局变量username的值,并跳回到首页。
如果合作分享的信息需要修改,管理员可以通过查询合作分享的基本信息来查询合作分享,查询合作分享是通过ajax技术来进行查询的,需要传递合作分享的标题、编号等参数然后在返回到该页面中,可以选中要修改或删除的那条信息,如果选中了超过一条数据,页面会挑一个窗口提醒只能选择一条数,如果没有选中数据会挑一个窗口题型必须选择一条数据。当选择确认修改的时候,会根据传过来的id到数据库查询,并将结果返回到修改页面中,可以在修改页面中修改刚刚选中的信息当点击确认的时候from表单会将修改的数据提交到并保存到数据库中,就是说如果提交的数据数据库中存在就修改,否则就保存。
管理员可以对合同分类信息进行管理。将页面session中的用户账号userId和发表合同管理文字框内容传入控制层LiuyanAction,调用addLiuyan方法,通过LiuyanDAOImp向数据库合同分类管理表插入,将结果返回lyb.jsp界面。
此页面的关键是编写合同信息管理信息,包括合同信息等。单击提交按钮以完成信息的添加。如果未写入完整的合同信息信息,例如,如果未写入合同信息,小程序将给出相应的错误提示,并且无法成功输入。数据以概念的形式以onsubmit ="return checkForm()"的形式写入以进行检查,checkForm()函数是一种用于写入数据的不同类型的校对方法,是不是为空也是经过form表单中的οnsubmit="return checkForm()来检查。
管理员点击左侧菜单"合同信息管理",页面跳转到合同信息信息管理外观,调用合同信息查询所有共享车位信息。并将信息密封到数据集合List,绑定到请求对象,然后页面跳转到相应的jsp,显示合同信息信息,单击删除按钮完成合同信息信息的删除。
开发环境
开发工具:idea、Navicat
数据库:MySQL8.0
环境配置:jdk1.8 、Tomcat8.5
开发人员:IT012201