作者主页:源码空间站2022
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文末获取源码
jsp选课系统
项目介绍
一款简单的Servlet + mysql + jsp的选课系统,主要有三大模块,管理员模块,教师模块,学生模块。管理员模块主要功能模块有系统管理,课程管理,教师管理,课表管理,学生管理;教师模块和学生模块的主要功能模块有个人信息和课表信息的查询,其中学生包括选课的功能。
软件架构
Servlet、mysql5.7、jsp、jdk1.8、tomcat8.0
安装教程
1. 导入数据库xuanke.sql
2. 导入项目,找到文件中util下的DB.java,修改你自己数据库的帐号和密码
3. 运行
运行截图
相关代码
KeBiao
package com.xuanke.model;
/**
* 课表实体类
* @author Leo
*
*/
public class KeBiao {
private int id;
private int kecheng_id;
private String shijian;
private String jieci;
private String jiaoshi;
private int laoshi_id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getKecheng_id() {
return kecheng_id;
}
public void setKecheng_id(int kecheng_id) {
this.kecheng_id = kecheng_id;
}
public String getShijian() {
return shijian;
}
public void setShijian(String shijian) {
this.shijian = shijian;
}
public String getJieci() {
return jieci;
}
public void setJieci(String jieci) {
this.jieci = jieci;
}
public String getJiaoshi() {
return jiaoshi;
}
public void setJiaoshi(String jiaoshi) {
this.jiaoshi = jiaoshi;
}
public int getLaoshi_id() {
return laoshi_id;
}
public void setLaoshi_id(int laoshi_id) {
this.laoshi_id = laoshi_id;
}
}
AddAdmin
package com.xuanke.servlet;
/**
* 添加管理员
*/
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.servlet.RequestDispatcher;
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 com.xuanke.util.DB;
/**
* Servlet implementation class AddAdmin
*/
@WebServlet("/AddAdmin")
public class AddAdmin extends HttpServlet {
private static final long serialVersionUID = 1L;
public AddAdmin() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//添加管理员信息
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
// 获取页面传过来的值
String userName = request.getParameter("userName");
String userPw = request.getParameter("userPw");
String oldName = request.getParameter("oldName");
int oldId = Integer.parseInt(request.getParameter("oldId"));
//创建数据库操作对象
DB db = new DB();
PreparedStatement ps;//创建ps对象
String sql = "insert into admin(userName,userPw) values(?,?)";
//调用db中的方法
ps = db.getPs(sql);
//添加数据
try {
ps.setString(1, userName);
ps.setString(2, userPw);
ps.executeUpdate();//执行sql语句
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
db.closed();//关闭数据流
PrintWriter out = response.getWriter();
response.sendRedirect("admin/adminMes.jsp?oldName=" + oldName + "&oldId=" + oldId);
/*request.setAttribute("oldName", oldName);
RequestDispatcher dispatcher = request.getRequestDispatcher("admin/adminMes.jsp"); // 使用req对象获取RequestDispatcher对象
dispatcher.forward(request, response);*/
doGet(request, response);
}
}
DB
package com.xuanke.util;
import java.sql.*;
/**
* 数据库操作类
* @author Leo
*
*/
public class DB {
private Connection con;
private PreparedStatement ps;
private ResultSet rs;
private Statement stmt;
private String user = "root";
private String password = "";
private String className = "com.mysql.jdbc.Driver";
private String url = "jdbc:mysql://:3306/xuanke?useUnicode=true&characterEncoding=utf8";
public DB() {
try {
Class.forName(this.className);
} catch (ClassNotFoundException e) {
System.out.println("加载数据库驱动失败!");
e.printStackTrace();
}
}
public Connection getCon() {
try {
this.con = DriverManager.getConnection(this.url, this.user, this.password);
} catch (SQLException e) {
System.out.println("创建数据库联接失败!");
this.con = null;
e.printStackTrace();
}
return this.con;
}
//增加,更新,查找
public PreparedStatement getPs(String sql) {
con = getCon();
// 向数据表添加信息
try {
ps = con.prepareStatement(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return ps;
}
//删除操作
public int del(String sql) {
con = getCon();
try {
stmt = con.createStatement();//创建statement对象
stmt.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
return -1;//删除失败
}
return 1;//删除成功
}
//分页begin 数据记录从第几条开始 begin=(当前页数-1)*size size 每页的记录数
//select * from xxx order by id desc limit begin,size
public ResultSet getPage(String sql,int begin,int size) {
con = getCon();
String s = " limit " + begin + "," + size;
sql = sql + s;
try {
stmt = con.createStatement();//创建statement对象
rs = stmt.executeQuery(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
public void closed() {
try {
if (this.ps != null) {
this.ps.close();
}
} catch (SQLException e) {
System.out.println("关闭ps对象失败!");
e.printStackTrace();
}
try {
if(this.stmt != null) {
this.stmt.close();
}
} catch (Exception e) {
System.out.println("关闭stmt对象失败!");
e.printStackTrace();
}
try {
if(this.rs != null) {
this.rs.close();
}
} catch (Exception e) {
System.out.println("关闭rs对象失败!");
e.printStackTrace();
}
try {
if (this.con != null) {
this.con.close();
}
} catch (SQLException e) {
System.out.println("关闭con对象失败!");
e.printStackTrace();
}
}
}
AddXueSheng
package com.xuanke.servlet;
/**
* 添加学生,这里也可以考虑用poi导入
*/
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.PreparedStatement;
import java.sql.SQLException;
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 com.xuanke.util.DB;
/**
* Servlet implementation class AddXueSheng
*/
@WebServlet("/AddXueSheng")
public class AddXueSheng extends HttpServlet {
private static final long serialVersionUID = 1L;
public AddXueSheng() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//添加学生
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
// 获取页面传过来的值
String xuehao = request.getParameter("xuehao");
String xingming = request.getParameter("xingming");
String xingbie = request.getParameter("xingbie");
String nianling = request.getParameter("nianling");
String banji = request.getParameter("banji");
String loginname = request.getParameter("loginname");
String loginpw = request.getParameter("loginpw");
String oldName = request.getParameter("oldName");
int oldId = Integer.parseInt(request.getParameter("oldId"));
// 创建数据库操作对象
DB db = new DB();
PreparedStatement ps;// 创建ps对象
String sql = "insert into xuesheng(xuehao,xingming,xingbie,nianling,banji,loginname,loginpw) values(?,?,?,?,?,?,?)";
// 调用db中的方法
ps = db.getPs(sql);
// 添加数据
try {
ps.setString(1, xuehao);
ps.setString(2, xingming);
ps.setString(3, xingbie);
ps.setString(4, nianling);
ps.setString(5, banji);
ps.setString(6, loginname);
ps.setString(7, loginpw);
ps.executeUpdate();// 执行sql语句
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
db.closed();// 关闭数据流
PrintWriter out = response.getWriter();
response.sendRedirect("admin/xueshengMes.jsp?oldName=" + oldName + "&oldId=" + oldId);
doGet(request, response);
}
}
DeleKeBiao
package com.xuanke.servlet;
/**
* 删除课表信息
*/
import java.io.IOException;
import java.io.PrintWriter;
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 com.xuanke.util.DB;
/**
* Servlet implementation class DeleKeBiao
*/
@WebServlet("/DeleKeBiao")
public class DeleKeBiao extends HttpServlet {
private static final long serialVersionUID = 1L;
public DeleKeBiao() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");//解决乱码
response.getWriter().append("Served at: ").append(request.getContextPath());
int id = Integer.parseInt(request.getParameter("id")); //获传过来的值
String oldName = request.getParameter("oldName");
int oldId = Integer.parseInt(request.getParameter("oldId"));
//创建DB对象
DB db = new DB();
String sql = "delete from kebiao where id=" + id;//创建sql语句
//调用删除操作
db.del(sql);
//关闭数据流
db.closed();
PrintWriter out = response.getWriter();
response.sendRedirect("admin/kebiaoMes.jsp?oldName=" + oldName + "&oldId=" + oldId);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
DeleKeCheng
package com.xuanke.servlet;
/**
* 删除课程
*/
import java.io.IOException;
import java.io.PrintWriter;
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 com.xuanke.util.DB;
/**
* Servlet implementation class DeleKeCheng
*/
@WebServlet("/DeleKeCheng")
public class DeleKeCheng extends HttpServlet {
private static final long serialVersionUID = 1L;
public DeleKeCheng() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");//解决乱码
int id = Integer.parseInt(request.getParameter("id")); //获传过来的值
String oldName = request.getParameter("oldName");
int oldId = Integer.parseInt(request.getParameter("oldId"));
//创建DB对象
DB db = new DB();
String sql = "delete from kecheng where id=" + id;//创建sql语句
//调用删除操作
db.del(sql);
//关闭数据流
db.closed();
PrintWriter out = response.getWriter();
response.sendRedirect("admin/kechengMes.jsp?oldName=" + oldName + "&oldId=" + oldId);
response.getWriter().append("Served at: ").append(request.getContextPath());
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
DeleLaoShi
package com.xuanke.servlet;
/**
* 删除老师数据
*/
import java.io.IOException;
import java.io.PrintWriter;
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 com.xuanke.util.DB;
/**
* Servlet implementation class DeleLaoShi
*/
@WebServlet("/DeleLaoShi")
public class DeleLaoShi extends HttpServlet {
private static final long serialVersionUID = 1L;
public DeleLaoShi() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");//解决乱码
response.getWriter().append("Served at: ").append(request.getContextPath());
int id = Integer.parseInt(request.getParameter("id")); //获传过来的值
String oldName = request.getParameter("oldName");
int oldId = Integer.parseInt(request.getParameter("oldId"));
//创建DB对象
DB db = new DB();
String sql = "delete from laoshi where id=" + id;//创建sql语句
//调用删除操作
db.del(sql);
//关闭数据流
db.closed();
PrintWriter out = response.getWriter();
response.sendRedirect("admin/laoshiMes.jsp?oldName=" + oldName + "&oldId=" + oldId);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
如果也想学习本系统,下面领取。关注并回复:003jsp