Java项目:JSP学生社团管理系统

127 篇文章 15 订阅
111 篇文章 0 订阅

作者主页:夜未央5788

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

项目介绍

管理员角色包含以下功能:
审批新闻等功能。

社长角色包含以下功能:
社长查看基本信息,社长管理社团,管理人员信息,活动发布修改删除,公告发布删除,招新系统管理,查看报名情况,人员审核,管理社团网站首页信息,注册页面,注册码等功能。

学生角色包含以下功能:
首页,社团新闻查看,社团招新报名,创建社团,站内信发送,发送站内信成功,社团报名等功能。

由于本程序规模不大,可供课程设计,毕业设计学习演示之用

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
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版本;

技术栈

HTML+CSS+JavaScript+jsp+mysql

使用说明

1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;

4. 运行项目,输入localhost:8080/login.jsp 登录

运行截图

 

 

 

 

 

相关代码 

系统用户管理控制器

@WebServlet("/user")
public class UserController extends HttpServlet {
	private static final long serialVersionUID = 1L;

	UserDao userDao=new UserDao();
	UserService userService = new UserServiceImpl();
	RoleService roleService = new RoleServiceImpl();
	MenuRoleDao menuRoleDao = new MenuRoleDao();

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String method = request.getParameter("method");
		if ("add".equals(method)) {
			add(request,response);
		}else if ("delete".equals(method)) {
			delete(request, response);
		}else if ("list".equals(method)) {
			list(request, response);
		}else if ("update".equals(method)) {
			update(request, response);
		}else if ("form".equals(method)) {
			form(request, response);
		}else if ("save".equals(method)) {
			save(request, response);
		}else if ("login".equals(method)) {
			login(request, response);
		}else if ("logout".equals(method)) {
			logout(request, response);
		}else if ("repassword".equals(method)) {
			repassword(request, response);
		}else if ("index".equals(method)) {
			index(request, response);
		}
	}

	/**
	 * 跳转到首页
	 * @param request
	 * @param response
	 */
	private void index(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String contextPath = request.getServletContext().getContextPath();
		User user = CurrentUserUtils.getCurrentUser(request);
		if (user==null) {
			response.setContentType("text/html;charset=UTF-8");
			response.getWriter().write("<script>alert('用户失效!'),parent.location.href='"+contextPath+"/mui/login.jsp'</script>");
		}
		List<Map<String, Object>> menus = new ArrayList<Map<String, Object>>();
		List<Menu> parentMenus = menuRoleDao.getUserMenus(user.getRole(), "0");
		for (Menu menu : parentMenus) {
			Map<String, Object> map = new HashMap<String, Object>();
			map.put("parentMenu", menu);
			List<Menu> childrenMenus = menuRoleDao.getUserMenus(user.getRole(), menu.getId());
			map.put("sonMenus", childrenMenus);
			menus.add(map);
		}
		String projectName = PropertiesUtil.getValue("projectName");
		request.getSession().setAttribute("projectName", projectName);
		request.getSession().setAttribute("indexMenus", menus);
		request.getRequestDispatcher("/mui/index.jsp").forward(request, response);
	}

	/**
	 * 修改密码
	 * @param request
	 * @param response
	 * @throws ServletException
	 * @throws IOException
	 */
	private void repassword(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String contextPath = request.getServletContext().getContextPath();
		String id = request.getParameter("id");
		String password = request.getParameter("password");
		String password1 = request.getParameter("password1");
		String password2 = request.getParameter("password2");
		User user = userService.getById(id);
		if (MD5.Encrypt(password).equals(user.getPassword())) {
			if (password1.equals(password2)) {
				user.setPassword(MD5.Encrypt(password2));
				userService.update(user);
				response.setContentType("text/html;charset=UTF-8");
				response.getWriter().write("<script>alert('密码修改成功!需要重新登录'),parent.location.href='"+contextPath+"/mui/login.jsp'</script>");
			}else{
				request.setAttribute("msg", "确认密码不一致");
				request.setAttribute("password", password);
				request.setAttribute("password1", password1);
				request.setAttribute("password2", password2);
				request.getRequestDispatcher("/views/system/repassword.jsp").forward(request, response);
			}
		}else{
			request.setAttribute("msg", "旧密码验证不通过");
			request.setAttribute("password", password);
			request.setAttribute("password1", password1);
			request.setAttribute("password2", password2);
			request.getRequestDispatcher("/views/system/repassword.jsp").forward(request, response);
		}
	}

	private void logout(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
		String contextPath = request.getServletContext().getContextPath();
		request.getSession().invalidate();
		response.setContentType("text/html;charset=UTF-8");
		response.getWriter().write("<script>alert('谢谢使用!'),location.href='"+contextPath+"/mui/login.jsp'</script>");
	}

	private void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
		String contextPath = request.getServletContext().getContextPath();
		System.out.println(contextPath);
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		User login = userDao.login(username, MD5.Encrypt(password));
		if (login!=null) {
			request.getSession().setAttribute("login", login);
			response.sendRedirect(contextPath+"/user?method=index");
		}else{
			request.setAttribute("msg", "登录失败,用户名或密码错误");
			request.setAttribute("username", username);
			request.setAttribute("password", password);
			request.getRequestDispatcher("/mui/login.jsp").forward(request, response);
		}
	}

	//添加
	private void add(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

		String contextPath = request.getServletContext().getContextPath();

		String username = request.getParameter("username");
		String password = request.getParameter("password");
		String pic = request.getParameter("pic");
		String role = request.getParameter("role");
		String isBolck = request.getParameter("isBolck");
		User user = new User();
		user.setUsername(username);
		user.setPassword(password);
		user.setPic(pic);
		user.setRole(role);
		user.setIsBolck(isBolck);
		userService.add(user);
		response.sendRedirect(contextPath+"/user?method=list");
	}

	//添加保存
	protected void save(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String contextPath = request.getServletContext().getContextPath();

		User user = new User();
		 //得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全
        String savePath = this.getServletContext().getRealPath("/upload");
        File file = new File(savePath);
        //判断上传文件的保存目录是否存在
        if (!file.exists() && !file.isDirectory()) {
            System.out.println(savePath+"目录不存在,需要创建");
            //创建目录
            file.mkdir();
        }
        //消息提示
        String msg = "";
        try{
            //使用Apache文件上传组件处理文件上传步骤:
            //1、创建一个DiskFileItemFactory工厂
            DiskFileItemFactory factory = new DiskFileItemFactory();
            //2、创建一个文件上传解析器
            ServletFileUpload upload = new ServletFileUpload(factory);
             //解决上传文件名的中文乱码
            upload.setHeaderEncoding("UTF-8");
            //3、判断提交上来的数据是否是上传表单的数据
            if(!ServletFileUpload.isMultipartContent(request)){
                //按照传统方式获取数据
                return;
            }
            //4、使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List<FileItem>集合,每一个FileItem对应一个Form表单的输入项
            List<FileItem> list = upload.parseRequest(request);
            for(FileItem item : list){
                //如果fileitem中封装的是普通输入项的数据
                if(item.isFormField()){
                    String name = item.getFieldName();
                     //解决普通输入项的数据的中文乱码问题
					if ("id".endsWith(name)) {
                    	if (item.getString("UTF-8")!=null && item.getString("UTF-8")!="") {
                    		user.setId(item.getString("UTF-8"));
						}
					}
					if ("username".endsWith(name)) {
						user.setUsername(item.getString("UTF-8"));
					}
					if ("password".endsWith(name)) {
						user.setPassword(item.getString("UTF-8"));
					}
					if ("pic".endsWith(name)) {
						user.setPic(item.getString("UTF-8"));
					}
					if ("role".endsWith(name)) {
						user.setRole(item.getString("UTF-8"));
					}
					if ("isBolck".endsWith(name)) {
						user.setIsBolck(item.getString("UTF-8"));
					}

                }else{//如果fileitem中封装的是上传文件
                    //得到上传的文件名称,
                    String filename = item.getName();
                    System.out.println(filename);
                    if(filename==null || filename.trim().equals("")){
                        continue;
                    }
                    //注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如:  c:\a\b\1.txt,而有些只是单纯的文件名,如:1.txt
                    //处理获取到的上传文件的文件名的路径部分,只保留文件名部分
                    filename = filename.substring(filename.lastIndexOf("\\")+1);
                    //获取item中的上传文件的输入流
                    InputStream in = item.getInputStream();
                    //创建一个文件输出流
                    FileOutputStream out = new FileOutputStream(savePath + "\\" + filename);
                    //创建一个缓冲区
                    byte buffer[] = new byte[1024];
                    //判断输入流中的数据是否已经读完的标识
                    int len = 0;
                    //循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据
                    while((len=in.read(buffer))>0){
                        //使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath + "\\" + filename)当中
                        out.write(buffer, 0, len);
                    }
                    //关闭输入流
                    in.close();
                    //关闭输出流
                    out.close();
                    //删除处理文件上传时生成的临时文件
                    item.delete();
 					msg = "文件上传成功!";

                    user.setPic("\\upload" + "\\" + filename);
                }
            }
            if (user.getId()!=null && !"".equals(user.getId())) {
            	user.setPassword(userService.getById(user.getId()).getPassword());
    			userService.update(user);
    		}else{
    			userService.add(user);
    		}
    		response.sendRedirect(contextPath+"/user?method=list");
        }catch (Exception e) {
            msg= "文件上传失败!";
            e.printStackTrace();
            request.setAttribute("msg",msg);
            request.getRequestDispatcher("/views/system/userForm.jsp").forward(request, response);
        }
	}

	//删除
	private void delete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String contextPath = request.getServletContext().getContextPath();
		String id = request.getParameter("id");
		userService.delete(id);
		response.sendRedirect(contextPath+"/user?method=list");
	}

	//修改
	private void update(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String id = request.getParameter("id");
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		String pic = request.getParameter("pic");
		String role = request.getParameter("role");
		String isBolck = request.getParameter("isBolck");
		User user = new User();
		user.setId(id);
		user.setUsername(username);
		user.setPassword(password);
		user.setPic(pic);
		user.setRole(role);
		user.setIsBolck(isBolck);
		userService.update(user);
		request.setAttribute("user", user);
		request.getRequestDispatcher("/views/system/userForm.jsp").forward(request, response);
	}

	//列表查询
	private void list(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.err.println("---开始查询---");
		User user = new User();
		//分页有关
		Page<User> page = new Page<User>();
		//设置查询页
		String pageNoStr = request.getParameter("pageNo");
		if (pageNoStr != null && pageNoStr != "") {
			page.setPageNo(Integer.parseInt(pageNoStr));
		}
		//设置查询条件
		String username = request.getParameter("username");
		if (username != null && username != "") {
			user.setUsername(username);
			request.setAttribute("username", username);
		}

		page = userService.page(user, page);
		request.setAttribute("page", page);
		request.getRequestDispatcher("/views/system/userList.jsp").forward(request, response);
	}

	//form跳转页面
	private void form(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String id = request.getParameter("id");
		User user = new User();
		if (id!=null && id!="") {
			user = userService.getById(id);
		}
		request.setAttribute("user", user);
		List<Role> findAll = roleService.findAll(new Role());
		request.setAttribute("roles", findAll);
		request.getRequestDispatcher("/views/system/userForm.jsp").forward(request, response);
	}

	public static void main(String[] args) {
		String encrypt = MD5.Encrypt("123456");
		System.out.println(encrypt);
	}

}

学生管理控制器

@WebServlet("/activeStu")
public class ActiveStuController extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
	private String contextPath = "";
	
	ActiveStuDao activeStuDao=new ActiveStuDao();
	ActiveStuService activeStuService = new ActiveStuServiceImpl();
	
	SiteNewsService siteNewsService = new SiteNewsServiceImpl();
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}
	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		contextPath = request.getServletContext().getContextPath();
		String method = request.getParameter("method");
		if ("add".equals(method)) {
			add(request,response);
		}else if ("delete".equals(method)) {
			delete(request, response);
		}else if ("list".equals(method)) {
			list(request, response);
		}else if ("update".equals(method)) {
			update(request, response);
		}else if ("form".equals(method)) {
			form(request, response);
		}else if ("save".equals(method)) {
			save(request, response);
		}
		
	}
	
	//添加
	private void add(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String activeId = request.getParameter("activeId");
		String stuId = request.getParameter("stuId");
		String stuName = request.getParameter("stuName");
		String phone = request.getParameter("phone");
		String type = request.getParameter("type");
		String isArrive = request.getParameter("isArrive");
		ActiveStu activeStu = new ActiveStu();
		activeStu.setActiveId(activeId);
		activeStu.setStuId(stuId);
		activeStu.setStuName(stuName);
		activeStu.setPhone(phone);
		activeStu.setType(type);
		activeStu.setIsArrive(isArrive);
		activeStuService.add(activeStu);
		response.sendRedirect(contextPath+"/activeStu?method=list");
	}
	
	//添加保存
	protected void save(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		ActiveStu activeStu = new ActiveStu();
		 //这是上传到tomcat下,文件容易丢失
		 //得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全
        String savePath = this.getServletContext().getRealPath("/upload");
        File file = new File(savePath);
        //判断上传文件的保存目录是否存在
        if (!file.exists() && !file.isDirectory()) {
            System.out.println(savePath+"目录不存在,需要创建");
            //创建目录
            file.mkdir();
        }
        //上传到服务器硬盘上,保证重启tomcat不会丢失文件
        //获取上传文件的路径
//        String savePath = PropertiesUtil.getValue("fileUpload");
//        File file = new File(savePath+"/");
//        if (!file.exists() && !file.isDirectory()) {
//            System.out.println(savePath+"目录不存在,需要创建");
//            //创建目录
//            file.mkdirs();
//        }
        //消息提示
        String msg = "";
        try{
            //使用Apache文件上传组件处理文件上传步骤:
            //1、创建一个DiskFileItemFactory工厂
            DiskFileItemFactory factory = new DiskFileItemFactory();
            //2、创建一个文件上传解析器
            ServletFileUpload upload = new ServletFileUpload(factory);
             //解决上传文件名的中文乱码
            upload.setHeaderEncoding("UTF-8"); 
            //3、判断提交上来的数据是否是上传表单的数据
            if(!ServletFileUpload.isMultipartContent(request)){
                //按照传统方式获取数据
                return;
            }
            //4、使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List<FileItem>集合,每一个FileItem对应一个Form表单的输入项
            List<FileItem> list = upload.parseRequest(request);
            for(FileItem item : list){
                //如果fileitem中封装的是普通输入项的数据
                if(item.isFormField()){
                    String name = item.getFieldName();
                     //解决普通输入项的数据的中文乱码问题
					if ("id".endsWith(name)) {
                    	if (item.getString("UTF-8")!=null && item.getString("UTF-8")!="") {
                    		activeStu.setId(item.getString("UTF-8"));
						}
					}
					
					if ("activeId".endsWith(name)) {
						activeStu.setActiveId(item.getString("UTF-8"));
						
					}
					
					if ("stuId".endsWith(name)) {
						activeStu.setStuId(item.getString("UTF-8"));
						
					}
					
					if ("stuName".endsWith(name)) {
						activeStu.setStuName(item.getString("UTF-8"));
						
					}
					
					if ("phone".endsWith(name)) {
						activeStu.setPhone(item.getString("UTF-8"));
						
					}
					
					if ("type".endsWith(name)) {
						activeStu.setType(item.getString("UTF-8"));
						
					}
					
					if ("isArrive".endsWith(name)) {
						activeStu.setIsArrive(item.getString("UTF-8"));
						
					}
                    
                }else{//如果fileitem中封装的是上传文件
                    //得到上传的文件名称,
                    String filename = item.getName();
                    System.out.println(filename);
                    if(filename==null || filename.trim().equals("")){
                        continue;
                    }
                    //注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如:  c:\a\b\1.txt,而有些只是单纯的文件名,如:1.txt
                    //处理获取到的上传文件的文件名的路径部分,只保留文件名部分
                    filename = filename.substring(filename.lastIndexOf("\\")+1);
                    //获取item中的上传文件的输入流
                    InputStream in = item.getInputStream();
                    //创建一个文件输出流
                    FileOutputStream out = new FileOutputStream(savePath + "\\" + filename);
                    //创建一个缓冲区
                    byte buffer[] = new byte[1024];
                    //判断输入流中的数据是否已经读完的标识
                    int len = 0;
                    //循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据
                    while((len=in.read(buffer))>0){
                        //使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath + "\\" + filename)当中
                        out.write(buffer, 0, len);
                    }
                    //关闭输入流
                    in.close();
                    //关闭输出流
                    out.close();
                    //删除处理文件上传时生成的临时文件
                    item.delete();
 					msg = "文件上传成功!";
                    
                }
            }
            if (activeStu.getId()!=null && !"".equals(activeStu.getId())) {
    			activeStuService.update(activeStu);
    		}else{
    			activeStuService.add(activeStu);
    		}
    		response.sendRedirect(contextPath+"/activeStu?method=list");
        }catch (Exception e) {
            msg= "文件上传失败!";
            e.printStackTrace();
            request.setAttribute("msg",msg);
            request.getRequestDispatcher("/views/team/activeStuForm.jsp").forward(request, response);
        }
	}
	
	//删除
	private void delete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String id = request.getParameter("id");
		activeStuService.delete(id);
		response.sendRedirect(contextPath+"/activeStu?method=list");
	}
	
	//修改
	private void update(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String id = request.getParameter("id");
		String activeId = request.getParameter("activeId");
		String stuId = request.getParameter("stuId");
		String stuName = request.getParameter("stuName");
		String phone = request.getParameter("phone");
		String type = request.getParameter("type");
		String isArrive = request.getParameter("isArrive");
		ActiveStu activeStu = new ActiveStu();
		activeStu.setId(id);
		activeStu.setActiveId(activeId);
		activeStu.setStuId(stuId);
		activeStu.setStuName(stuName);
		activeStu.setPhone(phone);
		activeStu.setType(type);
		activeStu.setIsArrive(isArrive);
		activeStuService.update(activeStu);
		request.setAttribute("activeStu", activeStu);
		request.getRequestDispatcher("/views/team/activeStuForm.jsp").forward(request, response);
	}
	
	//列表查询
	private void list(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.err.println("---开始查询---");
		ActiveStu activeStu = new ActiveStu();
		//分页有关
		Page<ActiveStu> page = new Page<ActiveStu>();
		//设置查询页
		String pageNoStr = request.getParameter("pageNo");
		if (pageNoStr != null && pageNoStr != "") {
			page.setPageNo(Integer.parseInt(pageNoStr));
		}
		//设置查询条件
		String activeId = request.getParameter("activeId");
		if (activeId != null && activeId != "") {
			activeStu.setActiveId(activeId);
			request.setAttribute("activeId", activeId);
		}
		String stuId = request.getParameter("stuId");
		if (stuId != null && stuId != "") {
			activeStu.setStuId(stuId);
			request.setAttribute("stuId", stuId);
		}
		String stuName = request.getParameter("stuName");
		if (stuName != null && stuName != "") {
			activeStu.setStuName(stuName);
			request.setAttribute("stuName", stuName);
		}
		String type = request.getParameter("type");
		if (type != null && type != "") {
			activeStu.setType(type);
			request.setAttribute("type", type);
		}
		String isArrive = request.getParameter("isArrive");
		if (isArrive != null && isArrive != "") {
			activeStu.setIsArrive(isArrive);
			request.setAttribute("isArrive", isArrive);
		}
		
		//数据过滤,根据当前登录的用户判断数据范围 如果只是社长 只能查看自己负责的社团
		User currentUser = CurrentUserUtils.getCurrentUser(request);
		String roleFlag = currentUser.getRole2().getRoleFlag();
		if ("leader".equals(roleFlag)) {
			//如果是社长,查出自己负责的活动
			SiteNews siteNews = new SiteNews();
			siteNews.setCreateUser(currentUser.getUsername());
			siteNews.setNewsType("2");
			List<SiteNews> findAll = siteNewsService.findAll(siteNews);
			
			StringBuffer stringBuffer = new StringBuffer();
			stringBuffer.append(" and a.active_id in (");
			for (SiteNews siteNews2 : findAll) {
				stringBuffer.append("'"+siteNews2.getId()+"',");
			}
			stringBuffer.append(" '1')");
			activeStu.setSqlStr(stringBuffer.toString());
		}
		
		//判断提示信息
		Object msg = request.getSession().getAttribute("msg");
		if (msg != null) {
			request.setAttribute("msg", msg.toString());
			request.getSession().removeAttribute("msg");
		}
		
		page = activeStuService.page(activeStu, page);
		request.setAttribute("page", page);
		request.getRequestDispatcher("/views/team/activeStuList.jsp").forward(request, response);
	}
	
	//form跳转页面
	private void form(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String id = request.getParameter("id");
		ActiveStu activeStu = new ActiveStu();
		if (id!=null && id!="") {
			activeStu = activeStuService.getById(id);
		}
		request.setAttribute("activeStu", activeStu);
		request.getRequestDispatcher("/views/team/activeStuForm.jsp").forward(request, response);
	}
	
}

如果也想学习本系统,下面领取。关注并回复:032jsp

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
一、项目简介本课程演示的是一套基于SSM实现的社团管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。课程包含:1. 项目源码、项目文档、数据库脚本、软件工具等所有资料2. 带你从零开始部署运行本套系统3. 该项目附带的源码资料可作为毕设使用4. 提供技术答疑二、技术实现后台框架:Spring、SpringMVC、MyBatisUI界面:JSP、jQuery 、H-ui数据库:MySQL 三、系统功能本社团管理系统是根据大学社团管理的实际应用而开发的,采用JSP技术,JAVA编程语言,基于SSM框架,使用MySQL数据库,充分保证系统的安全性和稳定性,使得社团管理工作系统化、规范化、高效化。该系统主要分为前台和后台两大功能模块,共包含两个角色:用户、管理员。具体的系统功能如下:1.前台功能 前台首页、新闻公告、规章制度、社团活动、活动报名、互动交流、用户注册、用户登陆、用户中心、修改密码、个人信息、我的社团活动、物资申请、退出登陆等功能。2.后台功能 后台系统登陆、社团用户管理、管理员管理、网站公告管理、社团活动管理、申请类型管理、用户申请管理、活动报名管理、留言交流管理等功能。该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 四、项目截图1)前台首页2)新闻公告3)用户注册4)社团用户管理5)社团活动管理  更多Java毕设项目请关注【毕设系列课程】https://edu.csdn.net/lecturer/2104   

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

夜未央5788

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

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

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

打赏作者

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

抵扣说明:

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

余额充值