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

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

摘 要

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


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


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


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


系统实现

系统登录实现

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;
    }
  }

人员管理实现

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

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

@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**;
​       }
   }

快递管理实现

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

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

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

@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**;
​       }
​    }

好友模块实现

私信模块

快递签收


总结与展望

本系统采用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


目录
相关文章
|
17小时前
|
监控 前端开发 Java
Java公立医院绩效考核管理系统 医院绩效考核系统的优势有哪些? 
医院绩效管理系统解决方案紧扣新医改形势下医院绩效管理的要求,以“工作量为基础的考核方案”为核心思想,结合患者满意度、服务质量、技术难度、工作效率、医德医风等管理发展目标的考核体系,形成医院的内部绩效考核与分配机制,通过信息化手段为绩效考评管理人员实施医院绩效考评工作提供了有效工具,扩展了信息管理范围,增加了信息分析的广度与深度。这不仅使绩效评价工作更加科学化、规范化和自动化,而且从根本上改变了绩效评估工作方式,实现了绩效评价数据网络化采集,评价结果透明化管理,奖金分配数据自动化生成,极大地提高了绩效评估的全面性、准确性、时效性、公正性。从而推进医院绩效管理的专业化、规范化和精细化管理,充分发挥
12 0
|
3天前
|
数据采集 前端开发 Java
Java医院绩效考核系统源码maven+Visual Studio Code一体化人力资源saas平台系统源码
医院绩效解决方案包括医院绩效管理(BSC)、综合奖金核算(RBRVS),涵盖从绩效方案的咨询与定制、数据采集、绩效考核及反馈、绩效奖金核算到科到组、分配到员工个人全流程绩效管理;将医院、科室、医护人员利益绑定;全面激活人才活力;兼顾质量和效益、长期与短期利益;助力医院降本增效,持续改善、优化收入、成本结构。
14 0
|
3天前
|
Java
排课系统【JSP+Servlet+JavaBean】(Java课设)
排课系统【JSP+Servlet+JavaBean】(Java课设)
15 5
|
4天前
|
存储 Java API
java对接IPFS系统-以nft.storage为列
java对接IPFS系统-以nft.storage为列
14 2
|
1天前
|
Java
Java中的多线程编程:基础知识与实践
【5月更文挑战第13天】在计算机科学中,多线程是一种使得程序可以同时执行多个任务的技术。在Java语言中,多线程的实现主要依赖于java.lang.Thread类和java.lang.Runnable接口。本文将深入探讨Java中的多线程编程,包括其基本概念、实现方法以及一些常见的问题和解决方案。
|
1天前
|
安全 算法 Java
深入理解Java并发编程:线程安全与性能优化
【5月更文挑战第13天】 在Java开发中,并发编程是一个复杂且重要的领域。它不仅关系到程序的线程安全性,也直接影响到系统的性能表现。本文将探讨Java并发编程的核心概念,包括线程同步机制、锁优化技术以及如何平衡线程安全和性能。通过分析具体案例,我们将提供实用的编程技巧和最佳实践,帮助开发者在确保线程安全的同时,提升应用性能。
10 1
|
2天前
|
Java 调度
Java一分钟之线程池:ExecutorService与Future
【5月更文挑战第12天】Java并发编程中,`ExecutorService`和`Future`是关键组件,简化多线程并提供异步执行能力。`ExecutorService`是线程池接口,用于提交任务到线程池,如`ThreadPoolExecutor`和`ScheduledThreadPoolExecutor`。通过`submit()`提交任务并返回`Future`对象,可检查任务状态、获取结果或取消任务。注意处理`ExecutionException`和避免无限等待。实战示例展示了如何异步执行任务并获取结果。理解这些概念对提升并发性能至关重要。
17 5
|
2天前
|
安全 Java 调度
深入理解Java并发编程:线程安全与性能优化
【5月更文挑战第12天】 在现代软件开发中,多线程编程是提升应用程序性能和响应能力的关键手段之一。特别是在Java语言中,由于其内置的跨平台线程支持,开发者可以轻松地创建和管理线程。然而,随之而来的并发问题也不容小觑。本文将探讨Java并发编程的核心概念,包括线程安全策略、锁机制以及性能优化技巧。通过实例分析与性能比较,我们旨在为读者提供一套既确保线程安全又兼顾性能的编程指导。
|
3天前
|
Java
Java一分钟:线程协作:wait(), notify(), notifyAll()
【5月更文挑战第11天】本文介绍了Java多线程编程中的`wait()`, `notify()`, `notifyAll()`方法,它们用于线程间通信和同步。这些方法在`synchronized`代码块中使用,控制线程执行和资源访问。文章讨论了常见问题,如死锁、未捕获异常、同步使用错误及通知错误,并提供了生产者-消费者模型的示例代码,强调理解并正确使用这些方法对实现线程协作的重要性。
14 3
|
3天前
|
安全 算法 Java
Java一分钟:线程同步:synchronized关键字
【5月更文挑战第11天】Java中的`synchronized`关键字用于线程同步,防止竞态条件,确保数据一致性。本文介绍了其工作原理、常见问题及避免策略。同步方法和同步代码块是两种使用形式,需注意避免死锁、过度使用导致的性能影响以及理解锁的可重入性和升级降级机制。示例展示了同步方法和代码块的运用,以及如何避免死锁。正确使用`synchronized`是编写多线程安全代码的核心。
55 2