基于ssm的公选课申报系统

一、系统简介


本项目采用eclipse工具开发,spring+springmvc+mybatis+bootstrap技术编写,数据库采用的是mysql,navicat管理工具。

系统一共分为3个角色分别是:管理员,审批人,教师

二、模块简介

管理员

1、登录

2、审批人管理

3、教师管理

4、分类管理

5、计划时间管理

6、公选课申报管理

7、个人信息管理

8、数据统计管理

审批人

1、登录

2、个人信息管理

3、审批公选课

4、统计数据

5、下载附件

教师

1、登录

2、个人信息管理

3、上传附件

4、公选课申报

5、历史记录查询

项目简介:
难度等级:✩✩✩
用户类型:3角色(管理员,审批人,教师)
设计模式:MVC
项目架构:B/S架构
开发语言:Java语言
前端技术:bootstrap+HTML、CSS、JS、JQuery等
后端技术:JSP、ssm框架
运行环境:Windows7或10、JDK1.8
运行工具:本系统采用Eclipse开发,仅支持Eclipse运行,不支持MyEclipse和IDEA运行,因为三者的骨架不一样,强行导入打开运行可能会导致出现未知的错误。(如若想用idea运行,需要转换!!!!)
数  据  库:MySQL5.5/5.7/8.0版本
运行服务器:Tomcat7.0/8.0/8.5/9.0等版本
是否基于Maven环境:否
是否采用框架:是
数据库表数量:7张表
JSP页面数量:20多张
是否有分页:有分页

获取地址:https://www.jiuniao.com/code/13468.html

相关截图


 

 相关代码

登录

<%@ 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 name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>登录</title>
    <link rel="icon" href="<%=path%>/resource/static/favicon.ico">
    <link rel="stylesheet" href="<%=path%>/resource/static/bootstrap/css/bootstrap.min.css">
    <link rel="stylesheet" href="<%=path%>/resource/static/admin/css/login.css">
    <script src="<%=path%>/resource/static/js/vue.min.js"></script>
    <script src="<%=path%>/resource/static/js/jquery-3.3.1.min.js"></script>
    <script src="<%=path%>/resource/static/bootstrap/js/bootstrap.bundle.js"></script>
    <script src="<%=path%>/layui/layui.js"></script>
</head>
<body>
<div class="login">
    <form id="saveForm">
        <h2>公选课申报系统</h2>
        <div class="form-group">
            <label>用户名</label>
            <input type="text" v-model="username" name="username" id="username" class="form-control form-control-lg">
        </div>
        <div class="form-group">
            <label>密码</label>
            <input type="password" v-model="password" name ="password" id="password" class="form-control form-control-lg" id="pwd">
        </div>
        <div class="form-group form-check">
           <input type="radio" class="form-check-input" name="type" value="1" id="exampleCheck2" checked>
            <label class="form-check-label" for="exampleCheck2">管理员</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <input type="radio" class="form-check-input" name="type" value="2" id="exampleCheck1" >
            <label class="form-check-label" for="exampleCheck1">教师</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
              <input type="radio" class="form-check-input" name="type" value="3" id="exampleCheck1" >
            <label class="form-check-label" for="exampleCheck1">审批人</label>
        </div> 

        <button type="button" :disabled="loading" @click="login" id="login" class="btn btn-primary btn-lg  btn-block">
            <span v-show="loading" class="spinner-grow spinner-grow-sm" role="status" aria-hidden="true"></span>
            立即登录
        </button>
<!--         <a  data-target="#myModal" data-toggle="modal" >供应商注册</a>
 -->    </form>
</div>


	<div class="modal fade" id="myModal" aria-labelledby="myModallabel"
		aria-hidden="true" tabindex="-1" >
		<div class="modal-dialog">
			<div class="modal-content" >
				<div class="modal-header">
					
					<h5 class="modal-title" id="myModallabel">供应商注册</h5>
					<button class="close" type="button" data-dismiss="modal"
						aria-hidden="true">&times;</button>
				</div>
				<form id="addForm" class="form-horizontal">
					<div class="modal-body">
						<div class="form-group">
							<label class="control-label col-lg-4">姓名:</label>
							<div class="col-lg-9">
								<input type="text" name="uname" class="form-control"> 
							</div>
						</div>
						<div class="form-group">
							<label class="control-label col-lg-4">公司名:</label>
							<div class="col-lg-9">
								<input type="text" name="company" id="company" class="form-control">
							</div>
						</div>
						<div class="form-group">
							<label class="control-label col-lg-4">密码:</label>
							<div class="col-lg-9">
								<input type="password" name="pwd" id="pwd" class="form-control">
							</div>
						</div>
						<div class="form-group">
							<label class="control-label col-lg-4">主营产品:</label>
							<div class="col-lg-9">
								<input type="text" name="address" id="address" class="form-control">
							</div>
						</div>
						<div class="form-group">
							<label class="control-label col-lg-4">手机号:</label>
							<div class="col-lg-9">
								<input type="text" name="phone" id="phone" class="form-control">
							</div>
						</div>
					</div>

					<div class="modal-footer">
						<button class="btn btn-default" type="button" data-dismiss="modal">关闭</button>
						<a class="btn btn-success aaa" type="button" id="save" >提交</a>
					</div>
				</form>
			</div>
		</div>
	</div>
	
	
<script>
		$("#save").click(function() {
			$.ajax({
				cache : true,
				type : "post",
				url : "addGys",
				data : $("#addForm").serialize(),
				async : false,
				success : function(e) {
					if (e) {
						alert("注册成功!");
						document.location.reload();//当前页面
					} else {
						alert("注册失败,手机号重复!");
					}
				}
			})
		});
	</script>
		
<script>

layui.use([ 'form','jquery','layer','laydate','upload' ], function() {
	var form = layui.form,
	 layer = layui.layer,
	 laydate = layui.laydate,
	 upload = layui.upload,
	 $= layui.jquery;
	 form.render();//这句一定要加,占坑
	
	  /*   laydate.render({
	    elem: '#schoolTime'
	  }); 
	    laydate.render({
	    elem: '#day'
	  });  */
	  
	  
	  var uploadInst = upload.render({
          elem: '#test1'
          ,url: 'upload2'
          ,accept:'images'
          ,size:50000
          ,before: function(obj){

              obj.preview(function(index, file, result){

                  $('#demo1').attr('src', result);
              });
          }
          ,done: function(res){
              //如果上传失败
              if(res.code > 0){
                  return layer.msg('上传失败');
              }
              //上传成功
              var demoText = $('#demoText');
              demoText.html('<span style="color: #4cae4c;">上传成功</span>');

              var fileupload = $(".img");
              fileupload.attr("value",res.data.src);
              console.log(fileupload.attr("value"));
          }
          ,error: function(){
              //演示失败状态,并实现重传
              var demoText = $('#demoText');
              demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
              demoText.find('.demo-reload').on('click', function(){
                  uploadInst.upload();
              });
          }
      });
	 
	    

	  });


</script>

<script>
	    $("#login").click(function(){
	    	var username = $("#username").val();
	    	var password = $("#password").val();
	    	if(username == null || username == ""){
	    		alert("请填写用户名");
	    		return false;
	    	}if(password == null || password == ""){
	    		alert("请填写密码");
	    		return false;
	    	}
			//执行添加的操作ajax
			$.ajax({
				cache:true,
				type:"post",
				url:"login",
				data:$("#saveForm").serialize(),
				async:false,
				success:function(e){
					if(e){
						alert("登录成功");
						 window.parent.location.href="toMain";
					}else{
						alert("登录失败,账号或密码错误");
					}
				}
			})
		});
		   
</script>

</body>
</html>

	/**
	 * 登录
	 * @param username
	 * @param request
	 * @param password
	 * @param session
	 * @param response
	 * @param mv
	 * @return
	 * @throws ServletException
	 * @throws IOException
	 */
	@RequestMapping("/login")
	@ResponseBody
     public boolean login(@RequestParam("username")String username,
    		 HttpServletRequest request,@RequestParam("password")String password,
    		 HttpSession session,HttpServletResponse response,ModelAndView mv) throws ServletException, IOException {	
		session.removeAttribute("admin");
		session.removeAttribute("user");
	    String type=request.getParameter("type").toString();
	    Admin admin = new Admin();
		request.getSession().setAttribute("type", type);
		boolean re = false;
	    if(type != null && type.equals("1")){
	    	admin.setUsername(username);
	    	admin.setPassword(password);
		    Admin admin1 = us.selectAdmin(admin);
		    if(admin1 != null){
				request.getSession().setAttribute("admin", admin1);
				session.setAttribute("admin", admin1);
				re = true;
		    }
	    }else if(type != null && type.equals("2")){
	    	Teacher teacher = teacherService.selectTeachers(username,password);
	    	if(teacher != null){
				request.getSession().setAttribute("teacher", teacher);
				session.setAttribute("teacher", teacher);
				re = true;
		    }
	    }else if(type != null && type.equals("3")){
	    	User u = new User();
	    	u.setPhone(username);
	    	u.setPassword(password);
	    	User user = us.selectUser(u);
	    	if(user != null){
				request.getSession().setAttribute("user", user);
				session.setAttribute("user", user);
				re = true;
		    }
	    }
		return re;
			
	}

其他相关代码都是类似的,主要是前端jsp和后端控制器交互比较重要!!!非开源!!!!!!
其他模块代码都是类似的,此项目适合初学者学习借鉴,项目整体比较简单,可用作于期末考核,课设,毕设等方面的作业!!!!!
喜欢的朋友的点赞加关注,感兴趣的同学可以研究!!!!!

感谢  = v =
 项目截图中的数据,很多是用来测试的,需要自行添加合适的数据图片!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
一、项目简介本课程演示的是一套基于SSM实现的汽车租赁系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。课程包含: 1. 项目源码、项目文档、数据库脚本、软件工具等所有资料2. 带你从零开始部署运行本套系统3. 该项目附带的源码资料可作为毕设使用4. 提供技术答疑和远程协助指导二、技术实现 后台框架:SpringSpringMVC、MyBatisUI界面:jQuery 、JSP数据库:MySQL 三、系统功能系统分为前台用户租车和后台系统管理:    1.前台用户租车        用户注册、用户登录、用户中心、浏览车辆、车辆搜索        查看车辆明细、租赁车辆、我的订单    2.后台系统管理        用户管理:用户列表、添加用户、修改用户、删除用户、查询用户        新闻管理:新闻列表、添加新闻、修改新闻、删除新闻、查询新闻        车辆品牌管理:车辆品牌列表、添加车辆品牌、修改车辆品牌、删除车辆品牌        车辆管理:车辆列表、添加车辆、修改车辆、删除车辆、查询车辆        订单管理:订单列表、确认订单、删除订单        报表管理:统计信息查询和展示 四、项目截图1)前台用户界面 2)后台系统管理    更多Java毕设项目请关注【毕设系列课程】https://edu.csdn.net/lecturer/2104   点击 我的百科 ,通过百度百科更多了解我 ^_^ 
一、项目简介本课程演示的是一套基于SSM实现的考勤管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。课程包含:1. 项目源码、项目文档、数据库脚本、软件工具等所有资料2. 带你从零开始部署运行本套系统3. 该项目附带的源码资料可作为毕设使用4. 提供技术答疑二、技术实现后台框架:SpringSpringMVC、MyBatisUI界面:JSP、jQuery 、H-ui数据库:MySQL 三、系统功能该系统共包含两种角色:员工、管理员,主要分为前台和后台两大模块。1.前台模块 前台首页、新闻告、员工活动、职位招聘、留言板、用户注册、用户登录、个人中心、我的考勤、我的奖惩、我的培训、我的薪资、修改密码等功能。2.后台模块 系统后台登陆、管理员管理、员工信息管理、部门管理、职务管理、考勤类别管理、员工考勤管理、员工奖惩管理、员工培训管理、员工薪资管理、网站栏目管理、网站内容管理、职位招聘管理、求职简历管理、留言交流管理、留言回复管理等功能。该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 四、项目截图1)前台首面2)个人信息页面3)员工信息管理4)考勤类别管理5)考勤信息管理6)员工薪资管理  更多Java毕设项目请关注【毕设系列课程】https://edu.csdn.net/lecturer/2104   
实现院系、专业、毕业生信息管理(设有就业标志,初值为‘待业’); 实现职业类型、职业信息(职业号、类型号、需求数量、聘用数量、用 人单位)登记; 实现毕业生就业登记(学号、职业号),自动修改相应学生的就业标志 和职业的聘用数量,并保证聘用数量不大于需求数量; 创建存储过程查询毕业生的人数、待业人数、就业人数和就业率; 创建存储过程查询各专业的毕业生就业率; 创建 check 约束限制毕业生性别必须为‘男’或‘女’; 建立表间关系。 二、需求分析 2.1高校就业管理系统 高校就业管理系统化可以完成对学生信息的修改、查询(就业率,已就业信息,未就业信息,司信息)、添加(学生基本信息,院系信息,司信息)、退出功能。初步完成了对高校就业信息的管理,界面设计简洁,使用简单。 2.2高校就业管理系统数据流图实现院系、专业、毕业生信息管理(设有就业标志,初值为‘待业’); 实现职业类型、职业信息(职业号、类型号、需求数量、聘用数量、用 人单位)登记; 实现毕业生就业登记(学号、职业号),自动修改相应学生的就业标志 和职业的聘用数量,并保证聘用数量不大于需求数量; 创建存储过程查询毕业生的人数、待业人数、就业人数和就业率; 创建存储过程查询各专业的毕业生就业率; 创建 check 约束限制毕业生性别必须为‘男’或‘女’; 建立表间关系。 二、需求分析 2.1高校就业管理系统 高校就业管理系统化可以完成对学生信息的修改、查询(就业率,已就业信息,未就业信息,司信息)、添加(学生基本信息,院系信息,司信息)、退出功能。初步完成了对高校就业信息的管理,界面设计简洁,使用简单。 2.2高校就业管理系统数据流图

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码盗_java_bishe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值