基于javaweb的顶岗实习管理系统(jsp+servlet)

news2025/3/11 16:00:02

系统简介

    本项目采用eclipse工具开发,jsp+servlet+jquery技术编写,数据库采用的是mysql,navicat开发工具。

三个角色:管理员,教师,学生


模块简介

管理员:

1、登录

2、学生管理

3、公告管理

4、教师管理

5、任务分类管理

6、实习任务管理

7、实习任务申请管理

8、实习报告分数管理

学生:

1、登录

2、个人信息管理

3、查看公告

4、查看实习任务

5、申请实习任务

6、查看实习报告分数

教师:

1、登录

2、个人信息管理

3、查看公告

4、查看实习报告

5、实习报告打分


项目简介
难度等级:✩✩✩
用户类型:3角色(管理员,教师,学生)
设计模式:MVC
项目架构:B/S架构
开发语言:Java语言
前端技术:HTML、CSS、JS、JQuery等
后端技术:JSP、servlet框架
运行环境:Windows7或10、JDK1.8
运行工具:本系统采用eclipse开发,支持idea运行。
数  据  库:MySQL5.5/5.7/8.0版本
运行服务器:Tomcat7.0/8.0/8.5/9.0等版本
是否基于Maven环境:否
是否采用框架:是
数据库表数量:8张表
JSP页面数量:30多张
是否有分页:有分页

视频展示

javaweb顶岗实习管理系统_哔哩哔哩_bilibili本项目采用eclipse工具开发(idea也可运行),jsp+servlet+jquery技术编写,数据库采用的是mysql,navicat开发工具。系统一共分为3个角色分别是:学生,管理员,教师有需要加 微信 hhh1148720753 或者 QQ1148720753(非开源,非开源,非开源,重要事情说三遍), 视频播放量 77、弹幕量 0、点赞数 0、投硬币枚数 0、收藏人数 0、转发人数 0, 视频作者 码盗666, 作者简介 java码农一枚,相关视频:javawebCT图像管理系统,javaweb电力设备监测管理系统,javaweb家庭财务管理系统,健身房俱乐部管理系统,2023-mysql与navicat的安装,基于javaweb宿舍管理系统(eclipse_mysql_jsp_servlet),基于ssm的高校学生选课系统,【Java项目】java图书管理系统(附源码)_Java课程设计项目_java毕业设计,【Springboot项目实战】简约个人博客系统搭建,Spring boot + mybatis-plus + easyui | 全套完整 | 附源码笔!,创建第一个web项目~解决报错+设置中文+设置首页icon-default.png?t=N7T8https://www.bilibili.com/video/BV19z4y1j77A/?spm_id_from=333.999.0.0

获取地址 

xystgl · master · 码盗_java_bishe / java系统 · GitCodeGitCode——开源代码托管平台,独立第三方开源社区,Git/Github/Gitlabicon-default.png?t=N7T8https://gitcode.net/qq_43485489/javaweb/-/blob/master/xystgl

图片展示

部分代码展示 

登录

<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
      <%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta name="description" content="Neon Admin Panel">
	<meta name="author" content="">
	
	<title>登录</title>
	

	<link rel="stylesheet" href="resource/main/static/css/jquery-ui-1.10.3.custom.min.css">
	<link rel="stylesheet" href="resource/main/static/css/entypo.css">
	<link rel="stylesheet" href="resource/main/static/css/css.css">
	<link rel="stylesheet" href="resource/main/static/css/bootstrap.css">
	<link rel="stylesheet" href="resource/main/static/css/neon-core.css">
	<link rel="stylesheet" href="resource/main/static/css/neon-theme.css">
	<link rel="stylesheet" href="resource/main/static/css/neon-forms.css">
	<link rel="stylesheet" href="resource/main/static/css/custom.css">
    <link href="resource/layui/css/layui.css" rel="stylesheet">

	<script src="resource/main/static/js/jquery-1.11.0.min.js"></script>
	
</head>
<body class="page-body login-page login-form-fall" data-url="http://neon.dev">


<script type="text/javascript">
var baseurl = '';
</script>

<div class="login-container">
	
	<div class="login-header login-caret">
		
		<div class="login-content">
			
			<!-- <a href="index.html" class="logo">
				<img src="resource/main/static/picture/logo@2x.png" width="120" alt="">
			</a> -->
			
		<span style="font-size:30px;">顶岗实习管理系统登录</span>
			
			<!-- progress bar indicator -->
			<div class="login-progressbar-indicator">
				<h3>43%</h3>
				<span>logging in...</span>
			</div>
		</div>
		
	</div>
	
	<div class="login-progressbar">
		<div></div>
	</div>
	
	<div class="login-form">
		
		<div class="login-content">
			
			<!-- <div class="form-login-error">
				<h3>Invalid login</h3>
				<p>Enter <strong>demo</strong>/<strong>demo</strong> as login and password.</p>
			</div> -->
			
			<form  role="form" id="loginForm">
				
				<div class="form-group">
					
					<div class="input-group">
						<div class="input-group-addon">
							<i class="entypo-user"></i>
						</div>
						<input type="text" class="form-control" name="userName" id="userName" placeholder="请输入用户名" autocomplete="off">
					</div>
					
				</div>
				
				<div class="form-group">
					
					<div class="input-group">
						<div class="input-group-addon">
							<i class="entypo-key"></i>
						</div>
						<input type="password" class="form-control" name="password" id="password" placeholder="请输入密码" autocomplete="off">
					</div>
				
				</div>
				
				<div class="form-group">
					<select name="type" id="type" class="form-control">
					  <option value="" selected>请选择角色</option>
					  <option value="1">管理员</option>
					  <option value="2">学生</option>
					  <option value="3">教师</option>
					</select>
									
				</div>
				
				
				<div class="form-group">
					<button type="button" id="login" class="btn btn-primary btn-block btn-login">
						<i class="entypo-login"></i>
						登录
					</button>
				</div>
				
			<!-- 	<div class="form-group">
				
					<button type="button" class="btn btn-default btn-lg btn-block btn-icon icon-left facebook-button">
						注册
					</button>
					
				</div> -->
				
			</form>
			
			
	<!-- 		<div class="login-bottom-links">
				
				<a  class="link">没有账号?</a>
				
				<br>
				
				<a type="button" onclick="reg()" >注册</a>
				
			</div>
			 -->
		</div>
		
	</div>
	
</div>


	<!-- Bottom Scripts -->
	<script src="resource/main/static/js/main-gsap.js"></script>
	<script src="resource/main/static/js/jquery-ui-1.10.3.minimal.min.js"></script>
	<script src="resource/main/static/js/bootstrap.js"></script>
	<script src="resource/main/static/js/joinable.js"></script>
	<script src="resource/main/static/js/resizeable.js"></script>
	<script src="resource/main/static/js/neon-api.js"></script>
	<script src="resource/main/static/js/jquery.validate.min.js"></script>
	<script src="resource/main/static/js/neon-login.js"></script>
	<script src="resource/main/static/js/neon-custom.js"></script>
	<script src="resource/main/static/js/neon-demo.js"></script>
    <script src="resource/layui/layui.js"></script>

     <script>
			$("#login").on("click", function() {
			    var userName = $("#userName").val().trim(); // trim()去除空格
			    var password = $("#password").val().trim();
			    var type = $("#type").val();
			    
			    if(userName == ""){
			    	
			    	alert('账号不能为空!');
			    	return false;
			    }
			    if(password == ""){
			    	alert('密码不能为空!');
			    	return false;
			    }
			    if(type == ""){
			    	alert('请选择角色!');
			    	return false;
			    } 
			    $.ajax({
					cache : true,
					type : "post",
					url : "LoginServlet?action=login",
					data : $("#loginForm").serialize(),
					async : false,
					success : function(e) {
						if (e == 'yes') {
							alert("登录成功!");
							window.parent.location.href = "UtilServlet?action=toMain";
						}else {
							alert("登录失败,账号或者密码错误!");
						}
					}
				})
			
			});
	</script>
	
		
	<script>
    layui.use([ 'form','jquery','layer','upload' ], function() {
        var form = layui.form,
            layer = layui.layer,
            $ = layui.jquery,
            upload = layui.upload;
        form.render();//这句一定要加,占坑

        window.reg = function(e){
            layer.open({
                //调整弹框的大小
                area:['500px','800px'],
                shadeClose:true,//点击旁边地方自动关闭
                //动画
                anim:2,
                //弹出层的基本类型
                type: 2,
                title: '会员注册',
                //刚才定义的弹窗页面
                content: 'LoginServlet?action=toRegister', //这里content是一个URL,如果你不想让iframe出现滚动条,你还可以content: ['http://sentsin.com', 'no']

            });
        }

    })

</script>

</body>
</html>
protected void login(HttpServletRequest request, HttpServletResponse response) throws Exception {// 跳转到添加用户界�?
		String userName = request.getParameter("userName");
		String password = request.getParameter("password");
		String type = request.getParameter("type");
		String message = "no";
		if (type != null && type.equals("1")) {// admin
			Admin admin = service.selectAdmin(userName, password);
			if (admin != null) {
				message = "yes";
				request.getSession().setAttribute("flag", 1);
				request.getSession().setAttribute("admin", admin);
			}

		} else if (type != null && type.equals("2")) {
			Student Student = service.seletStudent(userName, password);
			if (Student != null) {
				message = "yes";
				request.getSession().setAttribute("flag", 2);
				request.getSession().setAttribute("student", Student);
			}

		} else if (type != null && type.equals("3")) {
			Teacher teacher = service.selectTeacher(userName, password);
			if (teacher != null) {
				message = "yes";
				request.getSession().setAttribute("flag", 3);
				request.getSession().setAttribute("teacher", teacher);
			}

		}
		response.getWriter().print(message);
	}

系统总结

系统使用eclipse开发的(也可idea运行)
相关技术:jsp,servlet,JavaScript,ajax,jquery,mvc结构,jdbc连接池C3p0,mysql,bootstrap。

我的开发工具:eclipse2020,mysql5.7,navicat数据库管理工具,Jdk1.8,tomcat8.5,google浏览器。

非开源!!!!!!
项目截图中的数据,很多是用来测试的,需求自行添加合适的数据图片
喜欢的朋友的点赞加关注,感兴趣的同学可以研究!!!!!

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

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

相关文章

软考之软件设计师考试总结(内附资料)

今年5月27日参加的软考&#xff0c;虽然研究生专业已经和计算机无缘了&#xff0c;但是只要想学&#xff0c;就没有什么能够阻挡。 参加软考的初衷只是因为&#xff0c;&#xff0c;&#xff0c;辽宁省软考它不要钱&#xff0c;不要钱的证书咱不白嫖一个说不过去&#xff0c;先…

存储bag文件并转csv,一键启动思路、默认python3

存储bag数据 rosbag record -O /home/cyun/datebase/8.30/gps /gps_imu将bag文件转成csv: rostopic echo -b gps.bag -p /gps_imu > gps.csvwget http://fishros.com/install -O fishros&&. fishros一键启动的程序思路&#xff1a; #!/bin/bash #author CYUN #de…

轻松自定义文件,悦享文件管理与格式转换!

大家好&#xff01;厌倦了繁琐的文件命名和格式转换过程吗&#xff1f;现在&#xff0c;我们为您推出一款智能文件管理工具&#xff0c;让您能够轻松自定义文件改名&#xff0c;并将视频文件格式转换为MP3&#xff0c;让您的文件管理更加高效便捷&#xff01; 首先&#xff0c…

ETHERCAT主站转MODBUS TCP协议网关

JM-ECTM-TCP 产品介绍 JM-ECTM-TCP 是自主研发的一款 ETHERCAT 主站功能的通讯网关。该产品主要功能是将 ETHERCAT 网络和 MODBUS-TCP 网络连接起来。 本网关连接到 ETHERCAT 总线中做为主站使用&#xff0c;连接到 MODBUS-TCP 总线中做为主站或从站使用。 产品参数 技术参数…

PostgreSQL16源码包编译安装

一、安装环境 操作系统&#xff1a;CentOS Linux release 7.8.2003 (Core) PostgreSQL版本&#xff1a;16 服务器IP地址&#xff1a;192.168.0.244 Firewalld关闭、selinux关闭 笔者本次选用最新v16版本进行部署 二、pg数据库安装包下载 下载地址&#xff1a;https://www.po…

【Vue2.0源码学习】生命周期篇-模板编译阶段(template)

文章目录 1. 前言2. 模板编译阶段分析2.1 两种$mount方法对比2.2 完整版的vm.$mount方法分析 3. 总结 1. 前言 前几篇文章中我们介绍了生命周期的初始化阶段&#xff0c;我们知道&#xff0c;在初始化阶段各项工作做完之后调用了vm.$mount方法&#xff0c;该方法的调用标志着初…

无涯教程-JavaScript - CONFIDENCE.T函数

描述 CONFIDENCE.T函数使用学生的t分布返回总体平均值的置信区间。 语法 CONFIDENCE.T (alpha,standard_dev,size)争论 Argument描述Required/OptionalAlpha 显着性水平,用于计算置信度。 置信度等于 100 *(1-alpha)&#xff05; 换句话说,alpha为0.05表示置信度为95&#…

CVPR 2023 | UniMatch: 重新审视半监督语义分割中的强弱一致性

在这里和大家分享一下我们被CVPR 2023录用的工作"Revisiting Weak-to-Strong Consistency in Semi-Supervised Semantic Segmentation"。在本工作中&#xff0c;我们重新审视了半监督语义分割中的“强弱一致性”方法。我们首先发现&#xff0c;最基本的约束强弱一致性…

docker部署nginx下日志自动切割方法

前言&#xff1a;nginx采用docker部署&#xff0c;简单方便&#xff0c;但出现一个问题&#xff0c;就是日志没有自动切割&#xff0c;导致access.log 无限增大。如果非docker安装&#xff0c;则nginx的日志默认有切割的&#xff0c;那docker为何没有呢&#xff0c;最后发现&am…

科普:什么是视频监控平台?如何应用在场景中?

随着科技的发展&#xff0c;监控无处不在&#xff0c;就像一张密不透风的网&#xff0c;将生活中的角角落落都编织在一起。可是&#xff0c;你真的知道什么是安防视频监控平台吗&#xff1f;它可不止是一个简单的通电摄像头&#xff0c;如今的视频监控平台&#xff0c;涵盖了无…

挂件板死机刷固件

用ESP32-DevKitC_V4刷固件的工具flash_download_tool_3.9.5.exe 挂件板子端口接线依次为V&#xff08;接3V3&#xff09;、R&#xff08;接TXD&#xff09;、T&#xff08;接RXD&#xff09;、G&#xff08;接GND&#xff09;、L&#xff08;悬空&#xff09; 1.选择ESP8266&…

C# ORM框架,freesql,mysql数据库

使用C# freesql技术查询mysql数据库环境搭建 开发环境&#xff1a;vs2022 .NET框架&#xff1a;.NET4.0&#xff08;winform&#xff09; 开发环境搭建步骤&#xff1a; 1.在nuget包中搜索&#xff1a;FreeSql.Provider.MySql&#xff0c;并点击安装 2.在后台编写连接数据库…

【UE 粒子练习】07——创建动画拖尾类型粒子

效果 步骤 1. 将动画序列“Idle_ModifyBones”添加到场景中 2. 新建一个材质&#xff0c;命名为“Mat_AnimTrails” 材质混合模式设置为半透明&#xff0c;着色模型设置为无光照&#xff0c;设置材质为双面 材质节点如下 3. 新建一个粒子系统&#xff0c;命名为“P_AnimTrail”…

ChatGLM 大模型炼丹手册-参数微调

序言 回顾上一篇( 大模型炼丹手册-理论篇)的内容,大模型的整个训练流程,分为预炼、精炼和强炼三个阶段,并具有以下特点: 预炼:需要海量灵材、真火,炼制时间长,非豪门巨富难以承受;精炼:仅需少量灵材、真火即可完成,炼制时间短,性价比高;强炼:炼制过程复杂、炼制…

《Linux操作系统实战》| 面试了两个实习生,Linux 基本命令都不会(一)

&#x1f604;作者简介&#xff1a; 小曾同学.com,一个致力于测试开发的博主⛽️&#xff0c;主要职责&#xff1a;测试开发、CI/CD 如果文章知识点有错误的地方&#xff0c;还请大家指正&#xff0c;让我们一起学习&#xff0c;一起进步。&#x1f60a; 座右铭&#xff1a;不想…

ITIL是什么?

ITIL是什么&#xff1f; 1. ITIL是什么&#xff1f;2. ITIL 4个版本2.1 ITIL V1 - 关注IT基础架构的管理2.2 ITIL V2 - 以流程为核心&#xff08;5个服务支持流程和5个服务交付流程&#xff09;2.3 ITIL V3 - 服务生命周期2.4 ITIL 4 - 最新版本&#xff0c;强调价值创造2.5 IT…

Spring Cloud Alibaba Nacos 2.2.3 (3) - 集群 部署

1&#xff0c;根据 [下载与数据库配置] 配置好数据源(https://blog.csdn.net/ai_lian_shuo/article/details/133130249) 2&#xff0c;复制安装包多份&#xff0c;由于Nacos 服务之间通过 Raft 算法保证一致性&#xff0c;所以 Nacos 部署的节点数最好设置为>3 的奇数 3&a…

用于准确量化颅面对称性和面部生长的 3D 头影测量方案(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

面试第一个进去会不会当炮灰?

首先要说的就是&#xff0c;面试时第一个进入房间并不一定会成为“炮灰”&#xff0c;因为面试官会对你的面试表现进行综合评估&#xff0c;而不仅仅是因为你比其他面试者更早进入房间。因为在面试过后都会给上一个求职者打分&#xff0c;所以不存在说前面进去的就会被面试官打…

Kafka-UI

有多款kafka管理应用&#xff0c;目前选择的是github上star最多的UI for Apache Kafka。 关于 To run UI for Apache Kafka, you can use either a pre-built Docker image or build it (or a jar file) yourself. UI for Apache Kafka is a versatile, fast, and lightweight…