java+spring基于ssm的中学校园网站设计与实现

文末获取源码

开发环境

项目编号:Java+MySQL ssm249中学校园网站
开发语言:Java
开发工具:IDEA /Eclipse
数据库:MYSQL5.7
应用服务:Tomcat7/Tomcat8
使用框架:ssm+vue

项目介绍

论文主要是对中学校园网站进行了介绍,包括研究的现状,还有涉及的开发背景,然后还对系统的设计目标进行了论述,还有系统的需求,以及整个的设计方案,对系统的设计以及实现,也都论述的比较细致,最后对中学校园网站进行了一些具体测试。
本文以JSP为开发技术,实现了一个中学校园网站。中学校园网站的主要使用者分为管理员;个人中心、教师管理、学生管理、校园概况管理、名师风采管理、校园公告管理、试卷管理、试题管理、校园论坛、系统管理、考试管理,教师;个人中心、校园概况管理、名师风采管理、校园公告管理、试题管理、试卷管理、系统管理、考试管理,学生;个人中心、校园概况管理、名师风采管理、校园公告管理、系统管理、考试管理,前台首页;首页、校园概况、名师风采、校园公告、论坛信息、试卷列表、新闻资讯、我的、跳转到后台等功能。通过这些功能模块的设计,基本上实现了整个中学校园网站的过程。

系统截图

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

关键代码

package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.JiaoshiEntity;
import com.entity.view.JiaoshiView;

import com.service.JiaoshiService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;


/**
 * 教师
 * 后端接口
 * @author 
 * @email 
 * @date 2021-03-08 15:26:55
 */
@RestController
@RequestMapping("/jiaoshi")
public class JiaoshiController {
    @Autowired
    private JiaoshiService jiaoshiService;
    
	@Autowired
	private TokenService tokenService;
	
	/**
	 * 登录
	 */
	@IgnoreAuth
	@RequestMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		JiaoshiEntity user = jiaoshiService.selectOne(new EntityWrapper<JiaoshiEntity>().eq("gonghao", username));
		if(user==null || !user.getMima().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(), username,"jiaoshi",  "教师" );
		return R.ok().put("token", token);
	}
	
	/**
     * 注册
     */
	@IgnoreAuth
    @RequestMapping("/register")
    public R register(@RequestBody JiaoshiEntity jiaoshi){
    	//ValidatorUtils.validateEntity(jiaoshi);
    	JiaoshiEntity user = jiaoshiService.selectOne(new EntityWrapper<JiaoshiEntity>().eq("gonghao", jiaoshi.getGonghao()));
		if(user!=null) {
			return R.error("注册用户已存在");
		}
		Long uId = new Date().getTime();
		jiaoshi.setId(uId);
        jiaoshiService.insert(jiaoshi);
        return R.ok();
    }
	
	/**
	 * 退出
	 */
	@RequestMapping("/logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        JiaoshiEntity user = jiaoshiService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	JiaoshiEntity user = jiaoshiService.selectOne(new EntityWrapper<JiaoshiEntity>().eq("gonghao", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
        user.setMima("123456");
        jiaoshiService.updateById(user);
        return R.ok("密码已重置为:123456");
    }


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,JiaoshiEntity jiaoshi, HttpServletRequest request){

        EntityWrapper<JiaoshiEntity> ew = new EntityWrapper<JiaoshiEntity>();
    	PageUtils page = jiaoshiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jiaoshi), params), params));
		request.setAttribute("data", page);
        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,JiaoshiEntity jiaoshi, HttpServletRequest request){
        EntityWrapper<JiaoshiEntity> ew = new EntityWrapper<JiaoshiEntity>();
    	PageUtils page = jiaoshiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jiaoshi), params), params));
		request.setAttribute("data", page);
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( JiaoshiEntity jiaoshi){
       	EntityWrapper<JiaoshiEntity> ew = new EntityWrapper<JiaoshiEntity>();
      	ew.allEq(MPUtil.allEQMapPre( jiaoshi, "jiaoshi")); 
        return R.ok().put("data", jiaoshiService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(JiaoshiEntity jiaoshi){
        EntityWrapper< JiaoshiEntity> ew = new EntityWrapper< JiaoshiEntity>();
 		ew.allEq(MPUtil.allEQMapPre( jiaoshi, "jiaoshi")); 
		JiaoshiView jiaoshiView =  jiaoshiService.selectView(ew);
		return R.ok("查询教师成功").put("data", jiaoshiView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        JiaoshiEntity jiaoshi = jiaoshiService.selectById(id);
        return R.ok().put("data", jiaoshi);
    }

    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        JiaoshiEntity jiaoshi = jiaoshiService.selectById(id);
        return R.ok().put("data", jiaoshi);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody JiaoshiEntity jiaoshi, HttpServletRequest request){
    	jiaoshi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(jiaoshi);
    	JiaoshiEntity user = jiaoshiService.selectOne(new EntityWrapper<JiaoshiEntity>().eq("gonghao", jiaoshi.getGonghao()));
		if(user!=null) {
			return R.error("用户已存在");
		}

		jiaoshi.setId(new Date().getTime());
        jiaoshiService.insert(jiaoshi);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody JiaoshiEntity jiaoshi, HttpServletRequest request){
    	jiaoshi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(jiaoshi);
    	JiaoshiEntity user = jiaoshiService.selectOne(new EntityWrapper<JiaoshiEntity>().eq("gonghao", jiaoshi.getGonghao()));
		if(user!=null) {
			return R.error("用户已存在");
		}

		jiaoshi.setId(new Date().getTime());
        jiaoshiService.insert(jiaoshi);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody JiaoshiEntity jiaoshi, HttpServletRequest request){
        //ValidatorUtils.validateEntity(jiaoshi);
        jiaoshiService.updateById(jiaoshi);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        jiaoshiService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<JiaoshiEntity> wrapper = new EntityWrapper<JiaoshiEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}


		int count = jiaoshiService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	
	


}

界面美工:非常美观 商品类型:商业产品 面世时间:2010年 适用操作系统:跨平台 开发语言:Java/Jsp 数据库类型:Mysql 是否加密:无加密 软件大小(多少M)直接填写:30M 最新版本号(直接填写):1.5 开发商类型:团队 演示di址:http://www.51code.tk/dgsx/ 技术支持QQ:654079168 背景 教育部在《关于全面提高高等职业教育教学质量的若干意见》(教高[2006]16号文)中要求:高等职业院校要保证在校生至少有半年时间到企业等用人单位顶岗实习。校企合作是高职院校的办学方向,工学结合人才培养是校企合作的重要形式,顶岗实习是工学结合的重要内容,加强顶岗实习管理与过程监控 ,对于提高高职院校的人才培养质量具有重要的意义。 功能模块 为了更好的推进顶岗实习的工作,推动学校、企业与学生之间的互动性,我们针对多所职业院校进行了深入考察和调研,并结合学生、学校以及相关企业的需求,开发一套分布式顶岗实习教学管理平台。此平台分为五种类型进行登陆,分别为就业指导中心(超级管理员)、学校领导、管理教师、企业负责人和学生。 1、顶岗实习管理系统功能模块概述 ² 系统公共资源模块 管理员可在本模块中发布相关单位用人信息,发布院系通知以及院系新闻动态,管理员在这里可以及时的向在企业实习的学生、指导教师提供及时有效的学院动态、最新通知公告以及企业的最新用人信息。学生登陆系统,在该模块,可以在工作的同时了解学校的情况,了解就业动向以及学校在不同阶段对实习学生的不同要求。 ² 院系、专业、班级、班级班主任以及学生管理模块 该板块在顶岗实习管理系统前期初始化系统时就应该由管理员导入即将实习年级的基本信息,包括院系、专业、班级、设定班级班主任、批量导入实习学生的基本信息,为顶岗实习管理系统有条不紊的运行做好铺垫工作。此模块主要是为管理员提供一个顶岗实习管理系统中各个院系、专业、班级、班主任以及学生基本信息管理的平台,管理员通过这个模块,对不同的年级的顶岗实习进行有效的初始化。 ² 学生顶岗企业信息管理模块 学生在企业顶岗实习期间,需要将企业的相关信息反馈回学校。学生将企业的名称,性质,企业中的指导老师,企业的规模等信息通过顶岗实习管理系统提交到学校数据库汇总,以便对不同专业的学生进行就业信息的分析,包括就业地域性,就业企业的性质,就业岗位的需求程度等,为学校今后的发展提供良好的基础。另外,管理员通过该模块,可以动态增删学生实习单位,为下一批实习学生,提供更多可靠、稳定、有效的实习单位以供其选择申请实习。 ² 站内交流模块 该板块是顶岗实习管理系统内部的互动板块,主要针对学生与指导教师的交流问题,学生在实习过程中遇到问题可以当场向指导教师提出疑问,如果不方便当场提问,实习学生就可以通过本模块向指导教师发送信件,以站内信的形式向指导教师提问。指导教师通过本模块可以及时了解指导学生在实习过程中遇到的各种问题,可以对学生的提问作出相应的答复,回复学生提问,同时,指导老师也可以通过提问的方式定期检查学生在企业实习的情况,更好的管理学生各方面的行为。 ² 学生实习报告模块 学生需要在规定的时间段内完成一次顶岗实习报告,记录学生在企业的工作经历。此子系统可有效的督促学生定期完成实习报告。老师可通过网络直接批阅学生的实习报告,掌握学生在企业中的实习情况,并提出进一步的要求。另外,管理员以及班主任可以针对不同阶段的月报进行有选择的批量输出打印,作出汇总评价。 ² 学生成绩管理模块 学生完成顶岗实习的工作后,需要将自身工作体会及感受进行总结,完成顶岗实习总结,最终提交实习论文。教师根据学生的实习情况进行评定成绩,并能够将学生的总结和最后成绩进行筛选打印,以便学院存档。学生也可以通过网络查询自己的成绩(实习月报总成绩和实习论文成绩)。 ² 顶岗实习信息综合查询模块 这个模块主要是方便教学部门(如系部,教务处、就业指导中心等)对相关系统进行查询,在这个系统中,包含学生所有信息的查询,查询方式也要求多样化,如指定班级、姓名或学号等,同时还要求能够进行模糊查询等方式。这样,各部门能够通过网络查询到学生在企业实习的情况,能够对学生起到有效的监督和管理作用。 ² 综合统计模块 这一模块不仅能够统计学生顶岗实习的信息,同时还对相关信息进行分类汇总,统计出顶岗实习单位地域的分布情况,企业对人才,专业知识不同需求的分布情况;顶岗实习不仅对学生有要求,并且对教师也有要求。教师对学生管理和指导的程度直接影响学生顶岗实习效果的好坏,所以对指导教师的管理也是非常必要的。通过统计模块能够统计学生与教师交流的情况,以及是否定期批阅了学生的实习小结以及班主任、指导教师主动联系学生次数的统计等信息。 2、顶岗实习管理系统角色分配概述 ² 管理员 管理员拥有系统的最高权限,可以增加或删除系统的任何其他角色, 并可对角色的权限和实习管理的流程进行设定,可以查看管理员列表、添加管理员、添加学校领导、修改登陆密码、管理专业信息、管理学生实习单位、学生信息管理、批量导入学生、归类查看学生列表、智能搜索特定学生、管理教师角色(班主任、学院指导教师、企业指导教师、企业负责人)、分类查看教师信息、智能搜索查看教师信息、管理实习月报系统、管理学生实习手续、管理企业提交需求信息、管理调查问卷系统、管理数据库备份系统、管理系统公告等。 ² 学校领导 学校领导具有管理员所有的浏览权限,但不具有系统控制权限,不再重复介绍,分析见管理员。 ² 企业负责人 企业负责人是学生实习企业的负责人,发布企业用人信息、负责向学生介绍企业相关情况、浏览所在企业实习学生列表以及实习学生基本信息、评价实习学生所有实习情况、修改个人登陆密码、修改个人基本信息(Email、联系电话、QQ等)、上传个人头像等。 ² 企业指导教师 企业指导教师负责实习学生日常实习的指导、浏览其所指导学生的基本信息、为指导学生日常实习表现打分、修改个人登陆密码、修改个人基本信息(Email、联系电话、QQ等)、上传个人头像等。 ² 学院指导教师 学院指导教师主要负责指导学生的论文评价,具有修改个人登录密码,修改个人基本信息(Email、联系电话、QQ等)、上传个人头像、对学生进行专业指导、给指导学生提交的论文评分并作出评价等。 ² 班主任 班主任即班级管理员,权限仅限于当前管理班级,具有修改个人登录密码,修改个人基本信息(Email、联系电话、QQ等)、上传个人头像、查看所在班级信息、查看班级学生成员列表及学生信息、给学生发站内信、修改本班学生密码、管理班级学生实习月报、管理本班学生实习手续(首次、变更)等。 ² 学生 学生是本管理系统的主题角色,具有修改个人登录密码,修改个人基本信息(Email、联系电话、家庭联系电话、QQ等)、上传个人头像功能模块、申请实习单位、填写实习月报、查看自己的实习月报、查看月报成绩以及月报总成绩、提交论文、查看论文成绩、浏览所在班级成员、浏览指导教师和班主任的联系方式、给指导教师及班主任发站内信、查看企业指导教师对自己的日常评定、查看实习单位负责人对自己最终实习鉴定、填写系统调查问卷、浏览系统公共资源(通知公告、新闻动态、规章制度、招聘信息、表格下载、实习论坛、看看学院等信息)等功能。 程序部分界面演示 1、管理登陆 2、内部页面 3、新闻发布系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wqq6310855

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

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

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

打赏作者

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

抵扣说明:

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

余额充值