文章目录
前言
在线教育管理系统的总体需求是:面向所有用户进行课程浏览的系统。在线教育系统包含了多个板块,有提供给用户及时看到最新公告的公告信息板块、有课程浏览板块,能够让用户可以查看自己所想要学习课程的相关信息、有试题板块,方便用户下载一些自己所需要的试题、还有制定学习计划板块,学习计划制定完成后还能够将学习计划导出,方便之后查看。通过多个板块的安排,能够给用户在学习课程上带来便利。
一、性能需求
1、系统是基于 windows 系统的项目,服务器引擎采用 Tomcat,在线教育系统在兼容性
上需满足现有服务器配置兼容,并满足能够让当下主流浏览器的使用。
2、服务器的存储空间有限,除了基本的信息内容储存在数据库中其余的文件类都以
地址的形式储存在数据库中。
二、系统界面展示
1.系统主界面
2、登陆界面
用户登录成功后,可以点击查看“试题”、“摄影笔记”、“安卓”、“Java”、“数据库”、“学习计划”、“全部课程目录”进行相关操作,还可以操作退出账号,实现其他账号的登录。“退出登录”是为退出当前登录的帐号同时清除相关缓存的数据,以实现其他账号的登录。
3、后台管理界面
管理员登录成功后进入到后台管理界面。后台导航菜单包括了:用户信息管理、班级信息管理、试题信息管理、课程信息管理、数据信息管理以及公告管理。管理员可以对这些菜单进行相关数据的查看和增删查改。
3.1用户信息管理
管理员可以查看用户信息管理中的用户列表中的相关信息以及对用户的相关信息进行增加、修改和删除操作
3.2班级信息管理
管理员可以查看班级信息管理中的相关信息以及对相关信息进行增加、修改和删除操作
3.3试题信息管理
管理员可以查看试题信息管理中试题列表的相关信息以及对相关信息进行增加、修改和删除操作
3.4课程信息管理
管理员可以查看课程信息管理中课程列表的相关信息以及对相关信息进行增加、修改和删除操作
3.5数据信息管理
管理员可以查看数据信息管理中数据列表的相关信息以及相关数据可以以不同类型的统计图进行呈现
3.6公告管理
管理员可以查看公告信息管理中公告列表的相关信息以及对相关信息进行增加、修改和删除操作
4.主要代码实现
Servlet 层:
public void doPost(HttpServletRequest request,HttpServletResponse response) throws IOException{
String method = request.getParameter("method");
if("logout".equals(method)){
logout(request, response);
return ;
}
String vcode = request.getParameter("vcode");
String name = request.getParameter("account");
String password = request.getParameter("password");
int type = Integer.parseInt(request.getParameter("type"));
String loginCpacha = request.getSession().getAttribute("loginCapcha").toString();
if(StringUtil.isEmpty(vcode)){
response.getWriter().write("vcodeError");
return;
}
if(!vcode.toUpperCase().equals(loginCpacha.toUpperCase())){
response.getWriter().write("vcodeError");
return;
}
//验证码验证通过,对比用户名密码是否正确
String loginStatus = "loginFaild";
switch (type) {
case 1:{
AdminDao adminDao = new AdminDao();
Admin admin = adminDao.login(name, password);
adminDao.closeCon();
if(admin == null){
response.getWriter().write("loginError");
return;
}
HttpSession session = request.getSession();
session.setAttribute("user", admin);
session.setAttribute("userType", type);
loginStatus = "loginSuccess1";
//response.sendRedirect("/user/index.jsp");
break;
}
case 2:{
StudentDao studentDao = new StudentDao();
Student student =studentDao.login(name, password);
studentDao.closeCon();
if(student == null){
response.getWriter().write("loginError");
return;
}
HttpSession session = request.getSession();
session.setAttribute("user", student);
session.setAttribute("userType", type);
loginStatus = "loginSuccess2";
//response.sendRedirect("/user/index.jsp");
break;
}
/*case 3:{
TeacherDao teahcerDao = new TeacherDao();
Teacher teacher = teahcerDao.login(name, password);
teahcerDao.closeCon();
if(teacher == null){
response.getWriter().write("loginError");
return;
}
HttpSession session = request.getSession();
session.setAttribute("user", teacher);
session.setAttribute("userType", type);
loginStatus = "loginSuccess";
break;
}*/
default:
break;
}
response.getWriter().write(loginStatus);
}
```java
Filter 代码:
public void doFilter(ServletRequest req, ServletResponse rep, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest)req;
HttpServletResponse response = (HttpServletResponse)rep;
Object user = request.getSession().getAttribute("user");
if(user == null){
//未登录
response.sendRedirect("login.jsp");
return;
}else{
chain.doFilter(request, response);
}
}
web.xml 中的配置:
<filter>
<description>登录状态过滤</description>
<filter-name>LoginFilter</filter-name>
<filter-class>cn.gdupt.filter.LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>LoginFilter</filter-name>
<url-pattern>/SystemServlet</url-pattern>
<url-pattern>/AdminServlet</url-pattern>
<url-pattern>/StudentServlet</url-pattern>
</filter-mapping>
总结
如有疑问可私聊博主或评论区留下联系方式。
点击获取数据库、代码下载地址