基于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 "login/uIndex";
}else{
return "login/mIndex";
}
}
}
public class SystemContextFilter implements Filter{
private Integer pageSize;
public void destroy() {
}
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {
Integer offset = 0;
try {
offset = Integer.parseInt(req.getParameter("pager.offset"));
} catch (NumberFormatException e) {}
try {
SystemContext.setOrder(req.getParameter("order"));
SystemContext.setSort(req.getParameter("sort"));
SystemContext.setPageOffset(offset);
SystemContext.setPageSize(pageSize);
SystemContext.setRealPath(((HttpServletRequest)req).getSession().getServletContext().getRealPath("/"));
chain.doFilter(req,resp);
@ResponseBody
public String findBySchoolId(Grade grade, Model model, HttpServletRequest request, HttpServletResponse response) {
Map<String, Object> map = getMap();
map.put("schoolId",grade.getSchoolId());
List<Grade> gradeList =gradeService.list("listBySqlId", map);
//分页查询
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put("obj", gradeList);
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(Grade grade, Model model, HttpServletRequest request, HttpServletResponse response) {
//分页查询
Pager<Grade> pagers = gradeService.findByEntity(grade);
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put("pagers", pagers);
jsonObject.put("obj", grade);
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(Grade grade, Model model, HttpServletRequest request, HttpServletResponse response) {
//通过map查询
Map<String,Object> params = new HashMap<String,Object>();
if(!isEmpty(grade.getName())){
params.put("name", grade.getName());
}
if(!isEmpty(grade.getSchoolId())){
params.put("schoolId", grade.getSchoolId());
}
if(!isEmpty(grade.getIsDelete())){
params.put("isDelete", grade.getIsDelete());
}
/**
* @ClassName:
* @Description:
*/
@Controller
@RequestMapping("/classroom")
public class ClassroomController extends BaseController {
/**
* 依赖注入 start dao/service/===
*/
@Autowired
private ClassroomService classroomService;
@Autowired
private SchoolService schoolService;
@Autowired
private GradeService gradeService;
@Autowired
private TeacherService teacherService;
// --------------------------------------- 华丽分割线 ------------------------------
/**
* 分页查询 返回list对象(通过对象)
} catch (Exception e) {
e.printStackTrace();
System.out.println("上传出错");
}
}
}
return "";
}
// --------------------------------------- 华丽分割线 ------------------------------
}
/**
* @ClassName:
* @Description:
*/
//分页查询
Pager<Classroom> pagers = classroomService.findByMap(params);
model.addAttribute("pagers", pagers);
//存储查询条件
model.addAttribute("obj", classroom);
return "classroom/classroom";
}
/**
* 跳至添加页面
* @return
*/
@RequestMapping(value = "/add.do")
public String add(Model model,HttpSession session) {
Integer schoolId = (Integer) session.getAttribute("schoolId");
School school=new School();
school.setId(schoolId);
List<School> schoolList=schoolService.listAllByEntity(school);
model.addAttribute("schoolList", schoolList);
return "classroom/add";
}
/**
* 添加执行
* @return
*/
@RequestMapping(value = "/exAdd.do")
public String exAdd(Classroom classroom, Model model, HttpServletRequest request, HttpServletResponse response) {
classroom.setIsDelete(0);
classroom.setStatus(0);
classroomService.insert(classroom);
return "redirect:/classroom/findByObj.do";
}
/**
* 跳至修改页面
* @return
*/
@RequestMapping(value = "/update.do")
public String update(Integer id,Model model) {
Classroom obj = classroomService.load(id);
model.addAttribute("obj",obj);
return "classroom/update";
}
/**
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) {
//真正删除
gradeService.deleteById(id);
//通过参数删除
//Map<String,Object> params = new HashMap<String,Object>();
//params.put("id", id);
//gradeService.deleteBySqId("deleteBySql", params);
//状态删除
//Grade load = gradeService.load(id);
//load.setIsDelete(1);
//gradeService.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();
}
public String exUpdate(Notice notice, Model model, HttpServletRequest request, HttpServletResponse response) {
noticeService.update(notice);
return "redirect:/notice/findByObj.do";
}
/**
* 学校公告
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/findByObj2.do")
public String findByObj2(Notice notice, Model model, HttpServletRequest request, HttpServletResponse response,HttpSession session) {
Integer schoolId = (Integer) session.getAttribute("schoolId");
Pager<Notice> pagers =new Pager<Notice>();
if(notice.getTitle()!=null){
Map<String, Object> map = getMap();
map.put("title",notice.getTitle());
map.put("schoolId",schoolId);
map.put("type",2);
//模糊查询分页查询
pagers = noticeService.findByMap(map);
}else{
Map<String, Object> map = getMap();
map.put("type",2);
map.put("schoolId",schoolId);
pagers = noticeService.findByMap(map);
}
model.addAttribute("pagers", pagers);
//存储查询条件
model.addAttribute("obj", notice);
return "notice/notice2";
}
/**
* 跳至添加页面
* @return
*/
@RequestMapping(value = "/add1.do")
public String add1() {
return "notice/add1";
}
/**
* 添加执行
* @return
*/
@RequestMapping(value = "/exAdd1.do")
public String exAdd1(Notice notice, Model model, HttpServletRequest request, HttpServletResponse response,HttpSession session) {
Integer schoolId = (Integer) session.getAttribute("schoolId");
if (schoolId!=null) {
notice.setSchoolId(schoolId);
}
notice.setType(2);//1:为系统公告2:校内公告
public String findByMap(Manage manage, Model model, HttpServletRequest request, HttpServletResponse response) {
//通过map查询
Map<String,Object> params = new HashMap<String,Object>();
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());
}
if(!isEmpty(manage.getType())){
params.put("type", manage.getType());
}
if(!isEmpty(manage.getSchoolId())){
params.put("schoolId", manage.getSchoolId());
}
//分页查询
Pager<Manage> pagers = manageService.findByMap(params);
model.addAttribute("pagers", pagers);
//存储查询条件
model.addAttribute("obj", manage);
return "manage/manage";
}
/**
* 跳至添加页面
* @return
*/
@RequestMapping(value = "/add.do")
public String add(Model model) {
List<School> schoolList=schoolService.listAll();
model.addAttribute("schoolList", schoolList);
return "manage/add";
}
parentService.insert(parent);
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put("message", "添加成功");
return jsonObject.toString();
}
/**
* 执行审核不通过
*
* @return
*/
@RequestMapping(value = "/exUpdate.json", produces = MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.POST)
@ResponseBody
public String exUpdateJson(Parent parent, Model model, HttpServletRequest request, HttpServletResponse response) {
parent.setIsPass(2);
parentService.update(parent);
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put("message", 0);
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) {
// 真正删除
parentService.deleteById(id);
// 通过参数删除
// 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();
}
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(Student student, Model model, HttpServletRequest request, HttpServletResponse response) {
//通过map查询
Map<String,Object> params = new HashMap<String,Object>();
if(!isEmpty(student.getName())){
params.put("name", student.getName());
}
if(!isEmpty(student.getClassroomId())){
params.put("classroomId", student.getClassroomId());
}
if(!isEmpty(student.getIsDelete())){
params.put("isDelete", student.getIsDelete());
}
if(!isEmpty(student.getStatus())){
params.put("status", student.getStatus());
}
//分页查询
Pager<Student> pagers = studentService.findByMap(params);
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put("pagers", pagers);
jsonObject.put("obj", student);
return jsonObject.toString();
}
/**
* ajax 添加
* @param
* @return
*/
}
if(!isEmpty(student.getIsDelete())){
params.put("isDelete", student.getIsDelete());
}
if(!isEmpty(student.getStatus())){
params.put("status", student.getStatus());
}
//分页查询
Pager<Student> pagers = studentService.findByMap(params);
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put("pagers", pagers);
jsonObject.put("obj", student);
return jsonObject.toString();
}
/**
* ajax 添加
* @param
* @return
*/
@RequestMapping(value = "/exAdd.json", produces=MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.POST)
@ResponseBody
public String exAddJson(Student student, Model model, HttpServletRequest request, HttpServletResponse response) {
studentService.insert(student);
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(Student student, Model model, HttpServletRequest request, HttpServletResponse response) {
studentService.update(student);
JSONObject jsonObject = JsonUtil2.getJsonObject();
* @return
*/
@RequestMapping(value = "/findById.do")
public String findById(News news, Model model, HttpServletRequest request, HttpServletResponse response) {
News obj = newsService.load(news.getId());
model.addAttribute("obj",obj);
return "news/newsDetail";
}
/**
* 分页查询 返回list对象(通过Map)
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/findByMap.do")
public String findByMap(News news, Model model, HttpServletRequest request, HttpServletResponse response) {
//通过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);
model.addAttribute("pagers", pagers);
//存储查询条件
model.addAttribute("obj", news);
return "news/news";
}
/**
* 跳至添加页面
}
/**
* ajax 添加
* @param
* @return
*/
@RequestMapping(value = "/exAdd.json", produces=MediaType.APPLICATION_JSON_VALUE, method = RequestMethod.POST)
@ResponseBody
public String exAddJson(Teacher teacher, Model model, HttpServletRequest request, HttpServletResponse response) {
teacherService.insert(teacher);
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(Teacher teacher, Model model, HttpServletRequest request, HttpServletResponse response) {
teacherService.update(teacher);
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) {
//真正删除
teacherService.deleteById(id);
//通过参数删除
//Map<String,Object> params = new HashMap<String,Object>();
//params.put("id", id);
//teacherService.deleteBySqId("deleteBySql", params);
//状态删除
//Teacher load = teacherService.load(id);
//load.setIsDelete(1);
//teacherService.update(load);
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put("message", "删除成功");
return jsonObject.toString();
String fileName = file.getOriginalFilename();
System.out.println(path);
File targetFile = new File("D:/my/upload", fileName);
if(!targetFile.exists()){
targetFile.mkdirs();
}
if(fileName!=null){
homework.setName(fileName);
homework.setUrl("\\upload\\"+fileName);
}
homework.setTeacherId(teacherId);
//保存
try {
file.transferTo(targetFile);
} catch (Exception e) {
e.printStackTrace();
}
homeworkService.update(homework);
return "redirect:/homework/findByObj.do";
}
/**
* 删除通过主键
* @return
*/
@RequestMapping(value = "/delete.do")
public String delete(Integer id, Model model, HttpServletRequest request, HttpServletResponse response) {
//真正删除
homeworkService.deleteById(id);
//通过参数删除
//Map<String,Object> params = new HashMap<String,Object>();
//params.put("id", id);
//homeworkService.deleteBySqId("deleteBySql", params);
//状态删除
//Homework load = homeworkService.load(id);
//load.setIsDelete(1);
//homeworkService.update(load);
return "redirect:/homework/findByObj.do";
}
// --------------------------------------- 华丽分割线 ------------------------------
/**
* 分页查询 返回list json(通过对象)
*
* @param request
* @param response
* @return
*/
public String findByMap(School school, Model model, HttpServletRequest request, HttpServletResponse response) {
//通过map查询
Map<String,Object> params = new HashMap<String,Object>();
if(!isEmpty(school.getName())){
params.put("name", school.getName());
}
if(!isEmpty(school.getIsDelete())){
params.put("isDelete", school.getIsDelete());
}
if(!isEmpty(school.getStatus())){
params.put("status", school.getStatus());
}
//分页查询
Pager<School> pagers = schoolService.findByMap(params);
model.addAttribute("pagers", pagers);
//存储查询条件
model.addAttribute("obj", school);
return "school/school";
}
/**
* 跳至添加页面
* @return
*/
@RequestMapping(value = "/add.do")
public String add() {
return "school/add";
}
/**
* 添加执行
* @return
*/
@RequestMapping(value = "/exAdd.do")
public String exAdd(School school, Model model, HttpServletRequest request, HttpServletResponse response) {
school.setIsDelete(0);
school.setStatus(0);
schoolService.insert(school);
return "redirect:/school/findByObj.do";
}
/**
* 跳至修改页面
* @return
*/
@RequestMapping(value = "/update.do")
public String update(Integer id,Model model) {
School obj = schoolService.load(id);
model.addAttribute("obj",obj);
return "school/update";
}
Map<String, Object> map = getMap();
map.put("adminName",manage.getAdminName());
Manage m1 =manageService.loadBySqlId("loadBySqlId", map);
map.put("loginName",manage.getAdminName());
Teacher t1=teacherService.loadBySqlId("loadBySqlId", map);
JSONObject jsonObject = JsonUtil2.getJsonObject();
if(m1==null&&t1==null){
jsonObject.put("result", 3); //该用户不存在
}else{
//查询用户和密码是否 正确
map.put("passWord",manage.getPassWord());
Manage m =manageService.loadBySqlId("loadBySqlId", map);
Teacher t=teacherService.loadBySqlId("loadBySqlId", map);
if(m!=null||t!=null){
if(m!=null){
jsonObject.put("result", 1); //登录成功
if (session!=null && !session.isNew()) {
session.invalidate();
}
session = request.getSession(true);
session.setAttribute("realName", m.getRealName());
session.setAttribute("adminId", m.getId());
session.setAttribute("type", m.getType());
session.setAttribute("schoolId", m.getSchoolId());
}
if(t!=null){
jsonObject.put("result", 1); //登录成功
if (session!=null && !session.isNew()) {
session.invalidate();
}
session = request.getSession(true);
session.setAttribute("realName", t.getRealName());
session.setAttribute("adminId", t.getId());
session.setAttribute("type", t.getType());
session.setAttribute("schoolId", t.getSchoolId());
session.setAttribute("classroomId", t.getClassroomId());
session.setAttribute("gradeId", t.getGradeId());
session.setAttribute("id", t.getId());
}
}else{
jsonObject.put("result",2);//密码错误
}
}
return jsonObject.toString();
}
/**
* 分页查询 返回list对象(通过对象)
@RequestMapping("/introduction")
public class IntroductionController extends BaseController {
/**
* 依赖注入 start dao/service/===
*/
@Autowired
private IntroductionService introductionService;
// --------------------------------------- 华丽分割线 ------------------------------
/**
* 前台查询网页介绍
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/queryIntroduction.do")
public String queryIntroduction(Model model, HttpServletRequest request, HttpServletResponse response) {
List<Introduction> introductionList=introductionService.listAll();
model.addAttribute("introductionList", introductionList);
//存储查询条件
model.addAttribute("introductionList", introductionList);
return "introduction/uIntroduction";
}
/**
* 分页查询 返回list对象(通过对象)
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/findByObj.do")
public String findByObj(Introduction introduction, Model model, HttpServletRequest request, HttpServletResponse response) {
Pager<Introduction> pagers =new Pager<Introduction>();
if(introduction.getTitle()!=null){
Map<String, Object> map = getMap();
map.put("title",introduction.getTitle());
//模糊查询分页查询
pagers = introductionService.findByMap(map);