0001Java程序设计-SSM校园快递系统的设计与实现

news2024/12/24 21:02:30

摘 要

21世纪之后,全球信息化逐渐加快,尤其表现在近几年来电商行业的飞速发展,人们足不出户就可以买到自己想要的商品,尤其是青年大学生,追求新颖,更加乐忠于网络购物。网络购物的增加,就导致物流快递的激增。学校作为大学生生活的主要场所,每天接受到的快递成百上千,在加上学生封闭集中式管理制度的局限性使的学生如何快速高效的领取快递成了一件急需解决的事情。

本系统主要为了解决校园快递领取问题,使的校园快递管理规范化而设计的。研究主要从学生和管理员两个方面来开展,采用B/S架构。功能主要有:人员管理、快递管理、私信管理、好友管理、快递签收等几个模块。希望通过信息化的手段来推动校园快递管理高效有序的进行。

目前校园快递管理这一方面发展还比较缓慢,很多学校甚至还没有开始起步,但是我们相信,随着网络信息化的深入发展,建立起一套高效的校园快递管理系统一定是大势所趋。

关键字**:**校园快递;B/S架构;网络信息化

目录

第一章 前言… 4

1.1 系统开发背景和意义… 4

1.2 国内外研究现状… 4

1.3 系统开发的任务… 4

第二章 系统分析… 5

2.1 可行性分析… 5

2.1.1 市场可行性… 5

2.1.2 经济可行性… 5

2.1.3 技术可行性… 5

2.2 需求分析… 5

2.3 系统架构层次分析… 6

第三章 数据库设计… 8

3.1 数据库分析… 8

3.2 数据库概念设计… 8

3.3 数据库逻辑结构设计… 12

第四章 系统详细设计… 14

4.1 系统整体功能设计… 14

4.2 系统用例关系图… 15

4.3 系统各模块详细设计… 16

4.3.1 登录模块设计… 16

4.3.2人员管理模块设计… 17

4.3.3 快递管理模块设计… 18

4.3.4 好友模块设计… 20

4.3.5 私信模块设计… 21

4.3.6 快递签收模块设计… 21

第五章 系统实现… 23

5.1 系统登录实现… 23

5.2 人员管理实现… 24

5.3 快递管理实现… 25

5.4 好友模块实现… 27

5.5 私信模块实现… 29

5.6 快递签收实现… 32

第六章 系统测试… 34

第七章 总结与展望… 37

参考文献… 38

系统实现

系统登录实现

img

private void login() throws ServletException, IOException {
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		String code = (String) session.getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);
		String reqCode = request.getParameter("checkcode");
		if (reqCode == null || !reqCode.equalsIgnoreCase(code)) {
			session.setAttribute("loginErrorMessage", "验证码错误");
			response.sendRedirect("index.jsp");
			return;
		}

		User user = null;
		try {
			password = LsdUtils.getMd5String(password);
			user = dao.findUser(username, password);
		} catch (Exception e) {
			e.printStackTrace();
		}
		if (user != null) {
			session.setAttribute("SessionUser", user);
			response.sendRedirect("main.jsp");
			return;
		} else {
			session.setAttribute("loginErrorMessage", "用户名或者密码错误");
			response.sendRedirect("index.jsp");
			return;
		}
	}

人员管理实现

img

用户点击保存人员信息后,前台先对人员信息作校验,校验通过后,在调用服务器端代码保存数据到用户信息表。

人员添加保存核心代码如下:

@SuppressWarnings({ "unchecked", "rawtypes" })

   **private** **void** userAdd() **throws** ServletException, IOException {Map map = **new** HashMap();**try** {

​           map.put("loginId", request.getParameter("loginId"));

​           map.put("password", LsdUtils.*getMd5String*(request.getParameter("password")));

​           map.put("name", request.getParameter("name"));

​           map.put("userRole", request.getParameter("userRole"));

​           dao.save(User.**class**, map);MessageUtil.*addMessage*(request, "成功");f("/success.jsp");**return**;} **catch** (Exception e) {

​           e.printStackTrace();MessageUtil.*addMessage*(request, "操作失败,账号重复");f("/error.jsp");**return**;}

   }

快递管理实现

快递管理主要包括快递的添加、删除、修改等功能。

img

快递添加时,前台会先对快递信息进行非空等合法性校验,校验通过的话,在由后台对快递单号进行唯一性校验,校验通过,数据入库。

快递信息保存核心代码如下所示:

@SuppressWarnings({ "unchecked", "rawtypes" })

   **private** **void** expressAdd() **throws** ServletException, IOException {Map map = **new** HashMap();**try** {

​           map.put("phone", request.getParameter("phone"));

​           map.put("name", request.getParameter("name"));

​           map.put("area", request.getParameter("area"));

​           map.put("sid", request.getParameter("sid"));

​           map.put("status", "未签收");Express e = (Express) hdao.unique("from Express where sid=?", map.get("sid"));**if** (e != **null**) {MessageUtil.*addMessage*(request, "操作失败,快递单号重复");f("/error.jsp");**return**;}

 

​           dao.save(Express.**class**, map);MessageUtil.*addMessage*(request, "成功");f("/success.jsp");**return**;} **catch** (Exception e) {

​           e.printStackTrace();MessageUtil.*addMessage*(request, "操作失败");f("/error.jsp");**return**;}}

好友模块实现

img

私信模块

img

快递签收

img

总结与展望

本系统采用B/S架构,MVC的设计模块,包含学生和管理员连个角色,主要功能有人员管理、快递管理、私信收发、我的好友、快递签收等模块。主要是为了满足校园快递管理的需要。之所以选择Java作为开发语言,主要是因为Java具有跨平台的特性,程序可移植性比较强。校园快递管理系统经过本人一个多月的开发和调试,现在程序所有功能基本可以正常运行。但是不排除还存在一些潜在的问题,这需要我们在后续的实践中去检验并且完善。

由于本人能力有限,系统有些方面考虑的不是很全面,比如用户在没有得到好友的允许的情况下也可以签收好友的快递。这些方面的欠缺都可以在后续的工作中去改善。在这次设计中,我学到了很多东西,从最开始的百度搜索资料,再到后面的实际开发遇到了很多的问题并最终解决了,提高了自己的动手能力。

最后感谢指导老师以及同学们的帮助。

开发环境:

本系统的开发环境为Windows 7,数据库使用的是Oracle公司开发的的MySQL,发布使用MyEclipse工具。采用JSP为服务器端脚本环境,脚本语言使用JavaScript编写的财务管理系统,不需要安装客户端程序,客户端只需安装浏览器即可,使用方便,方便升级维护,方便与Internet和Internet上的应用程序集成。

开发工具:idea、Navicat

数据库:MySQL8.0

师以及同学们的帮助。

开发环境:

开发工具:idea、Navicat

数据库:MySQL8.0

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

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

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

相关文章

【二】python爬虫进行AES解密遇到的问题

1、TypeError: Object type <class ‘str’> cannot be passed to C code 报错如下&#xff1a; File "C:\Python311\Lib\site-packages\Crypto\Util\_raw_api.py", line 143, in c_uint8_ptrraise TypeError("Object type %s cannot be passed to C cod…

【使用Spring Cloud Gateway构建微服务网关】—— 每天一点小知识

&#x1f4a7; 使用 S p r i n g C l o u d G a t e w a y 构建微服务网关 \color{#FF1493}{使用Spring Cloud Gateway构建微服务网关} 使用SpringCloudGateway构建微服务网关&#x1f4a7; &#x1f337; 仰望天空&#xff0c;妳我亦是行人.✨ &#x1f984; 个人主…

54 KVM工具使用指南-vmtop使用指南

文章目录 54 KVM工具使用指南-vmtop使用指南54.1 概述54.1.1 多架构支持54.1.2 显示项说明54.1.2.1 AArch64和x86_64架构公共显示项54.1.2.2 仅AArch64架构的显示项54.1.2.3 仅x86_64架构的显示项 54.2 使用方法54.2.1 语法格式54.2.2 选项说明54.2.3 快捷键 54.3 示例 54 KVM工…

MSP432学习笔记10:串口接收字符串命令并执行任务

今日终于得以继续我的MSP432电赛速通之路&#xff1a; 串口通信是单片机需要学习深入的一个很重要的板块&#xff0c;通过串口&#xff0c;我们可以实现许多数据收发与调试工作&#xff0c;可谓是非常方便快捷。 今日就跟随我的脚步&#xff0c;逐步扎实地学习如何编程MSP432…

2023-06-21:redis中什么是BigKey?该如何解决?

2023-06-21&#xff1a;redis中什么是BigKey&#xff1f;该如何解决&#xff1f; 答案2023-06-21&#xff1a; 什么是bigkey bigkey是指存储在Key-Value数据库中的键对应的值所占用的内存空间较大。举个例子&#xff0c;如果值是字符串类型&#xff0c;它可以达到最大512MB的…

堆体系结构概述

1、逻辑概述 2、堆会出现的异常 3、物理上划分 &#xff08;1&#xff09;新生区 新生区是类的诞生、成长、消亡的区域&#xff0c;一个类在这里产生&#xff0c;应用&#xff0c;最后被垃圾回收器收集&#xff0c;结束生命。新生区又分为两部分&#xff1a; 伊甸区&#xff0…

Goby 漏洞发布|WordPress User Post Gallery 插件 upg_datatable 远程代码执行漏洞(CVE-2022-4060)

漏洞名称&#xff1a;WordPress User Post Gallery 插件 upg_datatable 远程代码执行漏洞&#xff08;CVE-2022-4060&#xff09; English Name&#xff1a;WordPress plugins User Post Gallery upg_datatable RCE Vulnerability (CVE-2022-4060) CVSS core: 9.8 影响资产数…

Observability:如何把 Elastic Agent 采集的数据输入到 Logstash 并最终写入到 Elasticsearch

在之前的文章 “安装独立的 Elastic Agents 并采集数据 - Elastic Stack 8.0”&#xff0c;我们详述了如何使用 No Fleet Server 来把数据写入到 Elasticsearch 中。在今天的文章中&#xff0c;我们来详述如下使用 Elastic Agents 在独立&#xff08;standalone&#xff09;模式…

Gradio Blocks:自定义交互式Web应用和演示

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

GitPySearch: 全局Python代码搜索工具

一 、背景 在某些情况下&#xff0c;我们需要快速了解哪些项目包含特定的配置&#xff0c;例如使用了fastjson库或数据库的连接配置。然而&#xff0c;在GitLab上逐个代码仓库进行搜索是非常耗时的。为了提高效率&#xff0c;我们开发了一个Python脚本工具&#xff0c;用于实现…

PostgreSQL的优势:为何它成为主流数据库管理系统

PostgreSQL的优势&#xff1a;为何它成为主流数据库管理系统 Stack Overflow 2023年报告PostgreSQL和MySQL同异我们在开发中如何选择PostgreSQL和MySQL呢&#xff1f; 摘要&#xff1a;本文主要比较了PostgreSQL和MySQL这两个流行的关系型数据库管理系统。我们首先介绍了它们的…

屏蔽箱的材质结构和使用事项介绍

屏蔽箱是一种用于屏蔽机电波干扰的设备&#xff0c;通常用于电磁兼容测试、天线测试、短波收发等需要屏蔽电磁辐射噪声的场合。这种箱子通常由导电或者导磁材料制成&#xff0c;内部配备高效屏蔽材料&#xff0c;能够在一定范围内有效地屏蔽电磁波辐射&#xff0c;避免电磁波干…

详细介绍mysql索引类型

目录 Normal 普通索引Unique 唯一索引Full Text 全文索引SPATIAL 空间索引btree索引和hash索引的区别在实际操作过程中&#xff0c;应该选取表中哪些字段作为索引&#xff1f; Normal 普通索引 表示普通索引&#xff0c;大多数情况下都可以使用 Unique 唯一索引 表示唯一的&…

Linux内核内存管理源码分析之init-mm.c(2)

接前一篇文章&#xff1a;Linux内核内存管理源码分析之init-mm.c&#xff08;1&#xff09; 本文内容参考&#xff1a;https://www.cnblogs.com/mysky007/p/12317831.html 上回说到了swapper_pg_dir和init_top_gpt。再次给出内核源码中init_top_gpt的说明&#xff0c;在Documen…

【基础】MQTT -- MQTT 特性:QoS、Retained 消息、LWT 以及 Keepalive

MQTT -- MQTT 特性&#xff1a;QoS、Retained 消息、LWT 以及 Keepalive QoS 及其最佳实践MQTT 协议中的 QoS 等级QoS 0QoS 1PUBACK 数据包 QoS 2PUBREC 数据包PUBREL 数据包PUBCOMP 数据包 实际的订阅者 QoSQoS 的最佳实践QoS 与会话QoS 的选择 Retained 消息LWT 遗嘱消息Keep…

FPGA_学习_12_IP核_FIFO

FIFO(Frist Input Frist Output)&#xff0c;即先入先出&#xff0c;也是一种存储器&#xff0c;一般做数据缓冲。FIFO和 RAM的共同点在于都能存储数据、都有控制写和读的信号;不同点在于 FIFO 没有地址&#xff0c;所以不能任意指定读取某一个数据&#xff0c;数据只能按照数据…

一个女孩从软件测试工程师到主管的成长

说实话&#xff0c;我做测试工作的时间不是很长&#xff0c;学完软件测试工程师的课程后&#xff0c;到现在也就是一年多的时间吧&#xff0c;不过&#xff0c;我愿意自己学习和工作中积累起的这些点滴与大家分享。 如果你想学习自动化测试&#xff0c;我这边给你推荐一套视频…

C语言之程序环境和预处理(1)

本章主要以图片和文字的形式给大家讲解 程序的翻译环境和程序的执行环境 在ANSI C的任何一种实现中&#xff0c;存在两个不同的环境。 第1种是翻译环境&#xff0c;在这个环境中源代码被转换为可执行的机器指令。 第2种是执行环境&#xff0c;它用于实际执行代码 2. 详解编译…

东南亚骑行类目热销品出炉!Shopee/Lazada跨境卖家有哪些优势产品可做?

菲律宾/巴西是Lazada/Shopee骑行品类卖家体量最大的2个站点&#xff0c;新加坡/越南/马来西亚紧随其后. 体量&#xff1a;在东南亚&#xff0c;菲律宾与新加坡对骑行的需求最强烈&#xff0c;其次是越南&#xff0c;三地总订单占总体70%以上&#xff0c;在南美地区&#xff0c…

Revit碰撞检查:Navisworks“复合对象碰撞”的使用

一、Navisworks 中碰撞检查中“复合对象碰撞”有什么用? 通常情况下我们使用 Revit 做好了模型&#xff0c;然后使用 Navisworks这款软件进行碰撞检查等优化工作。因为 Navisworks 相对于 Revit的软件数据要“轻”很多&#xff0c;可以让多专业的模型都在一起导入来进行全专业…