Servlet

本文介绍了一个课程管理系统的实现细节,包括课程信息的增删改查功能,以及学生选课后的课程人数变动更新等核心功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.wzy.dao;


import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;


import com.wzy.model.Course;
import com.wzy.model.User;
import com.wzy.util.DataBaseConnection;


public class CourseManagerImpl implements CourseManager {


public void insert(Course course) throws Exception {
String sql = "INSERT INTO course(id,name,username,grade,classroom,choosednumber,unchoosednumber,allnumber,description) VALUES(?,?,?,?,?,?,?,?,?)";
PreparedStatement pstmt = null;
DataBaseConnection dbc = null;
try{
//连接数据库
dbc = new DataBaseConnection();
pstmt = dbc.getConnection().prepareStatement(sql);
pstmt.setInt(1,course.getId());
pstmt.setString(2,course.getName());
pstmt.setString(3,course.getUsername());
pstmt.setInt(4,course.getGrade());
pstmt.setString(5, course.getClassroom());
pstmt.setInt(6, 0);
pstmt.setInt(7, course.getAllnumber());
pstmt.setInt(8, course.getAllnumber());
pstmt.setString(9,course.getDescription());
//进行更新操作
pstmt.executeUpdate();
pstmt.close();
}catch(Exception e){
throw new Exception("添加异常");
}finally{
dbc.close();
}
}


//通过老师的username查询课程,进而得到老师对应的课程的信息
public List queryTeacherCourseByUserName(String username) throws Exception {

List<Course> teacherCourse = new ArrayList<Course>();
String sql = "SELECT * FROM course WHERE username=?";
PreparedStatement pstmt = null;
DataBaseConnection dbc = null;
try{
dbc = new DataBaseConnection();
pstmt = dbc.getConnection().prepareStatement(sql);
pstmt.setString(1, username);
ResultSet rs = pstmt.executeQuery();
while(rs.next())
{
Course course = new Course();
course.setId(rs.getInt(1));
course.setName(rs.getString(2));
course.setUsername(rs.getString(3));
course.setGrade(rs.getInt(4));
course.setDescription(rs.getString(5));
teacherCourse.add(course);
}
rs.close();
pstmt.close();
return teacherCourse;
}catch(Exception e){
throw new Exception("查找异常"); 
}finally{
dbc.close();
}
}
public void delete(int id) throws Exception
{
String sql = "DELETE FROM course WHERE id=?";
PreparedStatement pstmt = null;
DataBaseConnection dbc = null;
try{
//连接数据库
dbc = new DataBaseConnection();
pstmt = dbc.getConnection().prepareStatement(sql);
pstmt.setInt(1, id);
pstmt.executeUpdate();
pstmt.close();
}catch(Exception e){
throw new Exception("删除课程异常");
}finally{
dbc.close();
}
}

//查询所有课程信息
public List queryAll() throws Exception
{
List<Course> courseAll = new ArrayList<Course>();
String sql = "SELECT * FROM course";
PreparedStatement pstmt = null;
DataBaseConnection dbc = null;
UserManager userManager = null;
try{


dbc = new DataBaseConnection();
pstmt = dbc.getConnection().prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();


while(rs.next()){

Course course = new Course();

course.setId(rs.getInt(1));
course.setName(rs.getString(2));
course.setUsername(rs.getString(3));
course.setGrade(rs.getInt(4));
course.setClassroom(rs.getString(5));
course.setChoosednumber(rs.getInt(6));
course.setUnchoosednumber(rs.getInt(7));
course.setAllnumber(rs.getInt(8));
course.setDescription(rs.getString(9));
courseAll.add(course);
}
 }catch(Exception e){
throw new Exception("数据库查询操作异常");
}finally{
dbc.close();
}
return courseAll;

}


public Course queryCourseById(int id) throws Exception {
Course course = null;
String sql = "SELECT * FROM course WHERE id=?";
PreparedStatement pstmt = null;
DataBaseConnection dbc = null;

try{

dbc = new DataBaseConnection();
pstmt = dbc.getConnection().prepareStatement(sql);
pstmt.setInt(1, id);
ResultSet rs = pstmt.executeQuery();

course = new Course();
while(rs.next()){
course.setId(rs.getInt(1));
course.setName(rs.getString(2));
course.setUsername(rs.getString(3));
course.setGrade(rs.getInt(4));
course.setClassroom(rs.getString(5));
course.setChoosednumber(rs.getInt(6));
course.setUnchoosednumber(rs.getInt(7));
course.setAllnumber(rs.getInt(8));
course.setDescription(rs.getString(9));
}

rs.close();
pstmt.close();
return course;
}catch(Exception e){
throw new Exception("数据库验证操作异常"); 
}finally{
dbc.close();
}
}


public Course queryCourseByNotId(int id) throws Exception {
Course course = null;
String sql = "SELECT * FROM course WHERE id <> ?";
PreparedStatement pstmt = null;
DataBaseConnection dbc = null;

try{

dbc = new DataBaseConnection();
pstmt = dbc.getConnection().prepareStatement(sql);
pstmt.setInt(1, id);
ResultSet rs = pstmt.executeQuery();


while(rs.next()){
course = new Course();
course.setId(rs.getInt(1));
course.setName(rs.getString(2));
course.setUsername(rs.getString(3));
course.setGrade(rs.getInt(4));
course.setDescription(rs.getString(5));
}

rs.close();
pstmt.close();
return course;

}catch(Exception e){
throw new Exception("数据库验证操作异常"); 
}finally{
dbc.close();
}
}

public void changeNumber(int id) throws Exception {
Course course = null;
CourseManager courseManager = new CourseManagerImpl();
String sql = "UPDATE course SET choosednumber=?,unchoosednumber=? WHERE id="+id;
PreparedStatement pstmt = null;
DataBaseConnection dbc = null;

try{
dbc = new DataBaseConnection();
pstmt = dbc.getConnection().prepareStatement(sql);
course = courseManager.queryCourseById(id);
int i = course.getChoosednumber();
pstmt.setInt(1,++i);
int j = course.getUnchoosednumber();
pstmt.setInt(2,--j);
pstmt.executeUpdate();
pstmt.close();
}catch(Exception e){
throw new Exception("数据库删除操作操作异常");
}finally{
dbc.close();
}
}
public void changeNumber2(int id) throws Exception {
Course course = null;
CourseManager courseManager = new CourseManagerImpl();
String sql = "UPDATE course SET choosednumber=?,unchoosednumber=? WHERE id="+id;
PreparedStatement pstmt = null;
DataBaseConnection dbc = null;

try{
dbc = new DataBaseConnection();
pstmt = dbc.getConnection().prepareStatement(sql);

course = courseManager.queryCourseById(id);
int i = course.getChoosednumber();
pstmt.setInt(1,--i);
int j = course.getAllnumber()-i;
pstmt.setInt(2,j);

pstmt.executeUpdate();
pstmt.close();
}catch(Exception e){
throw new Exception("数据库删除操作操作异常");
}finally{
dbc.close();
}
}

}


package com.wzy.model;


public class Course {
private int id;
private String name;
private String username;
private int grade;
private String classroom;
private int choosednumber;
private int unchoosednumber;
private int allnumber;
private String description;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getClassroom() {
return classroom;
}
public void setClassroom(String classroom) {
this.classroom = classroom;
}
public int getChoosednumber() {
return choosednumber;
}
public void setChoosednumber(int choosednumber) {
this.choosednumber = choosednumber;
}
public int getUnchoosednumber() {
return unchoosednumber;
}
public void setUnchoosednumber(int unchoosednumber) {
this.unchoosednumber = unchoosednumber;
}
public int getAllnumber() {
return allnumber;
}
public void setAllnumber(int allnumber) {
this.allnumber = allnumber;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}



package com.wzy.util;
import java.sql.*;


public class DataBaseConnection {
private final String DBDRIVER = "com.mysql.jdbc.Driver";
private final String DBURL = "jdbc:mysql://localhost:3306/neucourse";
private final String DBUSER = "root";
private final String DBPASSWORD = "13847448";
private Connection conn = null;

//构造方法,加载驱动
public DataBaseConnection(){
try{
Class.forName(DBDRIVER);
this.conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);
}catch(Exception e){
System.out.println("加载驱动失败");
}
}
//取得数据库连接
public Connection getConnection(){
return conn;
}
//关闭数据库连接
public void close(){
try{
conn.close();
}catch(Exception e){
System.out.println("数据库关闭失败");
}
}
}


package com.wzy.servlet;


import java.io.IOException;


import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;


import com.wzy.dao.UserManager;
import com.wzy.dao.UserManagerImpl;
import com.wzy.model.User;


public class Login extends HttpServlet{



protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

String username = request.getParameter("username");
String password = request.getParameter("password");
UserManager userManager = new UserManagerImpl();
HttpSession session = request.getSession();


if(username.equals(null) || "".equals(username.trim())|| password.equals(null) || "".equals(password.trim())){
request.getRequestDispatcher("Login_error.jsp").forward(request, response);
}else{
try {
User user = userManager.queryByUserName(username);
int type = user.getType();
if(username.equals(user.getUsername()) && password.equals(user.getPassword())){
session.setAttribute("user", user);
System.out.println("Login Success!");
if(type == 0)
request.getRequestDispatcher("index_admin.jsp").forward(request, response);
else if(type == 1){
request.getRequestDispatcher("index_teacher.jsp").forward(request, response);
}
else{
request.getRequestDispatcher("index_student.jsp").forward(request, response);
}
}
else{
request.getRequestDispatcher("login_error.jsp").forward(request, response);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
}


<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <welcome-file-list>
    <welcome-file>login.jsp</welcome-file>
  </welcome-file-list>
   <filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>com.wzy.util.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
<init-param>
<param-name>ignore</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
  <servlet>
  <servlet-name>Login</servlet-name>
  <servlet-class>com.wzy.servlet.Login</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>Login</servlet-name>
  <url-pattern>/Login</url-pattern>
  </servlet-mapping>
  
   <servlet>
  <servlet-name>CheckCourseStudent</servlet-name>
  <servlet-class>com.wzy.servlet.CheckCourseStudent</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>CheckCourseStudent</servlet-name>
  <url-pattern>/CheckCourseStudent</url-pattern>
  </servlet-mapping>
  
  <servlet>
  <servlet-name>Register</servlet-name>
  <servlet-class>com.wzy.servlet.Register</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>Register</servlet-name>
  <url-pattern>/user/Register</url-pattern>
  </servlet-mapping>
  
  <servlet>
  <servlet-name>CourseServlet</servlet-name>
  <servlet-class>com.wzy.servlet.CourseServlet</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>CourseServlet</servlet-name>
  <url-pattern>/CourseServlet</url-pattern>
  </servlet-mapping>


<servlet>
  <servlet-name>CheckCourse</servlet-name>
  <servlet-class>com.wzy.servlet.CheckCourse</servlet-class>
  </servlet>
  <servlet-mapping>
 <servlet-name>CheckCourse</servlet-name>
 <url-pattern>/CheckCourse</url-pattern>
  </servlet-mapping>
  
  <servlet>
  <servlet-name>DeleteCourse</servlet-name>
  <servlet-class>com.wzy.servlet.DeleteCourse</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>DeleteCourse</servlet-name>
  <url-pattern>/DeleteCourse</url-pattern>
  </servlet-mapping>


  <servlet>
  <servlet-name>CheckUser</servlet-name>
  <servlet-class>com.wzy.servlet.CheckUser</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>CheckUser</servlet-name>
  <url-pattern>/CheckUser</url-pattern>
  </servlet-mapping>
  <servlet>
  <servlet-name>DeleteUser</servlet-name>
  <servlet-class>com.wzy.servlet.DeleteUser</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>DeleteUser</servlet-name>
  <url-pattern>/DeleteUser</url-pattern>
  </servlet-mapping>
  <servlet>
  <servlet-name>EditUser</servlet-name>
  <servlet-class>com.wzy.servlet.EditUser</servlet-class>
  </servlet>
  <servlet-mapping>
  <servlet-name>EditUser</servlet-name>
  <url-pattern>/EditUser</url-pattern>
  </servlet-mapping>
  <servlet>
  <servlet-name>CheckTeacherCourse</servlet-name>
  <servlet-class>com.wzy.servlet.CheckTeacherCourse</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>CheckUnChoosedCourse</servlet-name>
    <servlet-class>com.wzy.servlet.CheckUnChoosedCourse</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>ChooseCourse</servlet-name>
    <servlet-class>com.wzy.servlet.ChooseCourse</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>CheckChoosedCourse</servlet-name>
    <servlet-class>com.wzy.servlet.CheckChoosedCourse</servlet-class>
  </servlet>
  <servlet>
    <servlet-name>DeleteChoosedCourse</servlet-name>
    <servlet-class>com.wzy.servlet.DeleteChoosedCourse</servlet-class>
  </servlet>


  <servlet-mapping>
  <servlet-name>CheckTeacherCourse</servlet-name>
  <url-pattern>/CheckTeacherCourse</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>CheckUnChoosedCourse</servlet-name>
    <url-pattern>/CheckUnChoosedCourse</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>ChooseCourse</servlet-name>
    <url-pattern>/ChooseCourse</url-pattern>
  </servlet-mapping>
   <servlet-mapping>
    <servlet-name>CheckChoosedCourse</servlet-name>
    <url-pattern>/CheckChoosedCourse</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>DeleteChoosedCourse</servlet-name>
    <url-pattern>/DeleteChoosedCourse</url-pattern>
  </servlet-mapping>
</web-app>


<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>欢迎登录Neu选课系统</title>
<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
-->
</style>
<link href="css/css.css" rel="stylesheet" type="text/css" />
</head>


<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td height="147" background="images/top02.gif"><img src="images/top03.gif" width="776" height="147" /></td>
  </tr>
</table>
<table width="562" border="0" align="center" cellpadding="0" cellspacing="0" class="right-table03">
  <tr>
    <td width="221"><table width="95%" border="0" cellpadding="0" cellspacing="0" class="login-text01">
      
      <tr>
        <td><table width="100%" border="0" cellpadding="0" cellspacing="0" class="login-text01">
          <tr>
            <td align="center"><img src="images/ico13.gif" width="107" height="97" /></td>
          </tr>
          <tr>
            <td height="40" align="center">&nbsp;</td>
          </tr>
          
        </table></td>
        <td><img src="images/line01.gif" width="5" height="292" /></td>
      </tr>
    </table></td>
    <td>
    <form action="Login" method="post">
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="31%" height="35" class="login-text02">用户名称:<br /></td>
        <td width="69%"><input name="username" type="text" size="30" /></td>
      </tr>
      <tr>
        <td height="35" class="login-text02">密 码:<br /></td>
        <td><input name="password" type="password" size="33" /></td>
      </tr>
      <tr>
        <td height="35">&nbsp;</td>
        <td><input name="Ok" type="submit" class="right-button01" value="确认登陆"/><!-- onClick="window.location='index.jsp'" />-->
          <input name="Reset" type="reset" class="right-button02" value="重 置" />
          <a href="./user/register_students.jsp" class="login-text02">注册</a>
          </td>
      </tr>
    </table>
    </form>
    </td>
  </tr>
</table>


</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值