系统使用技术:SSM

前端技术:bootstrap、css、js等

开发工具:idea

数据库:mysql5.7

项目介绍:

系统主要功能包括对所有用户的管理、对文章的管理、对帖子的管理、以及对资料的管理。用户可以查看学习视频、对资料下载、,以及查看帖子;管理员可以上传学习资料和视频,发布技术文章,学生进入系统可以进行在线视频学习,可以发表帖子,同学之间可以互相评论帖子等。

下面我们来看看功能。

系统登陆界面:

http://localhost:8088/ExcellentCourse_war_exploded/login.jsp

系统首页

用户可以登录或者注册,进入系统

视频列表

用户可以查看所有视频,可以下载并且播放

帖子

查看所有帖子,或者回复帖子

文章详情

查看文章详情

后台首页

可以看到所有功能

后台文章管理

管理员可以操作文章

后台帖子管理

后台对帖子管理

代码

管理员登陆:

/**
	 * 登录
	 * @param username
	 * @param password
	 * @param req
	 * @return
	 */
	@RequestMapping("/adminLogin")
	public String adminLogin(@PathParam("username") String username,
			@PathParam("password") String password,HttpServletRequest req){
		System.out.println("管理员登录时调用:"+username+"--"+password);
		User user = us.getUserByUsername(username);

		if(user!=null){
			System.out.println("state="+user.getState()+"||roleid="+user.getRoleId()+"||id"+user.getId());
			if(user.getRoleId()==2){
				return "unauthorized";
			}else if(user.getState()==1) {
				Subject subject = SecurityUtils.getSubject();
//			if(subject.isAuthenticated()==true){
				UsernamePasswordToken token = new UsernamePasswordToken(username, CryptographyUtil.md5(password,"salt"));
				try{
					subject.login(token);
					Session session = subject.getSession();
					System.out.println("sessionId:"+session.getId()+"sessionHost:"+session.getHost()+"sessionTimeout:"+session.getTimeout());
					session.setAttribute("username", username);
					session.setAttribute("id", user.getId());
					return "success";
				}catch(Exception e){
					e.printStackTrace();
					req.setAttribute("user", user);
					req.setAttribute("errorMsg", "用户名或密码错误!");
					return "adlogin";
				}

			}else{
				req.setAttribute("user",user);
				req.setAttribute("errorMsg", "账号未激活");
				return "adlogin";
			}
		}
		return "adlogin";
	}

用户登录

/***
	 * 登录
	 * @param username
	 * @param password
	 * @param request
	 * @return
	 */
	@RequestMapping("/login")
	public String login(@PathParam("username") String username,
			@PathParam("password") String password,HttpServletRequest request){
		System.out.println("用户登录时调用:"+username+"--"+password);
		User user = us.getUserByUsername(username);

			if(user!=null) {
				if (user.getState() == 1) {
					Subject subject = SecurityUtils.getSubject();
			/*if(subject.hasRole("admin")) {
			    //有权限
			} else {
			    //无权限
			}   */
					if (subject.isAuthenticated() == false) {
						UsernamePasswordToken token = new UsernamePasswordToken(username, CryptographyUtil.md5(password, "salt"));
						try {
							subject.login(token);
							Session session = subject.getSession();
							// 输出session
							System.out.println("sessionId:" + session.getId() + "sessionHost:" + session.getHost() + "sessionTimeout:" + session.getTimeout());
							session.setAttribute("username", username);
							session.setAttribute("email", user.getEmail());
							session.setAttribute("id", user.getId());
							return "redirect:index.jsp";
						} catch (Exception e) {
							e.printStackTrace();
							request.setAttribute("user", user);
							request.setAttribute("errorMsg", "用户名或密码错误!");
							return "unauthorized";
						}
					} else {
						return "index";
					}

				} else {
					request.setAttribute("user", user);
					request.setAttribute("errorMsg", "账号未激活");
					return "unauthorized";
				}
			}
		return "unauthorized";
	}

以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,而且也与当前的热点话题关联,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,比较适合毕业设计和课程设计的相关应用。 

 

好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐