资讯专栏INFORMATION COLUMN

JavaWeb学生选课(Servlet、JSP、JDBC)

fuchenxuan / 2808人阅读

摘要:运行结果数据库的个表表表一定要导入数据库用的包,以及在在文件夹中导入数据库包文件目录结构具体代码首页欢迎进入选课系统欢迎进入选课系统学生登录学生注册管理员登录学生登录学生登录学生登录学号密码登录注册返回学生注册注册

运行结果:

数据库的2个表:
course表

student表

ps:一定要build path导入数据库用的jar包,以及在在lib文件夹中导入数据库jar包

文件目录结构:

具体代码:
index.jsp 首页

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




欢迎进入选课系统


欢迎进入选课 系统

学生登录 学生注册 管理员登录

login.jsp 学生登录

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




学生登录

 

      

学生登录

学号:

密码:

注册 返回

regist.jsp 学生注册

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




注册
    
    


注册页面

学号:
姓名:
密码:
院系:
年级:
班级:
您有账号?点击直接登录

studentIndex.jsp 学生选课主页

  
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ page contentType="text/html; ISO-8859-1" language="java" import="java.util.*" pageEncoding="utf-8" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
 


  
    
    
    学生选课
    
    
    
        
    
    
  
    
    
    
    
    
  
  
  
  
退出登录

学生选课界面

查找: >


课程名称 剩余量 总数量 任课教师 课程地点 课程时间 课程时长 操作
${courseList.courseName } ${courseList.courseRemain } ${courseList.courseTotal } ${courseList.courseTeacher } ${courseList.coursePlace } ${courseList.courseTime } ${courseList.courseTimelength }





我的选课

studentInfo.jsp 学生已选的课程展示

  1. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  2. <%@ page contentType="text/html; ISO-8859-1" language="java" import="java.util.*" pageEncoding="utf-8" %>
  3. <%
  4. String path = request.getContextPath();
  5. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
  6. %>
  7. 学生课程
  8. 课程名称任课教师课程地点课程时间课程时长操作
    ${studentCourseList.courseName }${studentCourseList.courseTeacher }${studentCourseList.coursePlace }${studentCourseList.courseTime }${studentCourseList.courseTimelength }

admin.jsp 管理员登录

</>code

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. 管理员登录


  4. 管理员登录

  5. <%
  6. String error = (String)session.getAttribute("error");
  7. if(error!=null&&error.length()!=0){
  8. out.println(error);
  9. }
  10. %>
  11. 账号:


  12. 密码:


  13. 返回

adminCourse.jsp 管理课程页面

</>code

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  4. 课程后台管理
  5. 退出登录
  6. 选课后台管理

  7. 添加课程

  8. 编号课程名任课老师上课地点上课时间课时总人数剩余数操作
    ${courseList.courseId}${courseList.courseName }${courseList.courseTeacher }${courseList.coursePlace }${courseList.courseTime }${courseList.courseTimelength }${courseList.courseTotal }${courseList.courseRemain }

checkadmin.jsp 检查管理员账号密码

</>code

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. check
  4. <% String adno=request.getParameter("adno");
  5. String adpassword = request.getParameter("adpassowrd");
  6. if(adno==null||adno.length()==0||adpassword==null ||adpassword.length()==0){
  7. request.getSession().setAttribute("error", "账号或密码错误");
  8. response.sendRedirect("admin.jsp");
  9. }else{
  10. if(!adno.equals("admin")||!adpassword.equals("admin")){
  11. request.getSession().setAttribute("error", "账号或密码错误");
  12. response.sendRedirect("admin.jsp");
  13. }else{
  14. request.getSession().setAttribute("error", "");
  15. response.sendRedirect("/xxmtest6/FindCourseServlet");
  16. }
  17. }
  18. %>

bean
Student.java 学生实体

</>code

  1. package xxm.bean;
  2. /**
  3. * 学生实体类
  4. * @author xxm
  5. *
  6. */
  7. public class Student {
  8. String no;
  9. String name;
  10. String passwd;
  11. String major;
  12. String grade;
  13. String sclass;
  14. String selectedCourse;
  15. public Student() {
  16. }
  17. public String getSelectedCourse() {
  18. return selectedCourse;
  19. }
  20. public void setSelectedCourse(String cid) {
  21. this.selectedCourse = cid;
  22. }
  23. public String getNo() {
  24. return no;
  25. }
  26. public void setNo(String no) {
  27. this.no = no;
  28. }
  29. public String getName() {
  30. return name;
  31. }
  32. public void setName(String name) {
  33. this.name = name;
  34. }
  35. public String getPasswd() {
  36. return passwd;
  37. }
  38. public void setPasswd(String passwd) {
  39. this.passwd = passwd;
  40. }
  41. public String getMajor() {
  42. return major;
  43. }
  44. public void setMajor(String major) {
  45. this.major = major;
  46. }
  47. public String getGrade() {
  48. return grade;
  49. }
  50. public void setGrade(String grade) {
  51. this.grade = grade;
  52. }
  53. public String getSclass() {
  54. return sclass;
  55. }
  56. public void setSclass(String sclass) {
  57. this.sclass = sclass;
  58. }
  59. }

Course.java 课程实体类

</>code

  1. package xxm.bean;
  2. /**
  3. * 课程
  4. *
  5. * @author xxm
  6. *
  7. */
  8. public class Course {
  9. int courseId;
  10. String courseName;
  11. int courseRemain;
  12. int courseTotal;
  13. String courseTeacher;
  14. String coursePlace;
  15. String courseTime;
  16. String courseTimelength;
  17. public Course() {
  18. }
  19. public int getCourseId() {
  20. return courseId;
  21. }
  22. public void setCourseId(int courseId) {
  23. this.courseId = courseId;
  24. }
  25. public String getCourseName() {
  26. return courseName;
  27. }
  28. public void setCourseName(String courseName) {
  29. this.courseName = courseName;
  30. }
  31. public int getCourseRemain() {
  32. return courseRemain;
  33. }
  34. public void setCourseRemain(int courseRemain) {
  35. this.courseRemain = courseRemain;
  36. }
  37. public int getCourseTotal() {
  38. return courseTotal;
  39. }
  40. public void setCourseTotal(int courseTotal) {
  41. this.courseTotal = courseTotal;
  42. }
  43. public String getCourseTeacher() {
  44. return courseTeacher;
  45. }
  46. public void setCourseTeacher(String courseTeacher) {
  47. this.courseTeacher = courseTeacher;
  48. }
  49. public String getCoursePlace() {
  50. return coursePlace;
  51. }
  52. public void setCoursePlace(String coursePlace) {
  53. this.coursePlace = coursePlace;
  54. }
  55. public String getCourseTime() {
  56. return courseTime;
  57. }
  58. public void setCourseTime(String courseTime) {
  59. this.courseTime = courseTime;
  60. }
  61. public String getCourseTimelength() {
  62. return courseTimelength;
  63. }
  64. public void setCourseTimelength(String courseTimelength) {
  65. this.courseTimelength = courseTimelength;
  66. }
  67. }

数据库操作
DBO
DBOper.java

</>code

  1. package xxm.database;
  2. import java.sql.Connection;
  3. import java.sql.DriverManager;
  4. import java.sql.PreparedStatement;
  5. import java.sql.ResultSet;
  6. import java.sql.SQLException;
  7. import java.sql.Statement;
  8. import xxm.bean.Student;
  9. import xxm.dao.StudentDao;
  10. public class DBOper {
  11. //驱动
  12. private static String driver = "com.mysql.cj.jdbc.Driver";
  13. //database名,选择我要用的数据库shiyan6
  14. private static String url = "jdbc:mysql://localhost:3306/shiyan6?serverTimezone=UTC";
  15. //验证用户名和密码
  16. private static String username = "root";
  17. private static String passwd= "123456";
  18. //数据库的连接对象
  19. private static Connection conn = null;
  20. //Statement对象
  21. private static PreparedStatement ps = null;
  22. ResultSet rs = null;
  23. /**
  24. * 连接数据库
  25. * @return
  26. * @throws SQLException
  27. */
  28. public Connection getConnection() throws SQLException {
  29. try {
  30. Class.forName(driver);
  31. conn = DriverManager.getConnection(url,username,passwd);//连接数据库
  32. } catch (ClassNotFoundException e) {
  33. System.err.println("无法连接数据库!");
  34. }//加载驱动
  35. return conn;
  36. }
  37. //执行sql语句,可以进行查询
  38. public ResultSet executeQuery(String preparedSql,String []param){
  39. try{
  40. ps = conn.prepareStatement(preparedSql);
  41. if(param != null){
  42. for (int i = 0; i < param.length; i++) {
  43. ps.setString(i + 1, param[i]);
  44. }
  45. }
  46. rs = ps.executeQuery();
  47. }catch(SQLException e){
  48. e.printStackTrace();
  49. }
  50. return rs;
  51. }
  52. //执行sql语句,增加,修改,删除
  53. public int executeUpdate(String preparedSql,String[]param){
  54. int num = 0;
  55. try{
  56. ps = conn.prepareStatement(preparedSql);
  57. if(ps != null){
  58. for (int i = 0; i < param.length; i++) {
  59. ps.setString(i + 1, param[i]);
  60. }
  61. }
  62. num = ps.executeUpdate();
  63. }catch(SQLException e){
  64. e.printStackTrace();
  65. }
  66. return num;
  67. }
  68. public static void main(String[] args) {
  69. try {
  70. DBOper dao = new DBOper();
  71. Connection conn=dao.getConnection();
  72. if(conn!=null)
  73. {
  74. System.out.println("连接数据库正常");
  75. }
  76. else {
  77. System.out.println("连接数据库异常");
  78. }
  79. } catch (Exception ex) {
  80. // TODO: handle exception
  81. ex.printStackTrace();
  82. }
  83. }
  84. }

StudentDao.java

</>code

  1. package xxm.dao;
  2. import java.sql.Connection;
  3. import java.sql.PreparedStatement;
  4. import java.sql.ResultSet;
  5. import java.sql.SQLException;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8. import xxm.bean.Student;
  9. import xxm.database.DBOper;
  10. public class StudentDao extends DBOper{
  11. Connection conn =null;
  12. public StudentDao() {
  13. try {
  14. conn= super.getConnection();
  15. } catch (SQLException e) {
  16. // TODO Auto-generated catch block
  17. e.printStackTrace();
  18. }
  19. }
  20. /**
  21. * 添加学生用户
  22. * @param student
  23. * @return
  24. */
  25. public boolean addUser(Student student){
  26. boolean r = false;
  27. String sql = "INSERT INTO student(sno,sname,spassword,smajor,sclass,sgrade) VALUES(?,?,?,?,?,?);";
  28. try{
  29. int num = this.executeUpdate(sql,new String[]{student.getNo(),student.getName(),student.getPasswd(),student.getMajor(),student.getSclass(),student.getGrade()});
  30. if(num > 0){
  31. r = true;
  32. }
  33. }catch(Exception e){
  34. e.printStackTrace();
  35. }finally{
  36. //this.closeAll();
  37. }
  38. return r;
  39. }
  40. }

CourseDao.java

</>code

  1. package xxm.dao;
  2. import java.sql.Connection;
  3. import java.sql.SQLException;
  4. import xxm.bean.Course;
  5. import xxm.bean.Student;
  6. import xxm.database.DBOper;
  7. /**
  8. * 课程管理
  9. *
  10. * @author xxm
  11. *
  12. */
  13. public class CourseDao extends DBOper{
  14. Connection conn =null;
  15. public CourseDao(){
  16. try {
  17. conn= super.getConnection();
  18. } catch (SQLException e) {
  19. // TODO Auto-generated catch block
  20. e.printStackTrace();
  21. }
  22. }
  23. /**
  24. * 添加选课课程
  25. * @param course
  26. * @return
  27. */
  28. public boolean addCourse(Course course){
  29. boolean r = false;
  30. String sql = "INSERT INTO course(course_Name,course_Remain,course_Total,course_Teacher,course_Place,course_Time,course_Timelength) VALUES(?,?,?,?,?,?,?);";
  31. try{
  32. int num = this.executeUpdate(sql,new String[]{course.getCourseName(),String.valueOf(course.getCourseRemain()),String.valueOf(course.getCourseTotal()),course.getCourseTeacher(),course.getCoursePlace(),course.getCourseTime(),course.getCourseTimelength()});
  33. if(num > 0){
  34. r = true;
  35. }
  36. }catch(Exception e){
  37. e.printStackTrace();
  38. }finally{
  39. //this.closeAll();
  40. }
  41. return r;
  42. }
  43. /**
  44. * 更新
  45. * @param course
  46. * @return
  47. */
  48. public boolean update(Course course) {
  49. String sql = "update course set course_Name=?,course_Teacher=?,course_Place=?,course_Time=?,course_Timelength=?,course_Total=?,course_Remain=? where course_Id = ? ";
  50. int num = this.executeUpdate(sql, new String[]{course.getCourseName(),
  51. course.getCourseTeacher(),
  52. course.getCoursePlace(),
  53. course.getCourseTime(),
  54. course.getCourseTimelength(),
  55. String.valueOf(course.getCourseTotal()),
  56. String.valueOf(course.getCourseRemain()),
  57. String.valueOf(course.getCourseId())});
  58. if(num>0)
  59. return true;
  60. else return false;
  61. }
  62. }

Servlet

处理学生选课的servlet
RegisterServlet.java 学生注册

</>code

  1. package xxm.servlet;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import java.sql.Connection;
  5. import java.sql.SQLException;
  6. import java.text.SimpleDateFormat;
  7. import java.util.Date;
  8. import javax.servlet.ServletContext;
  9. import javax.servlet.ServletException;
  10. import javax.servlet.annotation.WebServlet;
  11. import javax.servlet.http.HttpServlet;
  12. import javax.servlet.http.HttpServletRequest;
  13. import javax.servlet.http.HttpServletResponse;
  14. import xxm.bean.Student;
  15. import xxm.dao.StudentDao;
  16. @WebServlet("/RegisterServlet")
  17. public class RegisterServlet extends HttpServlet {
  18. private static final long serialVersionUID = 1L;
  19. /**
  20. * @see HttpServlet#HttpServlet()
  21. */
  22. public RegisterServlet() {
  23. super();
  24. // TODO Auto-generated constructor stub
  25. }
  26. /**
  27. * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  28. */
  29. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  30. // TODO Auto-generated method stub
  31. doPost(request,response);
  32. }
  33. /**
  34. * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  35. */
  36. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  37. // TODO Auto-generated method stub
  38. request.setCharacterEncoding("utf-8");
  39. response.setContentType("text/html;charset = utf-8");
  40. String userno = request.getParameter("userNo");
  41. String username = request.getParameter("userName");
  42. String userpass = request.getParameter("password");
  43. String major = request.getParameter("major");
  44. String grade = request.getParameter("grade");
  45. String sclass = request.getParameter("sclass");
  46. PrintWriter out = response.getWriter();
  47. Student user = new Student();
  48. user.setNo(userno);
  49. user.setName(username);
  50. user.setPasswd(userpass);
  51. user.setMajor(major);
  52. user.setGrade(grade);
  53. user.setSclass(sclass);
  54. StudentDao dao = new StudentDao();
  55. try {
  56. Connection conn = dao.getConnection();
  57. if(conn!=null) {
  58. out.print("conn is not null");
  59. }
  60. if(dao.addUser(user)){
  61. out.print("注册成功!");
  62. response.sendRedirect("login.jsp");
  63. }
  64. else{
  65. out.print("注册失败!");
  66. }
  67. } catch (SQLException e) {
  68. // TODO Auto-generated catch block
  69. e.printStackTrace();
  70. }
  71. }
  72. }

LoginServlet.java 学生登录

</>code

  1. package xxm.servlet;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import java.sql.ResultSet;
  5. import java.sql.SQLException;
  6. import java.text.SimpleDateFormat;
  7. import java.util.Date;
  8. import javax.servlet.RequestDispatcher;
  9. import javax.servlet.ServletContext;
  10. import javax.servlet.ServletException;
  11. import javax.servlet.annotation.WebServlet;
  12. import javax.servlet.http.Cookie;
  13. import javax.servlet.http.HttpServlet;
  14. import javax.servlet.http.HttpServletRequest;
  15. import javax.servlet.http.HttpServletResponse;
  16. import javax.servlet.http.HttpSession;
  17. import xxm.database.DBOper;
  18. /**
  19. * Servlet implementation class LoginServlet
  20. */
  21. @WebServlet("/LoginServlet")
  22. public class LoginServlet extends HttpServlet {
  23. private static final long serialVersionUID = 1L;
  24. /**
  25. * @see HttpServlet#HttpServlet()
  26. */
  27. public LoginServlet() {
  28. super();
  29. // TODO Auto-generated constructor stub
  30. }
  31. /**
  32. * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  33. */
  34. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  35. // TODO Auto-generated method stub
  36. doPost(request,response);
  37. }
  38. /**
  39. * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  40. */
  41. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  42. // TODO Auto-generated method stub
  43. request.setCharacterEncoding("utf-8");
  44. response.setContentType("text/html;charset = utf-8");
  45. PrintWriter out = response.getWriter();
  46. String stuno = request.getParameter("stuno");
  47. String stupass = request.getParameter("stupassowrd");
  48. DBOper db = new DBOper();
  49. try {
  50. db.getConnection();
  51. } catch (SQLException e1) {
  52. // TODO Auto-generated catch block
  53. e1.printStackTrace();
  54. }
  55. String sql = "SELECT sno,spassword FROM student WHERE sno = ? AND spassword = ?";
  56. ResultSet rs = db.executeQuery(sql,new String[]{stuno,stupass});
  57. try {
  58. if(rs != null && rs.next()){
  59. HttpSession session = request.getSession();
  60. session.setAttribute("numSession", stuno);
  61. Cookie cookie = new Cookie("stuno",stuno);
  62. cookie.setMaxAge(60*60*24*30);
  63. response.addCookie(cookie);
  64. //登录成功,跳转...
  65. RequestDispatcher dispatcher = request.getRequestDispatcher("/FindServlet");
  66. dispatcher.forward(request,response);
  67. }else{
  68. out.print("登录失败");
  69. out.print("
    重新登陆");
  70. // response.setContentType("text/html;charset=UTF-8");
  71. //
  72. // response.setHeader("refresh", "0; url=/StudentSelect");
  73. }
  74. } catch (SQLException e) {
  75. // TODO Auto-generated catch block
  76. e.printStackTrace();
  77. }
  78. }
  79. public void init()throws ServletException {
  80. }
  81. }

FindServlet.java 选课主页

</>code

  1. package xxm.servlet;
  2. import java.io.IOException;
  3. import java.sql.Connection;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.annotation.WebServlet;
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. import java.sql.DriverManager;
  10. import java.sql.ResultSet;
  11. import java.sql.Statement;
  12. import java.util.ArrayList;
  13. import java.util.List;
  14. import xxm.bean.Course;
  15. import xxm.database.DBOper;
  16. /**
  17. * 主页显示信息的Servlet
  18. *
  19. * @author xxm
  20. *
  21. */
  22. @WebServlet("/FindServlet")
  23. public class FindServlet extends HttpServlet {
  24. private static final long serialVersionUID = 1L;
  25. /**
  26. * @see HttpServlet#HttpServlet()
  27. */
  28. public FindServlet() {
  29. super();
  30. // TODO Auto-generated constructor stub
  31. }
  32. @Override
  33. protected void doGet(HttpServletRequest req, HttpServletResponse resp)
  34. throws ServletException, IOException {
  35. process(req, resp);
  36. }
  37. @Override
  38. protected void doPost(HttpServletRequest req, HttpServletResponse resp)
  39. throws ServletException, IOException {
  40. process(req, resp);
  41. }
  42. public void process(HttpServletRequest req, HttpServletResponse resp)
  43. throws ServletException, IOException {
  44. try {
  45. // 创建Connection连接
  46. DBOper dao = new DBOper();
  47. Connection conn = dao.getConnection();
  48. // SQL语句
  49. String sql = "select * from course";
  50. // 获取Statement
  51. Statement statement = conn.createStatement();
  52. ResultSet resultSet = statement.executeQuery(sql);
  53. List courseList = new ArrayList();
  54. while (resultSet.next()) {
  55. Course course = new Course();
  56. course.setCourseId(resultSet.getInt("course_Id"));
  57. course.setCourseName(resultSet.getString("course_Name"));
  58. course.setCourseRemain(resultSet.getInt("course_Remain"));
  59. course.setCourseTotal(resultSet.getInt("course_Total"));
  60. course.setCourseTeacher(resultSet.getString("course_Teacher"));
  61. course.setCoursePlace(resultSet.getString("course_Place"));
  62. course.setCourseTime(resultSet.getString("course_Time"));
  63. course.setCourseTimelength(resultSet.getString("course_Timelength"));
  64. courseList.add(course);
  65. }
  66. req.setAttribute("courseList", courseList);
  67. resultSet.close();
  68. statement.close();
  69. conn.close();
  70. } catch (Exception e) {
  71. e.printStackTrace();
  72. }
  73. req.getRequestDispatcher("/studentIndex.jsp").forward(req, resp);
  74. }
  75. }

StudentInfoServlets.java 学生已选课程

</>code

  1. package xxm.servlet;
  2. import java.io.IOException;
  3. import java.sql.Connection;
  4. import java.sql.ResultSet;
  5. import java.sql.Statement;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8. import javax.servlet.ServletException;
  9. import javax.servlet.annotation.WebServlet;
  10. import javax.servlet.http.HttpServlet;
  11. import javax.servlet.http.HttpServletRequest;
  12. import javax.servlet.http.HttpServletResponse;
  13. import xxm.bean.Course;
  14. import xxm.bean.Student;
  15. import xxm.database.DBOper;
  16. /**
  17. * Servlet implementation class StudentInfoServlets
  18. */
  19. @WebServlet("/StudentInfoServlets")
  20. public class StudentInfoServlets extends HttpServlet {
  21. private static final long serialVersionUID = 1L;
  22. /**
  23. * @see HttpServlet#HttpServlet()
  24. */
  25. public StudentInfoServlets() {
  26. super();
  27. // TODO Auto-generated constructor stub
  28. }
  29. @Override
  30. protected void doGet(HttpServletRequest req, HttpServletResponse resp)
  31. throws ServletException, IOException {
  32. process(req, resp);
  33. }
  34. @Override
  35. protected void doPost(HttpServletRequest req, HttpServletResponse resp)
  36. throws ServletException, IOException {
  37. process(req, resp);
  38. }
  39. protected void process(HttpServletRequest req, HttpServletResponse resp)
  40. throws ServletException, IOException {
  41. try {
  42. Connection conn = (new DBOper()).getConnection();
  43. Statement statement = (Statement) conn.createStatement();
  44. String numSession = (String) req.getSession().getAttribute("numSession");
  45. String sql1 = "select * from student where sno = " + numSession;
  46. ResultSet resultSet = statement.executeQuery(sql1);
  47. List courseStudentList = new ArrayList();
  48. while (resultSet.next()) {
  49. Student student = new Student();
  50. student.setSelectedCourse(resultSet.getString("selected_course"));
  51. //将学生加入到课程列表
  52. courseStudentList.add(student);
  53. }
  54. String courseStudentString= courseStudentList.get(0).getSelectedCourse();
  55. String[] array = courseStudentString.split(",");
  56. List studentCourseList = new ArrayList();
  57. for (String s:array) {
  58. String sql2 = "select * from course where course_Id = " + s ;
  59. resultSet = statement.executeQuery(sql2);
  60. while (resultSet.next()) {
  61. Course course = new Course();
  62. course.setCourseId(resultSet.getInt("course_Id"));
  63. course.setCourseName(resultSet.getString("course_Name"));
  64. course.setCourseTeacher(resultSet.getString("course_Teacher"));
  65. course.setCoursePlace(resultSet.getString("course_Place"));
  66. course.setCourseTime(resultSet.getString("course_Time"));
  67. course.setCourseTimelength(resultSet.getString("course_Timelength"));
  68. //将课程加入学生课程列表
  69. studentCourseList.add(course);
  70. }
  71. }
  72. req.setAttribute("studentCourseList", studentCourseList);
  73. resultSet.close();
  74. statement.close();
  75. conn.close();
  76. } catch (Exception e) {
  77. e.printStackTrace();
  78. }
  79. resp.setCharacterEncoding("UTF-8");
  80. req.getRequestDispatcher("studentInfo.jsp").forward(req, resp);
  81. }
  82. }

RemainAddServlet.java 剩余可选数

</>code

  1. package xxm.servlet;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import java.sql.Connection;
  5. import java.sql.ResultSet;
  6. import java.sql.Statement;
  7. import javax.servlet.ServletException;
  8. import javax.servlet.annotation.WebServlet;
  9. import javax.servlet.http.HttpServlet;
  10. import javax.servlet.http.HttpServletRequest;
  11. import javax.servlet.http.HttpServletResponse;
  12. import xxm.database.DBOper;
  13. /**
  14. * Servlet implementation class RemainAddServlet
  15. */
  16. @WebServlet("/RemainAddServlet")
  17. public class RemainAddServlet extends HttpServlet {
  18. private static final long serialVersionUID = 1L;
  19. @Override
  20. protected void doPost(HttpServletRequest req, HttpServletResponse resp)
  21. throws ServletException, IOException {
  22. process(req, resp);
  23. }
  24. @Override
  25. protected void doGet(HttpServletRequest req, HttpServletResponse resp)
  26. throws ServletException, IOException {
  27. process(req, resp);
  28. }
  29. protected void process(HttpServletRequest req, HttpServletResponse resp)
  30. throws ServletException, IOException {
  31. try {
  32. DBOper db = new DBOper();
  33. Connection conn = db.getConnection();
  34. Statement statement = (Statement) conn.createStatement();
  35. //String keyString = new String(req.getParameter("id").getBytes("iso-8859-1"), "utf-8");
  36. req.setCharacterEncoding("UTF-8");
  37. //课程号
  38. String keyString = req.getParameter("id");
  39. if(keyString == null) {
  40. keyString = "";
  41. resp.sendRedirect("/FindServlet");
  42. return;
  43. }
  44. //添加课程,只能选一门课程
  45. String numSession = (String) req.getSession().getAttribute("numSession");
  46. String sql1 = "select selected_course from student where sno = " + numSession;
  47. ResultSet resultSet = statement.executeQuery(sql1);
  48. String course = "";
  49. while (resultSet.next()) {
  50. course = resultSet.getString("selected_course");
  51. }
  52. //还没有选课
  53. if(course==null||course.length()==0) {
  54. //修改课程数据
  55. String sql2 = "update student set selected_course="" + keyString + "" where sno = " + numSession;
  56. statement.executeUpdate(sql2);
  57. //课程余量-1
  58. String sql = "update course set course_Remain=course_Remain-1 where course_Id = ""+ keyString + """;
  59. statement.executeUpdate(sql);
  60. }else {
  61. PrintWriter pw = resp.getWriter();
  62. pw.println("

    重复选课

    ");
  63. }
  64. statement.close();
  65. conn.close();
  66. } catch (Exception e) {
  67. e.printStackTrace();
  68. }
  69. resp.getWriter().print("{"data":"返回json数据!"}");
  70. }
  71. }

CancelServlet.java 取消选课

</>code

  1. package xxm.servlet;
  2. import java.io.IOException;
  3. import java.sql.Connection;
  4. import java.sql.ResultSet;
  5. import java.sql.Statement;
  6. import javax.servlet.ServletException;
  7. import javax.servlet.annotation.WebServlet;
  8. import javax.servlet.http.HttpServlet;
  9. import javax.servlet.http.HttpServletRequest;
  10. import javax.servlet.http.HttpServletResponse;
  11. import xxm.database.DBOper;
  12. /**
  13. * 取消选课
  14. */
  15. @WebServlet("/CancelServlet")
  16. public class CancelServlet extends HttpServlet {
  17. private static final long serialVersionUID = 1L;
  18. /**
  19. * @see HttpServlet#HttpServlet()
  20. */
  21. public CancelServlet() {
  22. super();
  23. // TODO Auto-generated constructor stub
  24. }
  25. @Override
  26. protected void doPost(HttpServletRequest req, HttpServletResponse resp)
  27. throws ServletException, IOException {
  28. process(req, resp);
  29. }
  30. @Override
  31. protected void doGet(HttpServletRequest req, HttpServletResponse resp)
  32. throws ServletException, IOException {
  33. process(req, resp);
  34. }
  35. protected void process(HttpServletRequest req, HttpServletResponse resp)
  36. throws ServletException, IOException {
  37. try {
  38. Connection conn = (new DBOper()).getConnection();
  39. Statement statement = (Statement) conn.createStatement();
  40. //String keyString = new String(req.getParameter("id").getBytes("iso-8859-1"), "utf-8");
  41. req.setCharacterEncoding("UTF-8");
  42. String course = req.getParameter("id");
  43. if(course == null) {
  44. course = "";
  45. resp.sendRedirect("/FindServlet");
  46. return;
  47. }
  48. String numSession = (String) req.getSession().getAttribute("numSession");
  49. // String sql1 = "select selected_course from student where sno = "" + numSession + """;
  50. // ResultSet resultSet = statement.executeQuery(sql1);
  51. //取出课程字符串
  52. // String courseString = "";
  53. // while (resultSet.next()) {
  54. // courseString = resultSet.getString("selected_course");
  55. // }
  56. //找到课程id
  57. // Integer spot = ;
  58. // courseString = courseString.substring(0, spot) + courseString.substring(spot+2);
  59. //更新课程数据,取消
  60. String sql2 = "update student set selected_course=NULL where sno = " + numSession ;
  61. statement.executeUpdate(sql2);
  62. //课程余量+1
  63. String sql3 = "update course set course_Remain=course_Remain+1 where course_Id ="+ course;
  64. statement.executeUpdate(sql3);
  65. statement.close();
  66. conn.close();
  67. } catch (Exception e) {
  68. e.printStackTrace();
  69. }
  70. resp.getWriter().print("{"data":"返回json数据!"}");
  71. }
  72. }

管理员操作部分
FindCourseServlet.java 管理员主页展示

</>code

  1. package xxm.servlet;
  2. import java.io.IOException;
  3. import java.sql.Connection;
  4. import java.sql.ResultSet;
  5. import java.sql.Statement;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8. import javax.servlet.ServletException;
  9. import javax.servlet.annotation.WebServlet;
  10. import javax.servlet.http.HttpServlet;
  11. import javax.servlet.http.HttpServletRequest;
  12. import javax.servlet.http.HttpServletResponse;
  13. import xxm.bean.Course;
  14. import xxm.database.DBOper;
  15. /**
  16. * 显示课程信息
  17. *
  18. * @author xxm
  19. *
  20. */
  21. @WebServlet("/FindCourseServlet")
  22. public class FindCourseServlet extends HttpServlet {
  23. private static final long serialVersionUID = 1L;
  24. /**
  25. * @see HttpServlet#HttpServlet()
  26. */
  27. public FindCourseServlet() {
  28. super();
  29. // TODO Auto-generated constructor stub
  30. }
  31. @Override
  32. protected void doGet(HttpServletRequest req, HttpServletResponse resp)
  33. throws ServletException, IOException {
  34. process(req, resp);
  35. }
  36. @Override
  37. protected void doPost(HttpServletRequest req, HttpServletResponse resp)
  38. throws ServletException, IOException {
  39. process(req, resp);
  40. }
  41. public void process(HttpServletRequest request, HttpServletResponse response)
  42. throws ServletException, IOException {
  43. try {
  44. // 创建Connection连接
  45. DBOper dao = new DBOper();
  46. Connection conn = dao.getConnection();
  47. // SQL语句
  48. String sql = "select * from course";
  49. // 获取Statement
  50. Statement statement = conn.createStatement();
  51. ResultSet resultSet = statement.executeQuery(sql);
  52. List courseLists = new ArrayList();
  53. while (resultSet.next()) {
  54. Course course = new Course();
  55. course.setCourseId(resultSet.getInt("course_Id"));
  56. course.setCourseName(resultSet.getString("course_Name"));
  57. course.setCourseRemain(resultSet.getInt("course_Remain"));
  58. course.setCourseTotal(resultSet.getInt("course_Total"));
  59. course.setCourseTeacher(resultSet.getString("course_Teacher"));
  60. course.setCoursePlace(resultSet.getString("course_Place"));
  61. course.setCourseTime(resultSet.getString("course_Time"));
  62. course.setCourseTimelength(resultSet.getString("course_Timelength"));
  63. courseLists.add(course);
  64. }
  65. request.setAttribute("courseList", courseLists);
  66. resultSet.close();
  67. statement.close();
  68. conn.close();
  69. } catch (Exception e) {
  70. e.printStackTrace();
  71. }
  72. request.getRequestDispatcher("adminCourse.jsp").forward(request, response);
  73. }
  74. }

CreateCourseServlet.java 添加新的课程

</>code

  1. package xxm.servlet;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import java.sql.Connection;
  5. import java.sql.SQLException;
  6. import javax.servlet.ServletException;
  7. import javax.servlet.annotation.WebServlet;
  8. import javax.servlet.http.HttpServlet;
  9. import java

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/74714.html

相关文章

  • JavaWeb学生选课ServletJSPJDBC

    摘要:运行结果数据库的个表表表一定要导入数据库用的包,以及在在文件夹中导入数据库包文件目录结构具体代码首页欢迎进入选课系统欢迎进入选课系统学生登录学生注册管理员登录学生登录学生登录学生登录学号密码登录注册返回学生注册注册 运行结果: showImg(https://segmentfault.com/img/bVbthFj); showImg(https://segmentfault.com/...

    zhunjiee 评论0 收藏0
  • 基于javaweb+jsp学生宿舍管理系统

    摘要:基于的学生宿舍管理系统部分代码实现楼栋不能为空编辑表单提交之前进行检查,如果,则不允许提交根据获取值姓名不能为空电话不能为空侧边栏 基于javaweb+jsp的学生...

    DandJ 评论0 收藏0
  • 基于javaweb+jsp学生成绩管理系统

    基于javaweb+jsp的学生成绩管理系统 JavaWeb JavaBean JSP MVC MySQL Tomcat JavaScript idea eclipse MyEclipse Servlet SSM Maven … 部分代码实现JSP let editIndex = layedit.build('LAY_demo_editor'); ...

    番茄西红柿 评论0 收藏2637

发表评论

0条评论

fuchenxuan

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<