本系统主要技术包括jsp、servlet、JavaBean、数据库运用mysql,调用数据库技术用的是util,也可根据自己要求修改成spring的ssm框架去调用数据库简化代码,防止冗余。
此系统是一个简单的在线选课系统,满足三方人员的使用(管理员,教师,学生),学生能通过系统进行选课,老师能通过系统进行添加课程,管理员能通过系统进行添加人员,在个人登录后,将拥有相关人员登录的权限,例如学生的浏览课程,老师的浏览选课。
用户角色划分
- 管理员
使用本系统的后台功能,可以进行教师和学生的添加
- 教师
使用本系统的前台功能,可以进行课程的添加,教师本人信息的修改,选课信息的查找。
3、学生
使用本系统的前台功能,可以进行选课信息的查找,学生本人信息的修改以及课程的选择。
用户登录及功能设计:
一.管理员登录及功能设计:
2.教师登录及用户设计:
3.学生登录及用户设计:
数据库登录设计:(此登录设计往后学习到SSM框架后可用Spring的applicationContext去代替访问数据库,减少代码量,访问更加快速直接:如下图二)
二. 网页界面以及各页面间跳转设计:
1.管理员界面设计:
2.教师界面设计:
3.学生界面设计:
4.登录界面以及主界面设计:
三.代码设计:
1.java代码:
Guanli包:
Add类:
package online_select.Guanli; import online_select.Login.DBUtil; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; public class Add { public boolean add(String table,AddService en) { boolean c=false; String sql="insert into "+table+"(username,password,power,name) values" + "('"+en.getUsername()+"','"+en.getPassword()+"','"+en.getPower()+"','"+en.getName()+"');"; Connection conn= DBUtil.getConn(); Statement state=null; try { state=conn.createStatement(); int num=state.executeUpdate(sql); if(num!=0) c=true; state.close(); conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block //e.printStackTrace(); } return c; } public boolean add(String table,TeacherService en) { boolean c=false; String sql="insert into "+table+"(teac_id,teac_name,teac_sex,college,postion) values" + "('"+en.getTeac_id()+"','"+en.getTeac_name()+"','"+en.getTeac_sex()+"','"+en.getCollege()+"','"+en.getPostion()+"');"; Connection conn=DBUtil.getConn(); Statement state=null; try { state=conn.createStatement(); int num=state.executeUpdate(sql); if(num!=0) c=true; state.close(); conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block //e.printStackTrace(); } return c; } public boolean add(String table,StudentService en) { boolean c=false; String s = "','" + en.getCollege() + "');"; String sql="insert into "+table+"(stu_id,stu_name,stu_sex,class_name,college) values" + "('"+en.getStu_id()+"','"+en.getStu_name()+"','"+en.getStu_sex()+"','"+en.getStu_sex()+"','"+en.getCollege()+"');"; Connection conn=DBUtil.getConn(); Statement state=null; try { state=conn.createStatement(); int num=state.executeUpdate(sql); if(num!=0) c=true; state.close(); conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block //e.printStackTrace(); } return c; } }
AddService类:
package online_select.Guanli; public class AddService { String username; String password; String name; public String getName() { return name; } public void setName(String name) { this.name = name; } int power; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public int getPower() { return power; } public void setPower(int power) { this.power = power; } }
RegisterServlet类:
package online_select.Guanli; import online_select.Login.Select; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * Servlet implementation class RegisterServlet */ @WebServlet("/RegisterServlet") public class RegisterServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public RegisterServlet() { super(); // TODO Auto-generated constructor stub } protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException { @SuppressWarnings("unused") Select s=new Select(); arg0.setCharacterEncoding("utf-8"); arg1.setCharacterEncoding("utf-8"); @SuppressWarnings("unused") boolean flag; String function=arg0.getParameter("method"); if(function.equals("teacher")) { AddService as=new AddService(); Add a=new Add(); String username; username=arg0.getParameter("username"); as.setUsername(username); String password; password=arg0.getParameter("password"); as.setPassword(password); int num=1; as.setPower(num); TeacherService ts=new TeacherService(); String teac_id; teac_id=arg0.getParameter("teac——id"); ts.setTeac_id(teac_id); String teac_name; teac_name=arg0.getParameter("teac_name"); ts.setTeac_name(teac_name); as.setName(teac_name); String teac_sex; teac_sex=arg0.getParameter("teac_sex"); ts.setTeac_sex(teac_sex); String college; college=arg0.getParameter("college"); ts.setCollege(college); String postion; postion=arg0.getParameter("ostion"); ts.setPostion(postion); a.add("login", as); a.add("teacher", ts); arg0.setAttribute("message","添加成功"); arg0.getRequestDispatcher("Right.jsp").forward(arg0, arg1); } if(function.equals("student")) { AddService as=new AddService(); Add a=new Add(); String username; username=arg0.getParameter("username"); as.setUsername(username); String password; password=arg0.getParameter("password"); as.setPassword(password); int num=2; as.setPower(num); StudentService ss=new StudentService(); String stu_id; stu_id=arg0.getParameter("stu_id"); ss.setStu_id(stu_id); String stu_name; stu_name=arg0.getParameter("stu_name"); ss.setStu_name(stu_name); as.setName(stu_name); String stu_sex; stu_sex=arg0.getParameter("stu_sex"); ss.setStu_sex(stu_sex); String class_name; class_name=arg0.getParameter("class_name"); ss.setClass_name(class_name); String college; college=arg0.getParameter("college"); ss.setCollege(college); a.add("student", ss); a.add("login", as); arg0.setAttribute("message","添加成功"); arg0.getRequestDispatcher("Right.jsp").forward(arg0, arg1); } } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.getWriter().append("Served at: ").append(request.getContextPath()); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
StudentServicelei:
package online_select.Guanli; public class StudentService { String stu_id; String stu_name; String stu_sex; String class_name; String college; public String getStu_id() { return stu_id; } public void setStu_id(String stu_id) { this.stu_id = stu_id; } public String getCollege() { return college; } public void setCollege(String college) { this.college = college; } public String getClass_name() { return class_name; } public void setClass_name(String class_name) { this.class_name = class_name; } public String getStu_sex() { return stu_sex; } public void setStu_sex(String stu_sex) { this.stu_sex = stu_sex; } public String getStu_name() { return stu_name; } public void setStu_name(String stu_name) { this.stu_name = stu_name; } }
TeacherService类:
package online_select.Guanli; public class TeacherService { String teac_id; String teac_name; String teac_sex; String college; String postion; public String getPostion() { return postion; } public void setPostion(String postion) { this.postion = postion; } public String getCollege() { return college; } public void setCollege(String college) { this.college = college; } public String getTeac_sex() { return teac_sex; } public void setTeac_sex(String teac_sex) { this.teac_sex = teac_sex; } public String getTeac_name() { return teac_name; } public void setTeac_name(String teac_name) { this.teac_name = teac_name; } public String getTeac_id() { return teac_id; } public void setTeac_id(String teac_id) { this.teac_id = teac_id; } }
Login包:
DBUtil类:
package online_select.Login; import java.sql.*; public class DBUtil { public static String db_url = "jdbc:mysql://localhost:3306/online_select?useSSL=false&serverTimezone=UTC&characterEncoding=UTF-8"; public static String db_user = "root"; public static String db_pass = "131517.a"; public static Connection getConn () { Connection conn = null; try { Class.forName("com.mysql.cj.jdbc.Driver");//加载驱动 conn = DriverManager.getConnection(db_url, db_user, db_pass); System.out.println("Yes!"); } catch (Exception e) { e.printStackTrace(); } return conn; } /** * 关闭连接 * @param state * @param conn */ public static void close (Statement state, Connection conn) { if (state != null) { try { state.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void close (ResultSet rs, Statement state, Connection conn) { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (state != null) { try { state.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void main(String[] args) throws SQLException { Connection conn = getConn(); PreparedStatement pstmt = null; ResultSet rs = null; String sql ="select * from course"; pstmt = conn.prepareStatement(sql); rs = pstmt.executeQuery(); if(rs.next()){ System.out.println("空"); }else{ System.out.println("不空"); } } }
LoginServlet类:
package online_select.Login; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; /** * Servlet implementation class LoginServlet */ @WebServlet("/LoginServlet") public class LoginServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public LoginServlet() { super(); // TODO Auto-generated constructor stub } protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException { Select s=new Select(); arg0.setCharacterEncoding("utf-8"); arg1.setCharacterEncoding("utf-8"); boolean flag; String function=arg0.getParameter("method"); if(function.equals("login")) { String username; username=arg0.getParameter("username"); String password; password=arg0.getParameter("password"); String power; power=arg0.getParameter("power"); int num=Integer.parseInt(power); flag=s.select("login", username, password,num); Power.setFlag(num); if(flag) { arg0.setAttribute("message","登录成功"); arg0.getRequestDispatcher("Home.jsp").forward(arg0, arg1); } else { arg0.setAttribute("message","账号或密码错误"); arg0.getRequestDispatcher("Login.jsp").forward(arg0, arg1); } } } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.getWriter().append("Served at: ").append(request.getContextPath()); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
Power类:
package online_select.Login; public class Power { static int flag; public static int getFlag() { return flag; } public static void setFlag(int flag) { Power.flag = flag; } static String name; public static String getName() { return name; } public static void setName(String name) { Power.name = name; } static String username; public static String getUsername() { return username; } public static void setUsername(String username) { Power.username = username; } }
Select类
package online_select.Login; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; public class Select { public boolean select(String table,String username,String password,int num) { boolean f=false; Connection conn=DBUtil.getConn(); Statement state=null; try { state=conn.createStatement(); String sql="select * from "+table; ResultSet rs=state.executeQuery(sql); while(rs.next()) { if(username.equals(rs.getString(1))&&password.equals(rs.getString(2))) { Power.setName(rs.getString(4)); Power.setUsername(rs.getString(1)); System.out.println(Power.getName()); f=true; } } rs.close(); state.close(); conn.close(); } catch(Exception e) { } return f; } }
Student包:
Change类:
package online_select.Student; import online_sel