基于javaweb的校园社团门户管理系统(java+ssm+jsp+mysql)
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+jsp的校园社团门户管理系统(java+SSM+JSP+mysql)
系统主要实现的功能分前台用户和后台管理:
前台功能主要有:账号登录、添加关注模块,新闻快讯、通知公告、校历、求职招聘、学科资源信息展现等。
后台管理功能有:后台管理员角色管理、权限管理、社团管理、老师管理、用户管理、公告管理、新闻管理、校园风采管理、求职招聘管理、校历管理、学科资源管理等,老师。系统功能非常丰富完善。
运行环境:jdk1.8、eclipse/idea、Mysql5.7、Navicat/Sqlyog、Maven3.5/3.6
角色管理控制器:
@Controller
@RequestMapping(“/role”)
public class RoleController extends BaseController {
/**
- 依赖注入 start dao/service/===
*/
@Autowired
private RoleService roleService;
@Autowired
private RoleActionService roleActionService;
@Autowired
private ActionService actionService;
// --------------------------------------- 华丽分割线 ------------------------------
/**
-
分页查询 返回list对象(通过对象)
-
@param request
-
@param response
-
@return
*/
@RequestMapping(value = “/findByObj.do”)
public String findByObj(Role role, Model model, HttpServletRequest request, HttpServletResponse response) {
//分页查询
Pager pagers = roleService.findByEntity(role);
model.addAttribute(“pagers”, pagers);
//存储查询条件
model.addAttribute(“obj”, role);
return “role/role”;
/**
-
分页查询 返回list对象(通过Map)
-
@param request
-
@param response
-
@return
*/
@RequestMapping(value = “/findByMap.do”)
public String findByMap(Role role, Model model, HttpServletRequest request, HttpServletResponse response) {
//通过map查询
Map<String,Object> params = new HashMap<String,Object>();
if(!isEmpty(role.getName())){
params.put(“name”, role.getName());
if(!isEmpty(role.getIsDelete())){
params.put(“isDelete”, role.getIsDelete());
//分页查询
Pager pagers = roleService.findByMap(params);
model.addAttribute(“pagers”, pagers);
//存储查询条件
model.addAttribute(“obj”, role);
return “role/role”;
/**
-
跳至添加页面
-
@return
*/
@RequestMapping(value = “/add.do”)
public String add() {
return “role/add”;
/**
-
添加执行
-
@return
*/
@RequestMapping(value = “/exAdd.do”)
public String exAdd(Role role, Model model, HttpServletRequest request, HttpServletResponse response) {
role.setIsDelete(0);
roleService.insert(role);
return “redirect:/role/findByObj.do”;
/**
-
跳至修改页面
-
@return
*/
@RequestMapping(value = “/update.do”)
public String update(Integer id,Model model) {
Role role = roleService.load(id);
model.addAttribute(“obj”,role);
return “role/update”;
/**
-
跳至修改页面
-
@return
*/
@RequestMapping(value = “/updateRole.do”)
public String updateRole(Integer id,Model model) {
//根据roleId去 角色权限表查看这个角色共有多少权限
// private Integer actionId;//权限id
// private Integer roleId;//角色id
// private Action action;//权限
// private Role role;//角色
Role role = roleService.load(id);
Map<String, Object> map = MapUtils.getMap();
map.put(“roleId”, id);
List list = roleActionService.list(map);
//查询所有权限
Map<String, Object> map2 = MapUtils.getMap();
List listAll = actionService.list(map2);
//判断当前选中的
List ids = new ArrayList();
List acids = new ArrayList();
List listAll2 = new ArrayList();
if(!isEmpty(list)){
for(RoleAction ac : list){
ids.add(ac.getActionId());
if(!isEmpty(listAll)){
for(Action ac : listAll){
if(ids.contains(ac.getId())){
ac.setIsCheck(1);
}else{
ac.setIsCheck(0);
listAll2.add(ac);
model.addAttribute(“list”,list);
model.addAttribute(“id”,id);
model.addAttribute(“listAll”,listAll2);
return “role/updateRole”;
@RequestMapping(value = “/exUpdateRole.do”)
public String exUpdateRole(Integer[] qx,Model model,Integer id) {
Map<String, Object> map = MapUtils.getMap();
map.put(“roleId”, id);
roleActionService.deleteBySqId(“deleteBySqId”, map);
if(!isEmpty(qx)){
for(Integer q : qx){
RoleAction rl = new RoleAction();
rl.setRoleId(id);
rl.setActionId(q);
roleActionService.insert(rl);
return “redirect:/role/findByObj.do”;
/**
-
添加修改
-
@return
*/
@RequestMapping(value = “/exUpdate.do”)
public String exUpdate(Role role, Model model, HttpServletRequest request, HttpServletResponse response) {
roleService.update(role);
return “redirect:/role/findByObj.do”;
/**
-
删除通过主键
-
@return
*/
@RequestMapping(value = “/delete.do”)
public String delete(Integer id, Model model, HttpServletRequest request, HttpServletResponse response) {
//真正删除
//roleService.deleteById(id);
//通过参数删除
//Map<String,Object> params = new HashMap<String,Object>();
//params.put(“id”, id);
//roleService.deleteBySqId(“deleteBySql”, params);
//状态删除
Role load = roleService.load(id);
load.setIsDelete(1);
roleService.update(load);
return “redirect:/role/findByObj.do”;
// --------------------------------------- 华丽分割线 ------------------------------
/**
-
分页查询 返回list json(通过对象)
-
@param request
-
@param response
-
@return
*/
@RequestMapping(value = “/findByObj.json”, method = RequestMethod.GET)
@ResponseBody
public String findByObjByEntity(Role role, Model model, HttpServletRequest request, HttpServletResponse response) {
//分页查询
Pager pagers = roleService.findByEntity(role);
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put(“pagers”, pagers);
jsonObject.put(“obj”, role);
return jsonObject.toString();
/**
-
分页查询 返回list json(通过Map)
-
@param request
-
@param response
-
@return
*/
@RequestMapping(value = “/findByMap.json”, method = RequestMethod.GET)
@ResponseBody
public String findByMapMap(Role role, Model model, HttpServletRequest request, HttpServletResponse response) {
//通过map查询
Map<String,Object> params = new HashMap<String,Object>();
if(!isEmpty(role.getName())){
params.put(“name”, role.getName());
if(!isEmpty(role.getIsDelete())){
params.put(“isDelete”, role.getIsDelete());
//分页查询
Pager pagers = roleService.findByMap(params);
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put(“pagers”, pagers);
jsonObject.put(“obj”, role);
return jsonObject.toString();
/**
-
ajax 添加
-
@param
-
@return
*/
@RequestMapping(value = “/exAdd.json”, method = RequestMethod.POST)
@ResponseBody
public String exAddJson(Role role, Model model, HttpServletRequest request, HttpServletResponse response) {
roleService.insert(role);
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put(“message”, “添加成功”);
return jsonObject.toString();
/**
-
ajax 修改
-
@param
-
@return
*/
@RequestMapping(value = “/exUpdate.json”,method = RequestMethod.POST)
@ResponseBody
public String exUpdateJson(Role role, Model model, HttpServletRequest request, HttpServletResponse response) {
roleService.update(role);
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put(“message”, “修改成功”);
return jsonObject.toString();
/**
-
ajax 删除
-
@return
*/
@RequestMapping(value = “/delete.json”, produces = “text/html;charset=UTF-8”, method = RequestMethod.GET)
@ResponseBody
public String exDeleteJson(Integer id, Model model, HttpServletRequest request, HttpServletResponse response) {
//真正删除
roleService.deleteById(id);
//通过参数删除
//Map<String,Object> params = new HashMap<String,Object>();
//params.put(“id”, id);
//roleService.deleteBySqId(“deleteBySql”, params);
//状态删除
//Role load = roleService.load(id);
//load.setIsDelete(1);
//roleService.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 “”;
/**
-
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 “”;
// --------------------------------------- 华丽分割线 ------------------------------
用户管理控制层:
@Controller
@RequestMapping(“/user”)
public class UserController extends BaseController {
/**
- 依赖注入 start dao/service/===
*/
@Autowired
private UserService userService;
@Autowired
private RoleService roleService;
// --------------------------------------- 华丽分割线 ------------------------------
/**
-
分页查询 返回list对象(通过对象)
-
@param request
-
@param response
-
@return
*/
@RequestMapping(value = “/findByObj.do”)
public String findByObj(User user, Model model, HttpServletRequest request, HttpServletResponse response) {
//分页查询
Pager pagers = userService.findByEntity(user);
model.addAttribute(“pagers”, pagers);
//存储查询条件
model.addAttribute(“obj”, user);
return “user/user”;
/**
-
分页查询 返回list对象(通过Map)
-
@param request
-
@param response
-
@return
*/
@RequestMapping(value = “/findByMap.do”)
public String findByMap(User user, Model model, HttpServletRequest request, HttpServletResponse response) {
//通过map查询
Map<String,Object> params = new HashMap<String,Object>();
if(!isEmpty(user.getUserName())){
params.put(“userName”, user.getUserName());
if(!isEmpty(user.getNickName())){
params.put(“nickName”, user.getNickName());
if(!isEmpty(user.getPassWord())){
params.put(“passWord”, user.getPassWord());
if(!isEmpty(user.getCode())){
params.put(“code”, user.getCode());
if(!isEmpty(user.getZy())){
params.put(“zy”, user.getZy());
if(!isEmpty(user.getNj())){
params.put(“nj”, user.getNj());
if(!isEmpty(user.getIsDelete())){
params.put(“isDelete”, user.getIsDelete());
if(!isEmpty(user.getType())){
params.put(“type”, user.getType());
//分页查询
Pager pagers = userService.findByMap(“findByNickName”, params);
model.addAttribute(“pagers”, pagers);
//存储查询条件
model.addAttribute(“obj”, user);
if(user.getType() == 1){
return “user/user1”;
if(user.getType() == 2){
return “user/user2”;
if(user.getType() == 3){
return “user/user3”;
return “user/user”;
/**
-
跳至添加页面
-
@return
*/
@RequestMapping(value = “/add.do”)
public String add(Integer type) {
if(type == 1){
return “user/add1”;
if(type == 2){
return “user/add2”;
if(type == 3){
return “user/add3”;
return “user/add”;
/**
-
添加执行
-
@return
*/
@RequestMapping(value = “/exAdd.do”)
public String exAdd(User user, Model model, HttpServletRequest request, HttpServletResponse response) {
user.setIsDelete(0);
userService.insert(user);
return “redirect:/user/findByMap.do?type=”+user.getType();
@RequestMapping(value = “/jsFp.do”)
public String jsFp(Integer id,Model model,Integer type) {
User obj = userService.load(id);
model.addAttribute(“obj”,obj);
List list = roleService.list(MapUtils.getMap());
model.addAttribute(“list”, list);
return “user/jsFp”;
@RequestMapping(value = “/exUpdateFp.do”)
public String exUpdateFp(User user,Integer js, Model model, HttpServletRequest request, HttpServletResponse response) {
user.setRoleId(js);
userService.update(user);
User load = userService.load(user.getId());
return “redirect:/user/findByMap.do?type=”+load.getType();
/**
-
跳至修改页面
-
@return
*/
@RequestMapping(value = “/update.do”)
public String update(Integer id,Model model,Integer type) {
User obj = userService.load(id);
model.addAttribute(“obj”,obj);
if(type == 1){
return “user/update1”;
if(type == 2){
return “user/update2”;
if(type == 3){
return “user/update3”;
return “”;
/**
-
添加修改
-
@return
*/
@RequestMapping(value = “/exUpdate.do”)
public String exUpdate(User user, Model model, HttpServletRequest request, HttpServletResponse response) {
userService.update(user);
return “redirect:/user/findByMap.do?type=”+user.getType();
/**
-
删除通过主键
-
@return
*/
@RequestMapping(value = “/delete.do”)
public String delete(Integer id, Model model, HttpServletRequest request, HttpServletResponse response) {
//真正删除
//userService.deleteById(id);
//通过参数删除
//Map<String,Object> params = new HashMap<String,Object>();
//params.put(“id”, id);
//userService.deleteBySqId(“deleteBySql”, params);
//状态删除
User load = userService.load(id);
load.setIsDelete(1);
userService.update(load);
User obj = userService.load(id);
return “redirect:/user/findByMap.do?type=”+obj.getType();
// --------------------------------------- 华丽分割线 ------------------------------
/**
-
分页查询 返回list json(通过对象)
-
@param request
-
@param response
-
@return
*/
@RequestMapping(value = “/findByObj.json”, method = RequestMethod.GET)
@ResponseBody
public String findByObjByEntity(User user, Model model, HttpServletRequest request, HttpServletResponse response) {
//分页查询
Pager pagers = userService.findByEntity(user);
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put(“pagers”, pagers);
jsonObject.put(“obj”, user);
return jsonObject.toString();
/**
-
分页查询 返回list json(通过Map)
-
@param request
-
@param response
-
@return
*/
@RequestMapping(value = “/findByMap.json”, method = RequestMethod.GET)
@ResponseBody
public String findByMapMap(User user, Model model, HttpServletRequest request, HttpServletResponse response) {
//通过map查询
Map<String,Object> params = new HashMap<String,Object>();
if(!isEmpty(user.getUserName())){
params.put(“userName”, user.getUserName());
if(!isEmpty(user.getNickName())){
params.put(“nickName”, user.getNickName());
if(!isEmpty(user.getPassWord())){
params.put(“passWord”, user.getPassWord());
if(!isEmpty(user.getCode())){
params.put(“code”, user.getCode());
if(!isEmpty(user.getZy())){
params.put(“zy”, user.getZy());
if(!isEmpty(user.getNj())){
params.put(“nj”, user.getNj());
if(!isEmpty(user.getIsDelete())){
params.put(“isDelete”, user.getIsDelete());
if(!isEmpty(user.getType())){
params.put(“type”, user.getType());
//分页查询
Pager pagers = userService.findByMap(params);
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put(“pagers”, pagers);
jsonObject.put(“obj”, user);
return jsonObject.toString();
/**
-
ajax 添加
-
@param
-
@return
*/
@RequestMapping(value = “/exAdd.json”, method = RequestMethod.POST)
@ResponseBody
public String exAddJson(User user, Model model, HttpServletRequest request, HttpServletResponse response) {
userService.insert(user);
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put(“message”, “添加成功”);
return jsonObject.toString();
/**
-
ajax 修改
-
@param
-
@return
*/
@RequestMapping(value = “/exUpdate.json”,method = RequestMethod.POST)
@ResponseBody
public String exUpdateJson(User user, Model model, HttpServletRequest request, HttpServletResponse response) {
userService.update(user);
JSONObject jsonObject = JsonUtil2.getJsonObject();
jsonObject.put(“message”, “修改成功”);
return jsonObject.toString();
/**
-
ajax 删除
-
@return
*/
@RequestMapping(value = “/delete.json”, produces = “text/html;charset=UTF-8”, method = RequestMethod.GET)
@ResponseBody
public String exDeleteJson(Integer id, Model model, HttpServletRequest request, HttpServletResponse response) {
//真正删除
userService.deleteById(id);
//通过参数删除
//Map<String,Object> params = new HashMap<String,Object>();
//params.put(“id”, id);
//userService.deleteBySqId(“deleteBySql”, params);
//状态删除
//User load = userService.load(id);
//load.setIsDelete(1);
//userService.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 “”;
/**
-
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 “”;
// --------------------------------------- 华丽分割线 ------------------------------
登录相关控制层:
/**
-
登陆相关
-
@author yy
*/
@Controller
@RequestMapping(“/login”)
public class LoginController extends BaseController{
@Autowired
private WebCountService webCountService;
@Autowired
private ManageService manageService;
@Autowired
private UserService userService;
@Autowired
private ActionService actionService;
@Autowired
private NewsService newsService;
@Autowired
private NoticeService noticeService;
@Autowired
private SchoolInfoService schoolInfoService;
@Autowired
private SchoolJobService schoolJobService;
@Autowired
private XlService xlService;
/**
-
跳转登陆
-
@return
*/
@RequestMapping(value = “/login.do”)
public String login(){
return “login/login”;
/**
-
用户首页
-
@return
*/
@RequestMapping(value = “/index.do”)
public String index(Model model){
// @Autowired
// private NewsService newsService;
// @Autowired
// private NoticeService noticeService;
// @Autowired
// private SchoolInfoService schoolInfoService;
// @Autowired
// private SchoolJobService schoolJobService;
//5张图片
List phs = schoolInfoService.listAll();
//9个新闻
List news = newsService.listAll();
//5个公告
List notices = noticeService.listAll();
//9个招聘
List sjs = schoolJobService.listAll();
//5个校历
List xls = xlService.listAll();
model.addAttribute(“phs”, phs);
model.addAttribute(“news”, news);
model.addAttribute(“notices”, notices);
model.addAttribute(“sjs”, sjs);
model.addAttribute(“xls”, xls);
WebCount load = webCountService.load(1);
load.setCountAll(load.getCountAll()+1);
webCountService.update(load);
model.addAttribute(“count”, load.getCountAll()+1);
return “login/index”;
@RequestMapping(value = “/welcome.do”)
public String welcome(){
return “login/welcome”;
@RequestMapping(value = “/toLogin.do”)
public String findByObj(String userName,String passWord,Integer type, Model model, HttpServletRequest request, HttpServletResponse response,HttpSession session) {
if(type == null){
return “login/login”;
//type == 管理员 2 社团 3 教师 4用户
session.removeAttribute(“isManage”);
session.removeAttribute(“user”);
session.removeAttribute(“userId”);
//private Integer type;// 1老师 2 社团3.用户
if(type == 1){
Manage manage = new Manage();
manage.setUserName(userName);
manage.setPassWord(passWord);
Manage man = manageService.loadBySqlId(“login”, manage);
if(!isEmpty(man)){
request.getSession().setAttribute(“isManage”, 1);
return “login/mIndex”;
}else{
return “login/login”;
}else if(type == 2){
User user = new User();
user.setUserName(userName);
user.setPassWord(passWord);
user.setType(type);
User use = userService.loadBySqlId(“login”,user);
if(!isEmpty(use)){
roleAct(model, use);
request.getSession().setAttribute(“user”, use);
request.getSession().setAttribute(“userId”, use.getId());
return “login/mIndex”;
}else{
return “login/login”;
}else if(type == 3){
User user = new User();
user.setUserName(userName);
user.setPassWord(passWord);
user.setType(1);
User use = userService.loadBySqlId(“login”,user);
if(!isEmpty(use)){
roleAct(model, use);
request.getSession().setAttribute(“user”, use);
request.getSession().setAttribute(“userId”, use.getId());
return “login/mIndex”;
}else{
return “login/login”;
}else{
//5张图片
List phs = schoolInfoService.listAll();
//9个新闻
List news = newsService.listAll();
//5个公告
List notices = noticeService.listAll();
//9个招聘
List sjs = schoolJobService.listAll();
//5个校历
List xls = xlService.listAll();
model.addAttribute(“phs”, phs);
model.addAttribute(“news”, news);
model.addAttribute(“notices”, notices);
model.addAttribute(“sjs”, sjs);
model.addAttribute(“xls”, xls);
User user = new User();
user.setUserName(userName);
user.setPassWord(passWord);
user.setType(3);
User use = userService.loadBySqlId(“login”,user);
if(!isEmpty(use)){
request.getSession().setAttribute(“user”, use);
request.getSession().setAttribute(“userId”, use.getId());
return “login/index”;
private void roleAct(Model model, User user) {
if(!isEmpty(user.getRole())){
List actions = new ArrayList();
List roleActions = user.getRole().getRoleActions();
if(!isEmpty(roleActions)){
for (RoleAction ra: roleActions) {
actions.add(actionService.load(ra.getActionId()));
model.addAttribute(“actions”, actions);
/**
-
退出
-
@param session
-
@return
*/
@RequestMapping(value = “/tuichu.do”)
public String tuichu(HttpSession session){
session.invalidate();
return “login/login”;
@RequestMapping(value = “/utu.do”)
public String utu(HttpSession session){
session.invalidate();
return “redirect:/login/index.do”;