基于jsp,ssm物流快递管理系统
开发工具:eclipse,jdk1.8
服务器:tomcat7.0
数据库:mysql5.7
技术: spring+springMVC+mybaits+EasyUI
项目包括用户前台和管理后台两部分,功能介绍如下:
一、用户(前台)功能:
用户进入物流快递管理系统后,可以进行在线下单,下单完成后,可以查询订单状态;接着,用户可以浏览相关物流快递的新闻资讯;用户可以浏览网站提供的业务范围;最后,用户如果需要投诉或者反馈信息,可以给网站在线留言。
在线下单:用户可以在线下单,填写发货人、收货人和货物相关信息即可。
查询订单:用户下单后,可以输入订单号,查询物流快递订单的状态。
浏览新闻:用户可以在网站上,浏览相关物流快递的最新资讯。
浏览业务:用户可以浏览网站上的业务介绍,了解业务范围,明确自己的物流快递需求。
在线留言:用户可以给网站在线留言,填写相关信息即可。
二、管理员(后台)功能:
管理员首先登录系统,可以进行菜单管理、角色管理、用户管理、订单管理、新闻管理、留言管理、查看日志。
菜单管理:管理员可以增、删、改和查菜单信息。
角色管理:对角色信息进行管理,可以增、删、改和查角色信息。
用户管理:对用户信息进行管理,可以添加、修改、查询和删除用户信息。
订单管理:对订单信息进行管理,可以添加、修改、查询和删除订单信息。
新闻管理:对新闻进行管理,可以添加、修改、查询和删除新闻资讯。
留言管理:对留言信息进行管理,可以修改和删除留言信息。
查看日志:可以查看系统的详细日志信息。
文档截图:


前台用户截图:







后台管理员截图:










package com.ischoolbar.programmer.controller.admin;import java.io.File;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;import com.ischoolbar.programmer.entity.admin.News;
import com.ischoolbar.programmer.page.admin.Page;
import com.ischoolbar.programmer.service.admin.NewsCategoryService;
import com.ischoolbar.programmer.service.admin.NewsService;/*** 新闻控制器* @author llq**/
@RequestMapping("/admin/news")
@Controller
public class NewsController {@Autowiredprivate NewsCategoryService newsCategoryService;@Autowiredprivate NewsService newsService;/*** 新闻列表页面* @param model* @return*/@RequestMapping(value="/list",method=RequestMethod.GET)public ModelAndView list(ModelAndView model){model.addObject("newsCategoryList", newsCategoryService.findAll());model.setViewName("news/list");return model;}/*** 新闻添加页面* @param model* @return*/@RequestMapping(value="/add",method=RequestMethod.GET)public ModelAndView add(ModelAndView model){model.addObject("newsCategoryList", newsCategoryService.findAll());model.setViewName("news/add");return model;}/*** 新闻添加* @param news* @return*/@RequestMapping(value="/add",method=RequestMethod.POST)@ResponseBodypublic Map<String,String> add(News news){Map<String,String> ret = new HashMap<String, String>();if(news == null){ret.put("type", "error");ret.put("msg", "请填写正确的信息!");return ret;}if(StringUtils.isEmpty(news.getTitle())){ret.put("type", "error");ret.put("msg", "新闻标题不能为空!");return ret;}if(news.getCategoryId() == null){ret.put("type", "error");ret.put("msg", "请选择新闻分类!");return ret;}if(StringUtils.isEmpty(news.getAbstrs())){ret.put("type", "error");ret.put("msg", "新闻摘要不能为空!");return ret;}if(StringUtils.isEmpty(news.getTags())){ret.put("type", "error");ret.put("msg", "新闻标签不能为空!");return ret;}if(StringUtils.isEmpty(news.getPhoto())){ret.put("type", "error");ret.put("msg", "新闻封面图片必须上传!");return ret;}if(StringUtils.isEmpty(news.getAuthor())){ret.put("type", "error");ret.put("msg", "新闻作者不能为空!");return ret;}if(StringUtils.isEmpty(news.getContent())){ret.put("type", "error");ret.put("msg", "新闻内容不能为空!");return ret;}news.setCreateTime(new Date());if(newsService.add(news) <= 0){ret.put("type", "error");ret.put("msg", "添加失败,请联系管理员!");return ret;}ret.put("type", "success");ret.put("msg", "添加成功!");return ret;}/*** 新闻编辑页面* @param model* @return*/@RequestMapping(value="/edit",method=RequestMethod.GET)public ModelAndView edit(ModelAndView model,Long id){model.addObject("newsCategoryList", newsCategoryService.findAll());model.addObject("news", newsService.find(id));model.setViewName("news/edit");return model;}/*** 新闻信息编辑* @param newsCategory* @return*/@RequestMapping(value="/edit",method=RequestMethod.POST)@ResponseBodypublic Map<String,String> edit(News news){Map<String,String> ret = new HashMap<String, String>();if(news == null){ret.put("type", "error");ret.put("msg", "请填写正确的信息!");return ret;}if(StringUtils.isEmpty(news.getTitle())){ret.put("type", "error");ret.put("msg", "新闻标题不能为空!");return ret;}if(news.getCategoryId() == null){ret.put("type", "error");ret.put("msg", "请选择新闻分类!");return ret;}if(StringUtils.isEmpty(news.getAbstrs())){ret.put("type", "error");ret.put("msg", "新闻摘要不能为空!");return ret;}if(StringUtils.isEmpty(news.getTags())){ret.put("type", "error");ret.put("msg", "新闻标签不能为空!");return ret;}if(StringUtils.isEmpty(news.getPhoto())){ret.put("type", "error");ret.put("msg", "新闻封面图片必须上传!");return ret;}if(StringUtils.isEmpty(news.getAuthor())){ret.put("type", "error");ret.put("msg", "新闻作者不能为空!");return ret;}if(StringUtils.isEmpty(news.getContent())){ret.put("type", "error");ret.put("msg", "新闻内容不能为空!");return ret;}if(newsService.edit(news) <= 0){ret.put("type", "error");ret.put("msg", "修改失败,请联系管理员!");return ret;}ret.put("type", "success");ret.put("msg", "修改成功!");return ret;}/*** 删除新闻* @param id* @return*/@RequestMapping(value="/delete",method=RequestMethod.POST)@ResponseBodypublic Map<String,String> delete(Long id){Map<String,String> ret = new HashMap<String, String>();if(id == null){ret.put("type", "error");ret.put("msg", "请选择要删除的信息!");return ret;}try{if(newsService.delete(id) <= 0){ret.put("type", "error");ret.put("msg", "删除失败,请联系管理员!");return ret;}}catch(Exception e){ret.put("type", "error");ret.put("msg", "该新闻下有评论信息,不可删除!");return ret;}ret.put("type", "success");ret.put("msg", "删除成功!");return ret;}/*** 分页模糊搜索查询列表* @param name* @param page* @return*/@RequestMapping(value="/list",method=RequestMethod.POST)@ResponseBodypublic Map<String,Object> getList(@RequestParam(name="title",required=false,defaultValue="") String title,@RequestParam(name="author",required=false,defaultValue="") String author,@RequestParam(name="categoryId",required=false) Long categoryId,Page page){Map<String,Object> ret = new HashMap<String, Object>();Map<String,Object> queryMap = new HashMap<String, Object>();queryMap.put("title", title);queryMap.put("author", author);if(categoryId != null && categoryId.longValue() != -1){queryMap.put("categoryId", categoryId);}queryMap.put("offset", page.getOffset());queryMap.put("pageSize", page.getRows());ret.put("rows", newsService.findList(queryMap));ret.put("total", newsService.getTotal(queryMap));return ret;}/*** 上传图片* @param photo* @param request* @return*/@RequestMapping(value="/upload_photo",method=RequestMethod.POST)@ResponseBodypublic Map<String, String> uploadPhoto(MultipartFile photo,HttpServletRequest request){Map<String, String> ret = new HashMap<String, String>();if(photo == null){ret.put("type", "error");ret.put("msg", "选择要上传的文件!");return ret;}if(photo.getSize() > 1024*1024*1024){ret.put("type", "error");ret.put("msg", "文件大小不能超过10M!");return ret;}//获取文件后缀String suffix = photo.getOriginalFilename().substring(photo.getOriginalFilename().lastIndexOf(".")+1,photo.getOriginalFilename().length());if(!"jpg,jpeg,gif,png".toUpperCase().contains(suffix.toUpperCase())){ret.put("type", "error");ret.put("msg", "请选择jpg,jpeg,gif,png格式的图片!");return ret;}String savePath = request.getServletContext().getRealPath("/") + "/resources/upload/";File savePathFile = new File(savePath);if(!savePathFile.exists()){//若不存在改目录,则创建目录savePathFile.mkdir();}String filename = new Date().getTime()+"."+suffix;try {//将文件保存至指定目录photo.transferTo(new File(savePath+filename));}catch (Exception e) {// TODO Auto-generated catch blockret.put("type", "error");ret.put("msg", "保存文件异常!");e.printStackTrace();return ret;}ret.put("type", "success");ret.put("msg", "用户上传图片成功!");ret.put("filepath",request.getServletContext().getContextPath() + "/resources/upload/" + filename );return ret;}
}
相关文章:
基于jsp,ssm物流快递管理系统
开发工具:eclipse,jdk1.8 服务器:tomcat7.0 数据库:mysql5.7 技术: springspringMVCmybaitsEasyUI 项目包括用户前台和管理后台两部分,功能介绍如下: 一、用户(前台)功能: 用…...
陪诊系统|挂号陪护搭建二开陪诊师入驻就医小程序
我们的陪诊小程序拥有丰富多样的功能,旨在最大程度满足现代人的需求。首先,我们采用了智能排队系统,通过扫描二维码获取排号信息,让您从繁琐的排队过程中解放出来。其次,我们提供了多种支付方式,不仅可以实…...
恒驰服务 | 华为云数据使能专家服务offering之大数据建设
恒驰大数据服务主要针对客户在进行智能数据迁移的过程中,存在业务停机、数据丢失、迁移周期紧张、运维成本高等问题,通过为客户提供迁移调研、方案设计、迁移实施、迁移验收等服务内容,支撑客户实现快速稳定上云,有效降低时间成本…...
轻量级狂雨小说cms系统源码 v1.5.2 基于ThinkPHP5.1+MySQL
轻量级狂雨小说cms系统源码 v1.5.2 基于ThinkPHP5.1MySQL的技术开发 狂雨小说cms提供一个轻量级小说网站解决方案,基于ThinkPHP5.1MySQL的技术开发。 KYXSCMS,灵活,方便,人性化设计简单易用是最大的特色,是快速架设小说类网站首选…...
Leetcode刷题详解——Pow(x, n)
1. 题目链接:50. Pow(x, n) 2. 题目描述: 实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,xn )。 示例 1: 输入:x 2.00000, n 10 输出:1024.00000示例 2:…...
计算机毕业设计选题推荐-校园失物招领微信小程序/安卓APP-项目实战
✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…...
人工智能基础_机器学习011_梯度下降概念_梯度下降步骤_函数与导函数求解最优解---人工智能工作笔记0051
然后我们来看一下梯度下降,这里先看一个叫 无约束最优化问题,,值得是从一个问题的所有可能的备选方案中选最优的方案, 我们的知道,我们的正态分布这里,正规的一个正态分布,还有我们的正规方程,他的这个x,是正规的,比如上面画的这个曲线,他的这个x,就是大于0的对吧,而现实生活…...
开放式耳机能保护听力吗,开放式耳机跟骨传导耳机哪个更好?
如果从严格意义上来讲的话,开放式耳机中的骨传导耳机是能保护听力,现如今的开放式耳机是一个统称,将所有不入耳的类目全部规划到一块。因此在开放式耳机中存在着一些耳机是只能够保持周边环境音,而不是保护听力的。 下面让我来给…...
【Qt之QLocale】使用
描述 QLocale类可以在多种语言之间进行数字和字符串的转换。 QLocale类在构造函数中使用语言/国家对进行初始化,并提供类似于QString中的数字转字符串和字符串转数字的转换函数。 示例: QLocale egyptian(QLocale::Arabic, QLocale::Egypt);QString s1 …...
维修服务预约小程序的效果如何
生活服务中维修项目绝对是需求量很高的,如常见的保洁、管道疏通、数码维修、安装、便民服务等,可以说每天都有生意,而对相关维修店企业来说,如何获得更多生意很重要。 接下来让我们看看通过【雨科】平台制作维修服务预约小程序能…...
前端架构体系调研整理汇总
1.公司研发人数与前端体系 小型创业公司 前端人数: < 3 人 产品类型: 产品不是非常成熟,比较新颖。 项目流程:不完善,快、紧促,没有固定的时间排期。 技术栈: 没有历史包袱,技…...
DrawerLayout的点击事件会穿透到底部,如何拦截?
DrawerLayout实现侧后,发现了一个问题。点击DrawerLayout的画面,会触发覆盖的底层页面的控件。由此说明点击事件穿透到了底部。但是我只需要触发抽屉布局里的控件,不想触发底层被覆盖的看不见的按钮,由此我想到的时让抽屉页面拦截…...
在Spring boot中 使用JWT和过滤器实现登录认证
在Spring boot中 使用JWT和过滤器实现登录认证 一、登录获得JWT 在navicat中运行如下sql,准备一张user表 -- ---------------------------- -- Table structure for t_user -- ---------------------------- DROP TABLE IF EXISTS t_user; CREATE TABLE t_user (id int(11) …...
天堂2如何对版本里面的内容进行修改
天堂2写装备属性的问题 早一点的版本属性都是写在armor文件夹 xml档里,不再写armor里了 armor文件夹里只有防御 HP MP增加量,套装的属性都用一个技能形式写在 skills里了 在配合数据库里一个叫armorsets实现套装属性,拿皇家套做说明。 id 43…...
代码随想录Day33 LeetCode T62不同路径 LeetCode T63 不同路径II
前言 动规五部曲 1.确定dp数组含义 2.确定递推公式 3.初始化数组 4.确定遍历方式 5.打印dp数组查看分析问题 LeetCode T62 不同路径 题目链接:62. 不同路径 - 力扣(LeetCode) 题目思路: 注:n行m列而不是m行n列 1.确定dp数组含义 代表到达此下标有多少条…...
【计算机网络】分层模型和应用协议
网络分层模型和应用协议 1. 分层模型 1.1 五层网络模型 网络要解决的问题是:两个程序之间如何交换数据。 四层?五层?七层? 2. 应用层协议 2.1 URL URL(uniform resource locator,统一资源定位符&#…...
Python框架之Flask入门和视图
一、Flask入门和视图 需要安装Pycharm专业版 1. Flask简介 Python后端的2个主流框架 Flask 轻量级框架Django 重型框架 Flask是一个基于Python实现的web开发微框架 官方文档:https://flask.palletsprojects.com/ 中文文档:https://dormousehole.readthe…...
streamWriter.WriteLine
streamWriter.WriteLine写入文件有回车行 using (System.IO.StreamWriter streamWriter new System.IO.StreamWriter("D:\123.txt", false, System.Text.Encoding.Default)) { streamWriter.Write(str.Replace("…...
一键添加色彩变幻效果,视频剪辑从未如此简单!
在视频制作过程中,给视频添加特效是必不可少的环节。而其中,色彩变幻效果作为一种常用的特效,能够为视频增添独特的氛围和视觉冲击力。然而,对于许多初学者来说,如何批量给视频添加色彩变幻效果特效功能却是一个难题。…...
Linux的简介和环境搭建
简介 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个…...
艾尔登法环帧率解锁终极指南:告别卡顿,畅享丝滑游戏体验
艾尔登法环帧率解锁终极指南:告别卡顿,畅享丝滑游戏体验 【免费下载链接】EldenRingFpsUnlockAndMore A small utility to remove frame rate limit, change FOV, add widescreen support and more for Elden Ring 项目地址: https://gitcode.com/gh_m…...
AI大模型应用开发全攻略:从入门到精通,掌握LLM、RAG、Agent核心技能!“
本文全面介绍了AI大模型应用开发的核心技术和实践。从大模型API交互基础,到关键参数Messages和Tools的作用,深入解析了RAG、ReAct、Agent等应用范式。文章还探讨了Fine-tuning微调和Prompt提示词工程的重要性,强调工程实践与业务需求相结合。…...
自制射频功率计:基于AD8317芯片,成本43欧元实现1MHz-10GHz测量
1. 项目概述:为什么我要亲手打造一台射频功率计在无人机和模型飞行器的圈子里,尤其是在我们荷兰FMS Spaarnwoude俱乐部,合规飞行是头等大事。我给我的八轴飞行器加装了云台相机和图传系统,工作在5.8GHz频段。根据本地法规…...
Midjourney锐化效果失效真相(2024官方未公开的渲染管线瓶颈解析)
更多请点击: https://intelliparadigm.com 第一章:Midjourney锐化效果失效真相(2024官方未公开的渲染管线瓶颈解析) 自2024年V6.2版本起,大量用户反馈 --stylize 与 --sharp 参数组合下图像边缘锐化效果显著弱化&am…...
VMware ESXi 9.1.0.0集成NVME+网卡驱动版发布|新特性+驱动集成+部署升级+FAQ全指南
一、ESXi 9.1.0.0 正式版核心新特性 VMware ESXi 9.1.0.0(2026 年 5 月发布)是 vSphere 9.1 核心组件,聚焦硬件兼容扩展、性能跃升、安全加固、运维简化四大方向,重点强化 NVMe 存储与网卡生态适配,以下为关键更新&am…...
光轮智能 谢晨 访谈总结机器人仿真数据产业
光轮智能 谢晨 访谈总结机器人仿真关于创始人关于数据数据金字塔数据痛点仿真数据的重要性仿真数据的质量b站链接地址公司官网关于创始人 清华物理;哥伦比亚金融;英伟达智驾仿真;小鹏智驾仿真;现为光轮智能CEO 关于数据 数据的…...
Unity动态自然系统:Forest Environment-Dynamic Nature深度解析
1. 这不是“贴图堆砌”,而是自然系统级建模:Forest Environment-Dynamic Nature 的真实定位你有没有试过在Unity里拖进几棵树、铺点草、加个天空盒,然后发现场景像一张静止的风景明信片——风不动、叶不摇、雨不落、雾不散?我做过…...
AB包相关知识
Lua与AB包/Addressables以及YooAsset 摘自千问: Lua 是菜谱(逻辑):决定了菜怎么做,味道如何。因为你需要随时换菜谱(热更新),所以菜谱不能死板地印在墙上(编译进主包&a…...
3步终结Windows热键冲突:Hotkey Detective终极排查指南
3步终结Windows热键冲突:Hotkey Detective终极排查指南 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 你是否曾…...
Actor Framework里的“多米诺骨牌”:一个错误如何让整个嵌套操作者链崩溃?
Actor Framework中的“多米诺效应”:如何避免嵌套操作者链的崩溃 在分布式系统设计中,Actor模型因其天然的并发处理能力而备受青睐。LabVIEW的Actor Framework(AF)通过操作者(actor)的嵌套结构,为复杂系统提供了模块化解决方案。然而&#x…...
