0002Java安卓程序设计-springboot合同管理APP论文

news2024/11/25 3:00:44

文章目录

    • 摘 要
    • 目 录
    • 系统设计
    • 开发环境

摘 要

随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理。在现实运用中,应用软件的工作规则和开发步骤,采用Java技术建设合同管理app。

本设计主要实现集人性化、高效率、便捷等优点于一身的合同管理app,完成用户管理、合作分享、合作分类列表、合同分类、合同信息等功能模块。系统通过浏览器与服务器进行通信,实现数据的交互与变更。只需通过一台电脑,动动手指就可以操作系统,实现数据通信管理。整个系统的设计过程都充分考虑了数据的安全、稳定及可靠等问题,而且操作过程简单。本系统通过科学的管理方式、便捷的服务提高了工作效率,减少了数据存储上的错误和遗漏。

合同管理app使用Java语言,采用基于 MVC模式的JavaEE技术进行开发,使用 MyEclipse 2017 CI 10 编译器编写,数据方面主要采用的是微软的MySQL关系型数据库来作为数据存储媒介,配合前台HTML+CSS 技术完成系统的开发。

关键词:合同管理;Springboot框架;APP

目 录

第1章 绪论… 1

1.1 研究意义… 1

1.2研究背景… 1

1.3 本文的组织结构… 2

第2章 相关技术介绍… 2

2.1 J2EE技术… 2

2.2 Springboot框架… 2

2.3 MySQL数据库… 2

2.4B/S结构… 2

2.5 JavaScript运行模式… 2

2.6 B/S体系工作原理… 3

第3章 系统分析… 5

3.1 可行性分析… 5

3.2 功能需求分析… 5

3.2.1 前台用户功能… 7

3.2.2 管理员功能… 7

3.3 非功能需求分析… 8

3.4 安全性需求分析… 8

3.4.1 系统的安全性… 8

3.4.2 数据的安全性… 8

3.5 数据流程分析… 8

第4章 系统设计… 10

4.1 系统架构设计… 10

4.2 系统总体设计… 10

4.3 系统功能设计… 11

4.4 数据库设计… 12

4.4.1 数据需求分析… 12

4.4.2 数据库概念设计… 12

4.4.3 数据库表设计… 13

第5章 系统实现… 16

5.1 数据库访问层的实现… 16

5.2 注册模块的实现… 16

5.3 登录模块的实现… 20

5.4 用户资料修改模块的实现… 27

5.5 合作分享管理模块的实现… 27

5.6 合同分类管理模块的实现… 28

5.7合同信息管理模块的实现… 30

第6章 系统测试… 35

6.1 测试目的… 35

6.2 功能测试… 35

6.3 性能测试… 36

第7章 总结与展望… 37

参考文献… 38

致谢… 40

系统设计

1.1.1 前台用户功能

前台用户可分为未注册用户需求和以注册用户需求。

未注册用户的功能如下:

注册账号:用户填写个人信息,并验证手机号码。

浏览资讯:用户可以浏览主页面的资讯来了解小程序的最新网站信息。

已注册用户的功能如下:

登录:根据账号密码进行登录操作。

合作分享信息:用户可以查看合作分享资料信息。

资讯:可以查看资讯信息。

1.1.2 管理员功能

管理员可分为普通管理员和超级管理员。

管理员功能如下:

修改密码:管理员可以随时修改自己进入小程序的登录密码,以保证小程序的安全性。

合同分类管理:对合同分类进行维护,添加、删除、修改信息。

资讯管理:对资讯信息进行维护,添加、删除、修改信息。

合同信息管理:对合同信息信息进行维护管理。

合作分类列表数据管理:对合作分类基本信息数据进行维护管理。

image-20231104112303737

用户在填写数据的时候必须与注册页面上的验证相匹配否则会注册失败,注册页面的表单验证是通过JavaScript进行验证的,用户名的长度必须在6到18之间,邮箱必须带有@符号,密码和密码确认必须相同,你输入的密码,小程序会根据你输入密码的强度给出指定的值,电话号码和身份证号码必须要求输入格式与生活相符合,当你前台验证通过的时候你点击注册,表单会将你输入的值通过name值传递给并保存到数据库中。

img

     * 注册
     * @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的值,并跳回到首页。

img

如果合作分享的信息需要修改,管理员可以通过查询合作分享的基本信息来查询合作分享,查询合作分享是通过ajax技术来进行查询的,需要传递合作分享的标题、编号等参数然后在返回到该页面中,可以选中要修改或删除的那条信息,如果选中了超过一条数据,页面会挑一个窗口提醒只能选择一条数,如果没有选中数据会挑一个窗口题型必须选择一条数据。当选择确认修改的时候,会根据传过来的id到数据库查询,并将结果返回到修改页面中,可以在修改页面中修改刚刚选中的信息当点击确认的时候from表单会将修改的数据提交到并保存到数据库中,就是说如果提交的数据数据库中存在就修改,否则就保存。

img

管理员可以对合同分类信息进行管理。将页面session中的用户账号userId和发表合同管理文字框内容传入控制层LiuyanAction,调用addLiuyan方法,通过LiuyanDAOImp向数据库合同分类管理表插入,将结果返回lyb.jsp界面。

img

此页面的关键是编写合同信息管理信息,包括合同信息等。单击提交按钮以完成信息的添加。如果未写入完整的合同信息信息,例如,如果未写入合同信息,小程序将给出相应的错误提示,并且无法成功输入。数据以概念的形式以onsubmit =“return checkForm()”的形式写入以进行检查,checkForm()函数是一种用于写入数据的不同类型的校对方法,是不是为空也是经过form表单中的οnsubmit=”return checkForm()来检查。

管理员点击左侧菜单“合同信息管理”,页面跳转到合同信息信息管理外观,调用合同信息查询所有共享车位信息。并将信息密封到数据集合List,绑定到请求对象,然后页面跳转到相应的jsp,显示合同信息信息,单击删除按钮完成合同信息信息的删除。

img

开发环境

开发工具:idea、Navicat

数据库:MySQL8.0

环境配置:jdk1.8 、Tomcat8.5

开发人员:IT012201

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1170917.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

在Spring Boot中使用国产数据库连接池Druid

在我们实际开发过程中&#xff0c;我们经常使用的是DriverManager来获取&#xff0c;通过每次都向数据库建立连接时将Connection加载到内存中&#xff0c;然后验证用户名和密码&#xff0c;这段时间的消耗大致在0.0 5s - 1s左右&#xff0c;每次当我们需要获取数据库连接的时候…

“利用自动粘贴功能,一键粘贴网址,提升工作效率“

在快节奏的现代工作中&#xff0c;效率是关键。如果你经常需要复制和粘贴网址&#xff0c;那么你可能会浪费很多时间。幸运的是&#xff0c;我们的自动粘贴功能可以帮助你自动粘贴网址&#xff0c;一键即可完成&#xff0c;让你更加高效地工作。 首先&#xff0c; 我们要进入首…

操作系统复习(1)概述

一、序言 1.1简介 计算机系统组成&#xff1a;硬件操作系统 操作系统是计算机系统中的一个重要组成部分&#xff0c;它负责管理和控制计算机的硬件资源和软件资源&#xff0c;以及提供用户接口和其他功能 操作系统定义&#xff1a;操作系统是计算机系统中的一个系统软件&…

代码随想录算法训练营第23期day38|动态规划理论基础、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

目录 一、动态规划理论基础 1.动态规划的解题步骤 2.动态规划应该如何debug 二、&#xff08;leetcode 509&#xff09;斐波那契数 1.递归解法 2.动态规划 1&#xff09;确定dp数组以及下标的含义 2&#xff09;确定递推公式 3&#xff09;dp数组如何初始化 4&#x…

PMIC、电源管理MAX77646ANP、MAX77647AANP、MAX77675AEWE、MAX77847AEWL DC-DC 开关稳压器

一、MAX77646ANP、MAX77647AANP 低IQ SIMO PMIC支持原电池应用的1.8V工作电压 MAX77646/MAX77647为尺寸和效率至关重要的低功耗应用提供电源解决方案。该IC集成单电感多输出(SIMO)降压/升压稳压器&#xff0c;可通过单个电感提供三个可独立编程的电源轨&#xff0c;尽可能地减…

PageRank算法c++实现

首先用邻接矩阵A表示从页面j到页面i的概率&#xff0c;然后根据公式生成转移概率矩阵 M&#xff08;1-d&#xff09;*Qd*A 常量矩阵Q(qi,j),qi,j1/n 给定点击概率d&#xff0c;等级值初始向量R0&#xff0c;迭代终止条件e&#xff1b; 计算Ri1M*R…

选哪个内衣洗衣机比较好?觉飞和希亦内衣洗衣机对比测评

如今&#xff0c;随着物质生活水平的不断提升&#xff0c;消费者更加追求健康、品质化的生活。而反映在衣物清洁上&#xff0c;诸如像贴身衣物的深度清洁、儿童和成人衣物的分洗等细分场景下的洗护需求也变得越来越多&#xff0c;内衣物洗衣机也因此应运而生。现在市面上关于内…

【RabbitMQ】RabbitMQ 消息的堆积问题 —— 使用惰性队列解决消息的堆积问题

文章目录 一、消息的堆积问题1.1 什么是消息的堆积问题1.2 消息堆积的解决思路 二、惰性队列解决消息堆积问题2.1 惰性队列和普通队列的区别2.2 惰性队列的声明方式2.3 演示惰性队列接收大量消息2.4 惰性队列的优缺点 一、消息的堆积问题 1.1 什么是消息的堆积问题 消息的堆积…

修复dinput8.dll文件的缺失,以及修复dinput8.dll文件时需要注意什么

dinput8.dll文件通常在使用大型游戏时容易出现dinput8.dll文件丢失的情况&#xff0c;今天这篇文章将要教大家修复dinput8.dll文件的缺失&#xff0c;同时在修复dinput8.dll文件时需要注意些什么&#xff1f;防止文件在修复的过程中出现其他的错误。 dinput8.dll是DirectInput库…

[自定义 Vue 组件] 小尾巴下拉菜单组件(2.0) TailDropDown

文章归档&#xff1a;https://www.yuque.com/u27599042/coding_star/kcoem6dgyn8drglb [自定义 Vue 组件] 下拉菜单(1.0) DropDownMenu&#xff1a;https://www.yuque.com/u27599042/coding_star/llltv52tchmatwg4 组件效果示例 组件所依赖的常量 在 src 目录下&#xff0c;创…

商品礼品卡券提货码商城小程序开发

礼品商品提货码卡密卷商城系统开发 本系统为方便各类商品、产品福利等&#xff0c;能以电子化形式发放&#xff0c;用通过手机端直接邮寄提货而开发使用。 主要功能包含&#xff1a;1、后台批量卡密生产2、前端卡密输入兑换提货 应用界面 1、兑换页输入卡券账号和密码&#…

模拟实现简易版shell(需要单独处理 ls+cd+export)

目录 minishell -- 简易版shell 大致思路 注意点 ls cd export 代码 minishell -- 简易版shell 大致思路 首先确定,我们的shell是一直在运行的(while(1))每次都会有提示信息打印出来 [xxxxxx x]输入命令(选项),其中,我们需要将读入的字符串分开,不然只是没有意义的字符…

HNU程序设计 练习五-函数

1.小熊买糖果 【问题描述】 小熊去到商店&#xff0c;选择了一种它非常喜欢的糖果&#xff0c;其单价为 k 元&#xff0c;假定商店里有无穷多的这种糖果。 它的父亲允许它花费任意多的10元硬币和一个 r 元硬币去购买&#xff0c;但不能找零&#xff0c;请帮助小熊确定它能购买…

Docker基础(简单易懂)

目录 一、docker是什么 核心概念 二、docker安装 1、卸载docker 2、使用yum 安装 三、docker常用命令 1、帮助命令 2、镜像命令 1&#xff09;查看镜像 2&#xff09;查询镜像 3&#xff09;拉取镜像 4&#xff09;删除镜像 3、容器命令 四、容器数据卷 五、Dock…

在全球半导体行业中“疯狂冒险”的台积电

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 总结&#xff1a; &#xff08;1&#xff09;尽管在收入和利润率方面面临挑战&#xff0c;但台积电(TSM)仍在为自己在半导体行业的复苏做准备。 &#xff08;2&#xff09;台积电的全球扩张和先进技术战略使其能够充分利用…

Windows10+CLion+OpenCV4.5.2开发环境搭建

目录 OpenCV准备下载解压环境变量配置 clion配置新建工程选择编译工具编写CMakeLists.txt将OpenCV执行的一些动态链接库复制到项目目录下编写测试代码 OpenCV准备 下载 官网&#xff1a;OpenCV 往下滑&#xff0c;找到自己需要下载的版本。我下载的是4.5.2。 解压 选择好解…

dockerfile避坑笔记(VMWare下使用Ubuntu在Ubuntu20.04基础镜像下docker打包多个go项目)

一、docker简介 docker是一种方便跨平台迁移应用的程序&#xff0c;通过docker可以实现在同一类操作系统中&#xff0c;如Ubuntu和RedHat两个linux操作系统中&#xff0c;实现程序的跨平台部署。比如我在Ubuntu中打包了一个go项目的docker镜像&#xff08;镜像为二进制文件&am…

“如何对TXT文件的内容进行连续行删除?实现一键文件整理!

如果你有一个TXT文件&#xff0c;需要删除其中的连续行&#xff0c;这可能是为了整理文件、去除重复信息或清除不需要的文本。尽管手动删除每一行可能很耗时&#xff0c;但幸运的是&#xff0c;有一个简单而高效的方法可以帮助你实现这个目标。 首先&#xff0c;在首助编辑高手…

05-流媒体-RTMP协议介绍

05-流媒体-RTMP协议介绍 1.RTMP概述 RTMP是一种常见的流媒体协议,是基于TCP/IP协议模型的应用层协议,工作在TCP协议上,端口是1935。通过TCP三次握手保证传输的可靠。 2.握手 2.1 握手过程 RTMP基于传输层TCP连接后,通过RTMP握手协议来完成RTMP连接。客户端和服务端各发…

干货分享:基于 LSTM 的广告库存预估算法

近年来&#xff0c;随着互联网的发展&#xff0c;在线广告营销成为一种非常重要的商业模式。出于广告流量商业化售卖和日常业务投放精细化运营的目的&#xff0c;需要对广告流量进行更精准的预估&#xff0c;从而更精细的进行广告库存管理。 因此&#xff0c;携程广告纵横平台…