基于javaweb+mysql的jsp+servlet教务选课成绩管理系统(java+mysql+servlet+jsp+bootstrap)
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的JSP+Servlet教务选课成绩管理系统(java+mysql+servlet+jsp+bootstrap)
管理员:
admin 123456
学生:
student1 123456
student2 123456
student3 123456
student4 123456
教师:
teacher1 123456
teacher2 123456
teacher3 123456
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 删除操作
*
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void delete(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String id = request.getParameter("id");
Connection con = null;
try {
con = dbUtil.getCon();
JSONObject result = new JSONObject();
if(studentCourseDao.existCourseById(con, id)){
result.put("success", false);
}else{
result.put("success", true);
courseDao.courseDelete(con, id);
}
ResponseUtil.write(result, response);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
throws ServletException, IOException {
String id = request.getParameter("id");
String courseName = request.getParameter("courseName");
String credit = request.getParameter("credit");
String teacherId = request.getParameter("teacherId");
Course course = new Course(courseName, Integer.parseInt(credit),
Integer.parseInt(teacherId));
Connection con = null;
try {
con = dbUtil.getCon();
if (StringUtil.isNotEmpty(id)) { // 修改
course.setId(Integer.parseInt(id));
courseDao.courseUpdate(con, course);
} else {
courseDao.courseAdd(con, course);
}
response.sendRedirect("course?action=list");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 删除操作
*
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void delete(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String id = request.getParameter("id");
Connection con = null;
try {
con = dbUtil.getCon();
JSONObject result = new JSONObject();
if(studentCourseDao.existCourseById(con, id)){
result.put("success", false);
}else{
result.put("success", true);
courseDao.courseDelete(con, id);
}
}
}
/**
* 登录验证
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void login(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
String userName=request.getParameter("userName");
String password=request.getParameter("password");
String userType=request.getParameter("userType");
String error="";
if(StringUtil.isEmpty(userName)){
error="用户名不能为空!";
}else if(StringUtil.isEmpty(password)){
error="密码不能为空!";
}else if(StringUtil.isEmpty(userType)){
error="请选择用户类型!";
}
User user=new User(userName,password,userType);
if(StringUtil.isNotEmpty(error)){
request.setAttribute("user", user);
request.setAttribute("error", error);
request.getRequestDispatcher("login.jsp").forward(request, response);
return;
}
Connection con=null;
User currentUser=null;
try{
con=dbUtil.getCon();
if("管理员".equals(userType)){
currentUser=managerDao.login(con, user);
}else if("教师".equals(userType)){
currentUser=teacherDao.login(con, user);
}else if("学生".equals(userType)){
currentUser=studentDao.login(con, user);
}
if(currentUser==null){
error="用户名或密码错误!";
request.setAttribute("user", user);
request.setAttribute("error", error);
request.getRequestDispatcher("login.jsp").forward(request, response);
*/
private void delete(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
String id=request.getParameter("id");
Connection con=null;
try{
con=dbUtil.getCon();
JSONObject result=new JSONObject();
if(courseDao.existCourseWithTeacherId(con, id)){
result.put("errorInfo", "该老师有课程在授,不能删除!");
}else{
teacherDao.teacherDelete(con, id);
result.put("success", true);
}
ResponseUtil.write(result, response);
}catch(Exception e){
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 查看当前老师的课程
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void showCourse(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
HttpSession session=request.getSession();
User currentUser=(User) session.getAttribute("currentUser");
Course s_course=new Course();
s_course.setTeacherId(currentUser.getUserId());
/**
* 教师Servlet类
*
*/
public class TeacherServlet extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
private DbUtil dbUtil=new DbUtil();
private TeacherDao teacherDao=new TeacherDao();
private CourseDao courseDao = new CourseDao();
private StudentDao studentDao=new StudentDao();
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String action=request.getParameter("action");
if("list".equals(action)){
this.list(request, response);
}else if("preSave".equals(action)){
this.preSave(request, response);
}else if("save".equals(action)){
this.save(request, response);
}else if("delete".equals(action)){
this.delete(request, response);
}else if("showCourse".equals(action)){
this.showCourse(request, response);
}else if("showStudent".equals(action)){
this.showStudent(request, response);
}else if("showInfo".equals(action)){
this.showInfo(request, response);
}else if("scoreInfo".equals(action)){
this.scoreInfo(request,response);
}else if("updateScore".equals(action)){
this.updateScore(request,response);
}
}
/**
* 显示数据
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void list(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
HttpSession session=request.getSession();
String page=request.getParameter("page");
String s_userName=request.getParameter("s_userName");
}else if("showInfo".equals(action)){
this.showInfo(request, response);
}else if("scoreInfo".equals(action)){
this.scoreInfo(request,response);
}else if("updateScore".equals(action)){
this.updateScore(request,response);
}
}
/**
* 显示数据
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void list(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
HttpSession session=request.getSession();
String page=request.getParameter("page");
String s_userName=request.getParameter("s_userName");
Teacher s_teacher=new Teacher();
if(StringUtil.isEmpty(page)){
page="1";
s_teacher.setUserName(s_userName);
session.setAttribute("s_teacher", s_teacher);
}else{
s_teacher=(Teacher) session.getAttribute("s_teacher");
}
PageBean pageBean=new PageBean(Integer.parseInt(page),3);
Connection con=null;
try{
con=dbUtil.getCon();
List<Teacher> teacherList=teacherDao.teacherList(con, pageBean, s_teacher);
int total=teacherDao.teacherCount(con, s_teacher);
String pageCode=PageUtil.getPagation(request.getContextPath()+"/teacher?action=list", total, Integer.parseInt(page), 3);
request.setAttribute("pageCode", pageCode);
request.setAttribute("modeName", "教师信息管理");
request.setAttribute("teacherList", teacherList);
request.setAttribute("mainPage", "teacher/list.jsp");
request.getRequestDispatcher("main.jsp").forward(request, response);
}catch(Exception e){
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
public class LoginFilter implements Filter{
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
FilterChain filterChain) throws IOException, ServletException {
HttpServletResponse response=(HttpServletResponse)servletResponse;
HttpServletRequest request=(HttpServletRequest)servletRequest;
HttpSession session=request.getSession();
Object object=session.getAttribute("currentUser");
String path=request.getServletPath();
response.sendRedirect("forlogin.jsp");
}else{
filterChain.doFilter(servletRequest, servletResponse);
}
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}
public class ResponseUtil {
public static void write(Object o,HttpServletResponse response)throws Exception{
response.setContentType("text/html;charset=utf-8");
PrintWriter out=response.getWriter();
request.setAttribute("mainPage", "course/list.jsp");
request.getRequestDispatcher("main.jsp").forward(request, response);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 添加修改预操作
*
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void preSave(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String id = request.getParameter("id");
Connection con = null;
try {
con = dbUtil.getCon();
if (StringUtil.isNotEmpty(id)) {
request.setAttribute("actionName", "课程信息修改");
Course course = courseDao.loadCourseById(con, id);
request.setAttribute("course", course);
} else {
request.setAttribute("actionName", "课程信息添加");
}
// 查询所有教师
List<Teacher> teacherList=teacherDao.teacherList(con, null, null);
request.setAttribute("teacherList", teacherList);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
request.setAttribute("mainPage", "course/save.jsp");
request.setAttribute("modeName", "课程信息管理");
request.getRequestDispatcher("main.jsp").forward(request, response);
}
/**
private void selectCourse(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
HttpSession session=request.getSession();
User currentUser=(User) session.getAttribute("currentUser");
String courseIds=request.getParameter("courseIds"); // 获取选中的课程ID集合
String cIds[]=courseIds.split(",");
Connection con=null;
try{
con=dbUtil.getCon();
for(int i=0;i<cIds.length;i++){
StudentCourse sc=new StudentCourse();
sc.setStudentId(currentUser.getUserId());
sc.setCourseId(Integer.parseInt(cIds[i]));
studentCourseDao.addStudentCourse(con, sc);
}
JSONObject result = new JSONObject();
result.put("success", true);
ResponseUtil.write(result, response);
}catch(Exception e){
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 退选课程
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void unSelectCourse(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
String scIds=request.getParameter("scIds"); // 获取选中的课程ID集合
String scIdsStr[]=scIds.split(",");
Connection con=null;
boolean flag=true;
try{
con=dbUtil.getCon();
JSONObject result = new JSONObject();
for(int i=0;i<scIdsStr.length;i++){
/**
* 课程Servlet类
*
*
*/
public class CourseServlet extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
private DbUtil dbUtil = new DbUtil();
private CourseDao courseDao = new CourseDao();
private TeacherDao teacherDao = new TeacherDao();
private StudentCourseDao studentCourseDao=new StudentCourseDao();
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
sc.setCourseId(Integer.parseInt(cIds[i]));
studentCourseDao.addStudentCourse(con, sc);
}
JSONObject result = new JSONObject();
result.put("success", true);
ResponseUtil.write(result, response);
}catch(Exception e){
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 退选课程
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void unSelectCourse(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
String scIds=request.getParameter("scIds"); // 获取选中的课程ID集合
String scIdsStr[]=scIds.split(",");
Connection con=null;
boolean flag=true;
try{
con=dbUtil.getCon();
JSONObject result = new JSONObject();
for(int i=0;i<scIdsStr.length;i++){
if(studentCourseDao.hasScoreWithCourseId(con, scIdsStr[i])){
flag=false;
}else{
studentCourseDao.deleteStudentCourse(con, scIdsStr[i]);
}
}
result.put("success", flag);
ResponseUtil.write(result, response);
}catch(Exception e){
e.printStackTrace();
/**
* 安全退出
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void logout(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
request.getSession().invalidate();
response.sendRedirect("login.jsp");
}
}
public class LoginFilter implements Filter{
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
FilterChain filterChain) throws IOException, ServletException {
HttpServletResponse response=(HttpServletResponse)servletResponse;
HttpServletRequest request=(HttpServletRequest)servletRequest;
HttpSession session=request.getSession();
Object object=session.getAttribute("currentUser");
String path=request.getServletPath();
response.sendRedirect("forlogin.jsp");
}else{
filterChain.doFilter(servletRequest, servletResponse);
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 查询学生的成绩
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void showScore(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
HttpSession session=request.getSession();
User currentUser=(User) session.getAttribute("currentUser");
Connection con=null;
try{
con=dbUtil.getCon();
List<StudentCourse> courseList=studentCourseDao.findCourseByStudentId(con, currentUser.getUserId());
request.setAttribute("courseList", courseList);
request.setAttribute("modeName", "成绩查询");
request.setAttribute("mainPage", "student/showScore.jsp");
request.getRequestDispatcher("main.jsp").forward(request, response);
}catch(Exception e){
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 准备选择课程
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void preSelect(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 查看个人信息
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void showInfo(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
HttpSession session=request.getSession();
User currentUser=(User) session.getAttribute("currentUser");
Connection con=null;
try{
con=dbUtil.getCon();
Teacher teacher=teacherDao.loadTeacherById(con, String.valueOf(currentUser.getUserId()));
request.setAttribute("teacher", teacher);
request.setAttribute("modeName", "查看个人信息");
request.setAttribute("mainPage", "teacher/info.jsp");
request.getRequestDispatcher("main.jsp").forward(request, response);
}catch(Exception e){
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 查询学生的成绩
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void showScore(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
HttpSession session=request.getSession();
User currentUser=(User) session.getAttribute("currentUser");
Connection con=null;
try{
con=dbUtil.getCon();
List<StudentCourse> courseList=studentCourseDao.findCourseByStudentId(con, currentUser.getUserId());
request.setAttribute("courseList", courseList);
request.setAttribute("modeName", "成绩查询");
request.setAttribute("mainPage", "student/showScore.jsp");
request.getRequestDispatcher("main.jsp").forward(request, response);
}catch(Exception e){
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* 准备选择课程
* @param request
* @param response
* @throws ServletException
* @throws IOException
*/
private void preSelect(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
HttpSession session=request.getSession();
User currentUser=(User) session.getAttribute("currentUser");
Connection con=null;
try{
con=dbUtil.getCon();
// 查询所有的课程
* @throws IOException
*/
private void unSelectCourse(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
String scIds=request.getParameter("scIds"); // 获取选中的课程ID集合
String scIdsStr[]=scIds.split(",");
Connection con=null;
boolean flag=true;
try{
con=dbUtil.getCon();
JSONObject result = new JSONObject();
for(int i=0;i<scIdsStr.length;i++){
if(studentCourseDao.hasScoreWithCourseId(con, scIdsStr[i])){
flag=false;
}else{
studentCourseDao.deleteStudentCourse(con, scIdsStr[i]);
}
}
result.put("success", flag);
ResponseUtil.write(result, response);
}catch(Exception e){
e.printStackTrace();
}finally{
try {
dbUtil.closeCon(con);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
/**
* 用户Servlet类
*
*/
public class UserServlet extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
private DbUtil dbUtil=new DbUtil();
private ManagerDao managerDao=new ManagerDao();
private TeacherDao teacherDao=new TeacherDao();
private StudentDao studentDao=new StudentDao();
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String action=request.getParameter("action"); // 获取动作类型
if("login".equals(action)){
this.login(request, response);
}else if("logout".equals(action)){
this.logout(request, response);
}
}
/**