基于JavaWeb的校园故障报修系统

news2024/12/23 14:05:37

项目描述

临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问题,今天给大家介绍一篇基于JavaWeb的校园故障报修系统的设计与实现。

功能需求

早期学校各种故障问题都是通过外边的去找专门处理的维修师傅,列如在学生正常上课时可能出现的电路故障或是网络故障,为了不影响学生们的正常上课,都是需要紧急处理的,针对不同类型的问题需要专人解决,非常考验学校的管理和人才齐全问题。可能一个很小的问题都需要一到两天才能解决,为了能够提高一个学校的教育质量和校园建设化。随着教育信息化的发展和校园网络的发展,如何有效地管理校园网硬件设备和软件系统。避免因为外界因素影响授课的正常进行,解决互联网技术建设校园故障报修系统,通过系统进行对故障进行分类,针对不同类型的故障进行派发处理的工单,并且指定人进行维护发送通知,职工能够快速的收到通知进行做出问题的处理反应。并能知道故障问题的所在进行精准的定位问题,并做到有效的处理,事后对处理的结果进行在故障报修系统进行反馈,并完成工单的闭环。更有利于以后针对此问题的处理作出总结和统计。

具备以下功能:

本文研究的是通过构建校园故障报修系统利用系统流程化处理的优势进行统一的管理,通过调查和分析现在校园故障问题的相关信息,综合评价了我国校园系统的现状和以及今后的发展趋势,进而提出了比较好的故障解决策略和方案。
用户模块:
(1)登录注册:实现可以在本系统进行实名注册并且能直接登录。
(2)任务管理:任务浏览、任务维护工作。
(3)消息模块:查看维修通知和系统消息。
(4)系统维护:重置登录密码、个人基本信息维护。
(5)常用工具:万年历、备忘录、ip查询等功能。
管理员模块:
(1)任务模块:接收任务、任务维护、上交任务、任务浏览。
(2)消息管理:系统通知消息的增加、删除、修改、查看。
(3)系统管理:管理员可以用户信息进行查看、删除、添加、信息导出等,可以对自己的个人信息修改。
(4)常用工具:火车时刻、备忘录、手机号归属地查询等功能。
(5)关于本系统:关于系统的介绍和负责的内容介绍。

系统功能模块框架图

在这里插入图片描述

部分效果图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数据库设计

系统中用到了5张表,针对每个表都进行了设计,下面对部分核心表进行汇总罗列展示。
(1)用户信息表
在这里插入图片描述

(2)报修任务信息表
在这里插入图片描述

(3)留言信息表
在这里插入图片描述

部分代码
public class LoginServlet extends HttpServlet{
															
	private static final long serialVersionUID = 1L;
	UserDao userDao=new UserDao();
	DbUtil dbUtil=new DbUtil();
	@Override
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		this.doPost(request, response);
	}
	@Override
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
		throws ServletException, IOException {
		// “管理员字符串作为权限判断,判断前台传来的权限是否和他相同
		 String currentLevel="管理员";
		
		/*从前台获取用户名,密码,权限*/
		String userName=request.getParameter("userName");
		String password=request.getParameter("password");
		String level=request.getParameter("level");
		
		//request.setAttribute("userName", userName);
		//request.setAttribute("password", password);
		request.setCharacterEncoding("UTF-8");
		
		/*判断用户名和密码是否为空*/
		if(StringUtil.isEmpty(userName)||StringUtil.isEmpty(password)){
			request.setAttribute("error", "用户名或密码不能为空");
			request.getRequestDispatcher("login.jsp").forward(request, response);
			return;
		}
	
		//将用户名,密码,权限参数传过�?
		User user=new User(userName,password,level);
		Connection con=null;
		try {
			con=dbUtil.getCon();
			User currentUser=userDao.login(con,user);
			//userDao.login(con,user)返回的User对象为null,则说明在数据库里面没有这条记录
			if(currentUser == null){
				request.setAttribute("error", "用户名或密码错误,或者权限不匹配");
				//服务器跳转,登录失失败
				request.getRequestDispatcher("login.jsp").forward(request, response);
			}
			else{
				
				//服务器重定向,登录成功
				HttpSession session = request.getSession();
				session.setAttribute("currentUser",currentUser);
				//将登录的用户名缓存到myName�?
				session.setAttribute("myName", currentUser.getUserName());
				//判断权限,如果是管理员,则跳到index.jsp
				if(currentUser.getLevel().equals("管理员")){
					response.sendRedirect("index.jsp");
				}
				//如果是别的(职员),则跳到index1.jsp
				else if(currentUser.getLevel().equals("职员")){
					response.sendRedirect("index1.jsp");
				}else{
					//此时进入用户界面
					
					response.sendRedirect("index2.jsp");
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally{
			
			try {
				dbUtil.closeCon(con);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}
}
安装部署需求

eclipse运行启动

系统部署

系统开发后,在生产环境配置项目运行环境,具体步骤如下:
安装linux或者windows10操作系统;
安装JDK1.8并配置环境变量;
安装MySQL5.7版本以上版本数据库,创建数据库并执行脚本创建表;
在eclipse中运行打包;

本项目用到的技术和框架

1.开发语言:Java
2.开发模式:B/S
3.数据库:MySQL5.7
4.框架:jsp+servlet+jdbc

本项目中的关键点

此系统的开发采用java语言开发,基于B/S结构,这些开发环境使系统更加完善。使用到的工具和技术都是开源免费的。

环境工具

开发工具 Eclipse
语言 JDK1.8 、jsp、servlet、jdbc
硬件:笔记本电脑;
软件:Tomcat8.0 Web服务器、Navicat数据库客户端、MySQL;
操作系统:Windows 10;
其它软件:截图工具、常用浏览器;
以上是本系统的部分功能展示,如果你的选题正好相符,那么可以做毕业设计或课程设计使用。

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

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

相关文章

Java里面为什么搞了双重检查锁,写完这篇文章终于真相大白了

双重检查锁定与延迟初始化 在 java 程序中,有时候可能需要推迟一些高开销的对象初始化操作,并且只有在使用这些对象时才进行初始化。此时程序员可能会采用延迟初始化。但要正确实现线程安全的延迟初始化需要一些技巧,否则很容易出现问题。比如…

城市POI数据爬取-百度地图版

1 API说明 目前百度地图的最新版为地图检索V2.0服务。详细介绍可以通过开发文档-web服务Api-地点检索V2.0获取。 在使用API前需要提前注册账号获取ak。对于免费账号:目前的每日访问次数是100次,最多可以获取2000条数据。 如不需讲解仅需要下载代码&am…

阿里软件架构师手写JDK源码,看完真的膜拜

最近有不少小伙伴在后台留言,说 Java 的面试越来越难了,尤其是技术面,考察得越来越细,越来越底层。 通过和大厂的面试官聊了一下发现,现在大厂特别爱考底层的一些原理,因为一些底层是不涉及到语言的&#x…

【Linux】进程状态的理解

🤣 爆笑教程 👉 《看表情包学Linux》👈 猛戳订阅 🔥 💭 写在前面:本章我们专门讲解进程的状态。我们先学习具体的 Linux 系统状态,再去介绍 OS 学科面对的概念如何理解 —— 运行态、终止态、阻…

二叉树的基础应用

二叉树 树概念及结构 1.1树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 有一个特殊的结点…

Seata分布式事务落地解决方案

引言上一篇文章介绍了分布式事务理论和相关解决方案的具体思路,我们下面快速复习一下相关知识点:1.分布式事务问题1.1.本地事务本地事务,也就是传统的单机事务。在传统数据库事务中,必须要满足四个原则:1.2.分布式事务分布式事务&…

Houdini_grass_sim (关于植物结算)

2023-2-2 开年第一篇 (记录下关于植物结算的笔记) 这是我们要算的植物(草) 思路 这个草分2部分 主干和叶子(这里我没考虑取解决穿插) 1.主干提取中心线 —— 2.用线结算器(主干)—…

MongoDB的安装(window系统)

最近因为用到mongodb,所以研究了一下,遇到一些问题,和大家分析一下。介绍:MongoDB 是一个基于分布式文件存储的数据库。由 C 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系…

AcWing 320. 能量项链(环形区间DP)

AcWing 320. 能量项链(环形区间DP)一、 问题:二、分析:三、代码一、 问题: 二、分析: 在讲解这道题之前,大家需要对线性区间DP和环形区间DP有一定的了解,因此如果不会这两个知识点的…

SpringSecurity 安全框架详解

SpringSecurity 安全框架详解 1.简介 先赘述一下身份认证和用户授权: 用户认证(Authentication):系统通过校验用户提供的用户名和密码来验证该用户是否为系统中的合法主体,即是否可以访问该系统;用户授权…

【JavaEE】文件操作IO之File 、InputStream、OutputStream 用法详解

目录 一、文件概念 (1)文件定义与组成 (2)文件的树形结构组织和目录 (3)文件路径 (4)文件分类 (5)文件操作 二、文件操作File类 (1&…

20230202在AIO-3568J开发板在原厂Android12下增加ll命令

20230202在AIO-3568J开发板在原厂Android12下增加ll命令 2023/2/2 11:50 1、使用EVB2的DTS:rk3568-evb2-lp4x-v10.dts,ENG模式编译。没有ll命令! console:/ $ console:/ $ ll /system/bin/sh: ll: inaccessible or not found 127|console:/ …

ESP-IDF:堆排序测试

堆排序测试 /堆排序测试/ void printheap (int arr[],int length) { for(int i0;i<length;i) { cout<<arr[i]<<" "; } cout<<endl; } void swapheap (int arr[],int a, int b) { int temp arr[a]; arr[a] arr[b]; arr[b] temp; } void he…

【数据库原理与SQL Server应用】Part04——数据库操作

【数据库原理与SQL Server应用】Part04——数据库操作一、数据库基本概念1.1 物理数据库1.1.1 页和区1.1.2 数据库文件1.1.3 文件组1.2 逻辑数据库1.3 SQL Server 的系统数据库和用户数据库1.4 报表服务器和报表数据库二、创建数据库2.1 管理工具界面方式创建数据库2.2 命令行方…

CSS列表与表格

目录 ​编辑 HTML 列表和 CSS 列表属性 不同的列表项目标记 实例 图像作为列表项标记 实例 定位列表项标记 实例 删除默认设置 实例 列表 - 简写属性 实例 设置列表的颜色样式 实例 更多实例 所有 CSS 列表属性 表格边框 实例 全宽表格 实例 双边框 合并…

【数据结构与算法】最小生成树 | 最短路径

&#x1f320;作者&#xff1a;阿亮joy. &#x1f386;专栏&#xff1a;《数据结构与算法要啸着学》 &#x1f387;座右铭&#xff1a;每个优秀的人都有一段沉默的时光&#xff0c;那段时光是付出了很多努力却得不到结果的日子&#xff0c;我们把它叫做扎根 目录&#x1f449;…

【图】邻接表存储图

目录 一、概念 图是什么 各种图的定义 二、图的存储结构 邻接矩阵 邻接表 代码实现邻接表存储图&#xff08;不含权重&#xff09; 一、概念 图是什么 图&#xff08;Graph)是由顶点的有穷非空集合和顶点之间边的集合组成&#xff0c;通常表示为:G(V,E)&#xff0c;其中…

Hystrix断路器执行原理

状态机 Hystrix断路器有三种状态,分别是关闭(Closed)、打开(Open)与半开(Half-Open),三种状态转化关系如下: Closed 断路器关闭:调用下游的请求正常通过Open 断路器打开:阻断对下游服务的调用,直接走 Fallback 逻辑Half-Open 断路器处于半开状态:SleepWindowInMi…

第 14 章python学习知识记录(一)

文章目录前言14.1 numpy的使用14.1.1 数字运算14.1.2 N维数组14.1.3 矩阵运算与广播14.1.4 元素访问14.2 Matplotlib的使用14.2.1 绘制简单图形14.2.2 绘制复杂图形14.2.3 显示图片14.3 os函数14.3.1 获取文件路径14.3.2 路径的基本操作14.4 tqdm的使用14.4.1 tqdm的导入和使用…

docker搭建hadoop和hive集群

一、安装docker并生成相关的镜像&#xff08;1&#xff09;安装docker安装docker教程https://www.runoob.com/docker/centos-docker-install.html只要在终端输入&#xff1a;sudo docker run hello-world后出现如下图的内容就证明安装docker成功了&#xff08;2&#xff09;拉取…