基于javaweb+mysql的ssm家校通管理系统(java+ssm+jsp+bootstrap+echarts+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
注意本项目需使用jdk1.7版本
注意本项目需使用jdk1.7版本
注意本项目需使用jdk1.7版本
基于javaweb+mysql的SSM家校通管理系统(java+ssm+jsp+bootstrap+echarts+mysql)
项目介绍
本项目包含管理员、教师、家长用户三种角色; 管理员角色包含以下功能: 管理员登录,用户注册申请,学校用户账号管理,学校管理员管理,网站介绍管理,系统公告管理,网站新闻发布,新闻审核管理,公告审核管理等功能。
教师角色包含以下功能: 教师登录,学生管理,考试管理,沟通交流管理,布置作业等功能。
家长用户角色包含以下功能: 用户首页,网站新闻,公告信息,用户登录,家长互动等功能。
环境需要
1.运行环境:jdk必须使用JDK7,其它版本暂不支持。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本; 6.是否Maven项目: 否;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目
技术栈
- 后端:Spring SpringMVC MyBatis 2. 前端:JSP+css+javascript+bootstrap+jQuery+echarts
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,在浏览器中输入地址 登录
return "news/newsList";
}
/**
* 网站新闻最新动态
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/findNewsList1.do")
public String findNewsList1(News news, Model model, HttpServletRequest request, HttpServletResponse response) {
//系统网站新闻
Map<String, Object> map1 = getMap();
map1.put("type",1);
map1.put("a",1);
List<News> newsList1=newsService.list(map1);
model.addAttribute("newsList1", newsList1);
//校园网站新闻
Map<String, Object> map2 = getMap();
map2.put("type",2);
map2.put("a",1);
List<News> newsList2=newsService.list(map2);
model.addAttribute("newsList2", newsList2);
return "news/newsList1";
}
/**
* 校园网站新闻
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/findNews2.do")
public String findNews2(News news, Model model, HttpServletRequest request, HttpServletResponse response) {
//网站新闻
Map<String, Object> map1 = getMap();
map1.put("type",2);
List<News> newsList1=newsService.list(map1);
model.addAttribute("newsList1", newsList1);
return "news/uNews";
}
/**
* 分页查询 返回list对象(通过对象)
*
* @param request
*/
@RequestMapping(value = "/saveFile")
public String saveFile(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request, Model model) {
System.out.println("开始");
String path = request.getSession().getServletContext().getRealPath("/upload");
String fileName = file.getOriginalFilename();
System.out.println(path);
File targetFile = new File(path, fileName);
if(!targetFile.exists()){
targetFile.mkdirs();
}
//保存
try {
file.transferTo(targetFile);
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
/**
* springMvc多文件上传
* @param files
* @param id
* @return
*/
@RequestMapping(value = "/saveFiles")
public String saveFiles(@RequestParam("file") CommonsMultipartFile[] files,Integer id,HttpServletRequest request){
for(int i = 0;i<files.length;i++){
System.out.println("fileName---------->" + files[i].getOriginalFilename());
if(!files[i].isEmpty()){
int pre = (int) System.currentTimeMillis();
try {
//拿到输出流,同时重命名上传的文件
String filePath = request.getRealPath("/upload");
File f=new File(filePath);
if(!f.exists()){
f.mkdirs();
}
String fileNmae=new Date().getTime() + files[i].getOriginalFilename();
File file=new File(filePath+"/"+pre + files[i].getOriginalFilename());
if(!file.exists()){
file.createNewFile();
@ResponseBody
public String exAddJson(Classroom classroom, Model model, HttpServletRequest request, HttpServletResponse response) {
classroomService.insert(classroom);
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put("message", "添加成功");
return jsonObject.toString();
}
/**
* ajax 修改
* @param
* @return
*/
@RequestMapping(value = "/exUpdate.json", produces=MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.POST)
@ResponseBody
public String exUpdateJson(Classroom classroom, Model model, HttpServletRequest request, HttpServletResponse response) {
classroomService.update(classroom);
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put("message", "修改成功");
return jsonObject.toString();
}
/**
* ajax 删除
* @return
*/
@RequestMapping(value = "/delete.json", produces=MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.POST)
@ResponseBody
public String exDeleteJson(Integer id, Model model, HttpServletRequest request, HttpServletResponse response) {
//真正删除
classroomService.deleteById(id);
//通过参数删除
//Map<String,Object> params = new HashMap<String,Object>();
//params.put("id", id);
//classroomService.deleteBySqId("deleteBySql", params);
//状态删除
//Classroom load = classroomService.load(id);
//load.setIsDelete(1);
//classroomService.update(load);
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put("message", "删除成功");
return jsonObject.toString();
}
/**
* 单文件上传
* @param file
* @param request
* @return
*/
@RequestMapping(value = "/delete.json", produces=MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.POST)
@ResponseBody
public String exDeleteJson(Integer id, Model model, HttpServletRequest request, HttpServletResponse response) {
//真正删除
scoreService.deleteById(id);
//通过参数删除
//Map<String,Object> params = new HashMap<String,Object>();
//params.put("id", id);
//scoreService.deleteBySqId("deleteBySql", params);
//状态删除
//Score load = scoreService.load(id);
//load.setIsDelete(1);
//scoreService.update(load);
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put("message", "删除成功");
return jsonObject.toString();
}
/**
* 单文件上传
* @param file
* @param request
* @param model
* @return
*/
@RequestMapping(value = "/saveFile")
public String saveFile(@RequestParam(value = "file", required = false) MultipartFile file, HttpServletRequest request, Model model) {
System.out.println("开始");
String path = request.getSession().getServletContext().getRealPath("/upload");
String fileName = file.getOriginalFilename();
System.out.println(path);
File targetFile = new File(path, fileName);
if(!targetFile.exists()){
targetFile.mkdirs();
}
//保存
try {
file.transferTo(targetFile);
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
public String findById(Notice notice, Model model, HttpServletRequest request, HttpServletResponse response) {
Notice obj = noticeService.load(notice.getId());
model.addAttribute("obj",obj);
return "notice/noticeDetail";
}
/**
* 分页查询 返回list对象(通过Map)
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/findByMap.do")
public String findByMap(Notice notice, Model model, HttpServletRequest request, HttpServletResponse response) {
//通过map查询
Map<String,Object> params = new HashMap<String,Object>();
if(!isEmpty(notice.getTitle())){
params.put("title", notice.getTitle());
}
if(!isEmpty(notice.getContent())){
params.put("content", notice.getContent());
}
if(!isEmpty(notice.getAddTime())){
params.put("addTime", notice.getAddTime());
}
if(!isEmpty(notice.getType())){
params.put("type", notice.getType());
}
if(!isEmpty(notice.getStatus())){
params.put("status", notice.getStatus());
}
//分页查询
Pager<Notice> pagers = noticeService.findByMap(params);
model.addAttribute("pagers", pagers);
//存储查询条件
model.addAttribute("obj", notice);
return "notice/notice";
}
/**
* 跳至添加页面
* @return
*/
@RequestMapping(value = "/add.do")
public String add() {
return "notice/add";
}
/**
System.out.println("开始");
String path = request.getSession().getServletContext().getRealPath("/upload");
String fileName = file.getOriginalFilename();
System.out.println(path);
File targetFile = new File(path, fileName);
if(!targetFile.exists()){
targetFile.mkdirs();
}
//保存
try {
file.transferTo(targetFile);
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
/**
* springMvc多文件上传
* @param files
* @param id
* @return
*/
@RequestMapping(value = "/saveFiles")
public String saveFiles(@RequestParam("file") CommonsMultipartFile[] files,Integer id,HttpServletRequest request){
for(int i = 0;i<files.length;i++){
System.out.println("fileName---------->" + files[i].getOriginalFilename());
if(!files[i].isEmpty()){
int pre = (int) System.currentTimeMillis();
try {
//拿到输出流,同时重命名上传的文件
String filePath = request.getRealPath("/upload");
File f=new File(filePath);
if(!f.exists()){
f.mkdirs();
}
String fileNmae=new Date().getTime() + files[i].getOriginalFilename();
File file=new File(filePath+"/"+pre + files[i].getOriginalFilename());
params.put("teacherId", message.getTeacherId());
}
if(!isEmpty(message.getAddTime())){
params.put("addTime", message.getAddTime());
}
if(!isEmpty(message.getReply())){
params.put("reply", message.getReply());
}
if(!isEmpty(message.getReplyTime())){
params.put("replyTime", message.getReplyTime());
}
//分页查询
Pager<Message> pagers = messageService.findByMap(params);
model.addAttribute("pagers", pagers);
//存储查询条件
model.addAttribute("obj", message);
return "message/message";
}
/**
* 跳至添加页面
* @return
*/
@RequestMapping(value = "/add.do")
public String add() {
return "message/add";
}
/**
* 添加执行
* @return
*/
@RequestMapping(value = "/exAdd.do")
public String exAdd(Message message, Model model, HttpServletRequest request, HttpServletResponse response,HttpSession session) {
Integer classroomId = (Integer) session.getAttribute("classroomId");
Integer parentId = (Integer) session.getAttribute("parentId");
if(classroomId==null){
return "redirect:/login/login.do?role=1";
}else{
Map<String, Object> map = getMap();
map.put("classroomId",classroomId);
//保存
try {
file.transferTo(targetFile);
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
/**
* springMvc多文件上传
* @param files
* @param id
* @return
*/
@RequestMapping(value = "/saveFiles")
public String saveFiles(@RequestParam("file") CommonsMultipartFile[] files,Integer id,HttpServletRequest request){
for(int i = 0;i<files.length;i++){
System.out.println("fileName---------->" + files[i].getOriginalFilename());
if(!files[i].isEmpty()){
int pre = (int) System.currentTimeMillis();
try {
//拿到输出流,同时重命名上传的文件
String filePath = request.getRealPath("/upload");
File f=new File(filePath);
if(!f.exists()){
f.mkdirs();
}
String fileNmae=new Date().getTime() + files[i].getOriginalFilename();
File file=new File(filePath+"/"+pre + files[i].getOriginalFilename());
if(!file.exists()){
file.createNewFile();
}
files[i].transferTo(file);
} catch (Exception e) {
e.printStackTrace();
System.out.println("上传出错");
}
}
}
return "";
}
// --------------------------------------- 华丽分割线 ------------------------------
/**
* 删除通过主键
* @return
*/
@RequestMapping(value = "/delete.do")
public String delete(School school, Model model, HttpServletRequest request, HttpServletResponse response) {
//真正删除
// schoolService.deleteById(school.getId());
school.setIsDelete(1);
//逻辑删除
schoolService.update(school);
//通过参数删除
//Map<String,Object> params = new HashMap<String,Object>();
//params.put("id", id);
//schoolService.deleteBySqId("deleteBySql", params);
//状态删除
//School load = schoolService.load(id);
//load.setIsDelete(1);
//schoolService.update(load);
return "redirect:/school/findByObj.do";
}
// --------------------------------------- 华丽分割线 ------------------------------
/**
* 分页查询 返回list json(通过对象)
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/findByObj.json", produces=MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.POST)
@ResponseBody
public String findByObjByEntity(School school, Model model, HttpServletRequest request, HttpServletResponse response) {
//分页查询
Pager<School> pagers = schoolService.findByEntity(school);
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put("pagers", pagers);
jsonObject.put("obj", school);
return jsonObject.toString();
}
Map<String, Object> map = getMap();
map.put("gradeId",classroom.getGradeId());
List<Classroom> classroomList =classroomService.list("listBySqlId", map);
//分页查询
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put("obj", classroomList);
return jsonObject.toString();
}
/**
* 分页查询 返回list json(通过对象)
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/findByObj.json", produces=MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.POST)
@ResponseBody
public String findByObjByEntity(Classroom classroom, Model model, HttpServletRequest request, HttpServletResponse response) {
//分页查询
Pager<Classroom> pagers = classroomService.findByEntity(classroom);
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put("pagers", pagers);
jsonObject.put("obj", classroom);
return jsonObject.toString();
}
/**
* 分页查询 返回list json(通过Map)
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/findByMap.json", produces=MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.POST)
@ResponseBody
public String findByMapMap(Classroom classroom, Model model, HttpServletRequest request, HttpServletResponse response) {
//通过map查询
Map<String,Object> params = new HashMap<String,Object>();
if(!isEmpty(classroom.getName())){
params.put("name", classroom.getName());
}
if(!isEmpty(classroom.getGradeId())){
params.put("gradeId", classroom.getGradeId());
}
if(!isEmpty(classroom.getIsDelete())){
params.put("isDelete", classroom.getIsDelete());
}
//分页查询
Pager<Classroom> pagers = classroomService.findByMap(params);
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put("pagers", pagers);
//通过map查询
Map<String,Object> params = new HashMap<String,Object>();
if(!isEmpty(news.getTitle())){
params.put("title", news.getTitle());
}
if(!isEmpty(news.getContent())){
params.put("content", news.getContent());
}
if(!isEmpty(news.getAddTime())){
params.put("addTime", news.getAddTime());
}
if(!isEmpty(news.getImageUrl())){
params.put("imageUrl", news.getImageUrl());
}
if(!isEmpty(news.getType())){
params.put("type", news.getType());
}
if(!isEmpty(news.getStatus())){
params.put("status", news.getStatus());
}
//分页查询
Pager<News> pagers = newsService.findByMap(params);
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put("pagers", pagers);
jsonObject.put("obj", news);
return jsonObject.toString();
}
/**
* ajax 添加
* @param
* @return
*/
@RequestMapping(value = "/exAdd.json", produces=MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.POST)
@ResponseBody
public String exAddJson(News news, Model model, HttpServletRequest request, HttpServletResponse response) {
newsService.insert(news);
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put("message", "添加成功");
return jsonObject.toString();
}
/**
* ajax 修改
* @param
* @return
*/
@RequestMapping(value = "/exUpdate.json", produces=MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.POST)
@ResponseBody
}
return jsonObject.toString();
}
/**
* 分页查询 返回list对象(通过对象)
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/findByObj.do")
public String findByObj(Parent parent, Model model, HttpServletRequest request, HttpServletResponse response) {
Pager<Parent> pagers = new Pager<Parent>();
if (parent.getLoginName() != null) {
Map<String, Object> map = getMap();
map.put("loginName", parent.getLoginName());
// 分页查询
pagers = parentService.findByMap(map);
} else {
// 分页查询
pagers = parentService.findByEntity(parent);
}
model.addAttribute("pagers", pagers);
// 存储查询条件
model.addAttribute("obj", parent);
return "parent/parent";
}
/**
* 分页查询 返回list对象(通过Map)
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/findByMap.do")
public String findByMap(Parent parent, Model model, HttpServletRequest request, HttpServletResponse response) {
// 通过map查询
Map<String, Object> params = new HashMap<String, Object>();
if (!isEmpty(parent.getLoginName())) {
params.put("loginName", parent.getLoginName());
}
if (!isEmpty(parent.getRealName())) {
params.put("realName", parent.getRealName());
}
if (!isEmpty(parent.getPhone())) {
params.put("phone", parent.getPhone());
}
if (!isEmpty(parent.getAddress())) {
params.put("address", parent.getAddress());
}
if (!isEmpty(parent.getIsDelete())) {
params.put("isDelete", parent.getIsDelete());
if(!isEmpty(manage.getAdminName())){
params.put("adminName", manage.getAdminName());
}
if(!isEmpty(manage.getIsDelete())){
params.put("isDelete", manage.getIsDelete());
}
if(!isEmpty(manage.getPhone())){
params.put("phone", manage.getPhone());
}
if(!isEmpty(manage.getPassWord())){
params.put("passWord", manage.getPassWord());
}
if(!isEmpty(manage.getRealName())){
params.put("realName", manage.getRealName());
}
//分页查询
Pager<Manage> pagers = manageService.findByMap(params);
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put("pagers", pagers);
jsonObject.put("obj", manage);
return jsonObject.toString();
}
/**
* ajax 添加
* @param
* @return
*/
@RequestMapping(value = "/exAdd.json",produces=MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.POST)
@ResponseBody
public String exAddJson(Manage manage, Model model, HttpServletRequest request, HttpServletResponse response) {
manageService.insert(manage);
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put("message", "添加成功");
return jsonObject.toString();
}
/**
* ajax 修改
* @param
* @return
*/
@RequestMapping(value = "/exUpdate.json",produces=MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.POST)
@ResponseBody
public String exUpdateJson(Manage manage, Model model, HttpServletRequest request, HttpServletResponse response) {
manageService.update(manage);
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put("message", "修改成功");
* @throws IOException
*/
@RequestMapping("/register.json")
@ResponseBody
public String register(HttpServletRequest request, HttpServletResponse response, HttpSession session, Parent parent)
throws IOException {
// 查询该用户是否存在
Map<String, Object> map = getMap();
map.put("loginName", parent.getLoginName());
Parent p1 = parentService.loadBySqlId("loadBySqlId", map);
JSONObject jsonObject = JsonUtil2.getJsonObject();
if (p1 != null) {
jsonObject.put("result", 2); // 该用户存在
} else {
parent.setIsDelete(0);
parent.setIsPass(0);
parent.setType(3);
parentService.insert(parent);
jsonObject.put("result", 1); // 注册成功
}
return jsonObject.toString();
}
/**
* 登陆以后进入首页
*
* @return
* @throws IOException
*/
@RequestMapping("/login.json")
@ResponseBody
public String login(HttpServletRequest request, HttpServletResponse response, HttpSession session, Parent parent)
throws IOException {
// 查询该用户是否存在
Map<String, Object> map = getMap();
map.put("loginName", parent.getLoginName());
Parent p1 = parentService.loadBySqlId("loadBySqlId", map);
JSONObject jsonObject = JsonUtil2.getJsonObject();
if (p1 == null) {
jsonObject.put("result", 3); // 该用户不存在
} else {
// 查询用户和密码是否 正确
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
/**
* springMvc多文件上传
* @param files
* @param id
* @return
*/
@RequestMapping(value = "/saveFiles")
public String saveFiles(@RequestParam("file") CommonsMultipartFile[] files,Integer id,HttpServletRequest request){
for(int i = 0;i<files.length;i++){
System.out.println("fileName---------->" + files[i].getOriginalFilename());
if(!files[i].isEmpty()){
int pre = (int) System.currentTimeMillis();
try {
//拿到输出流,同时重命名上传的文件
String filePath = request.getRealPath("/upload");
File f=new File(filePath);
if(!f.exists()){
f.mkdirs();
}
String fileNmae=new Date().getTime() + files[i].getOriginalFilename();
File file=new File(filePath+"/"+pre + files[i].getOriginalFilename());
if(!file.exists()){
file.createNewFile();
}
files[i].transferTo(file);
} catch (Exception e) {
e.printStackTrace();
System.out.println("上传出错");
}
}
}
return "";
}
// --------------------------------------- 华丽分割线 ------------------------------
}
public String findById(Notice notice, Model model, HttpServletRequest request, HttpServletResponse response) {
Notice obj = noticeService.load(notice.getId());
model.addAttribute("obj",obj);
return "notice/noticeDetail";
}
/**
* 分页查询 返回list对象(通过Map)
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/findByMap.do")
public String findByMap(Notice notice, Model model, HttpServletRequest request, HttpServletResponse response) {
//通过map查询
Map<String,Object> params = new HashMap<String,Object>();
if(!isEmpty(notice.getTitle())){
params.put("title", notice.getTitle());
}
if(!isEmpty(notice.getContent())){
params.put("content", notice.getContent());
}
if(!isEmpty(notice.getAddTime())){
params.put("addTime", notice.getAddTime());
}
if(!isEmpty(notice.getType())){
params.put("type", notice.getType());
}
if(!isEmpty(notice.getStatus())){
params.put("status", notice.getStatus());
}
//分页查询
Pager<Notice> pagers = noticeService.findByMap(params);
model.addAttribute("pagers", pagers);
//存储查询条件
model.addAttribute("obj", notice);
return "notice/notice";
}
/**
* 跳至添加页面
* @return
*/
@RequestMapping(value = "/add.do")
public String add() {
return "notice/add";
}
// Map<String,Object> params = new HashMap<String,Object>();
// params.put("id", id);
// parentService.deleteBySqId("deleteBySql", params);
// 状态删除
// Parent load = parentService.load(id);
// load.setIsDelete(1);
// parentService.update(load);
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put("message", "删除成功");
return jsonObject.toString();
}
/**
* 单文件上传
*
* @param file
* @param request
* @param model
* @return
*/
@RequestMapping(value = "/saveFile")
public String saveFile(@RequestParam(value = "file", required = false) MultipartFile file,
HttpServletRequest request, Model model) {
System.out.println("开始");
String path = request.getSession().getServletContext().getRealPath("/upload");
String fileName = file.getOriginalFilename();
System.out.println(path);
File targetFile = new File(path, fileName);
if (!targetFile.exists()) {
targetFile.mkdirs();
}
// 保存
try {
file.transferTo(targetFile);
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
/**