当前位置: 首页 > news >正文

简单的课程管理系统

  本题本质是数据库与javaweb结合,辅以javabean和servlet。

  (1)增加新课程

  .java

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>添加首页</title>
</head>
<body>
<form id="form1" action="/stumessage/AServlet" method="post" onsubmit="return form1()">
    <div>    
        课程名称:<input type="text" id="lesson" name="lesson"/>
    </div>
    <div>
        任课教师:<input type="text" id="teacher" name="teacher"/>
    </div>
    <div>
        上课地点:<input type="text" id="classroom" name="classroom"/>
    </div>
    <div>
        <button type="submit" id="sub" value="提交">提交</button>
    </div>
    
</form>
<script type="text/javascript">
function form1(){
        var lesson=document.getElementById("lesson");
        var teacher=document.getElementById("teacher");
        var classroom=document.getElementById("classroom");
        if(lesson.value == ""){
            alert("课程名称不能为空!");
            return false;
        }
        if(teacher.value == ""){
            alert("任课老师不能为空!");
            return false;
        }
        if(classroom.value == ""){
            alert("上课地点不能为空!");
            return false;
        }
        if(teacher.value != "王建民" && teacher.value != "王辉" && teacher.value != "刘丹" && teacher.value != "刘立嘉" && teacher.value != "杨子光"){
            alert("任课老师只能在王建民,王辉,刘丹,刘立嘉,杨子光中选择!!");
            return false;
        }
        if(!/^基教/.test(classroom.value) && !/^一教/.test(classroom.value) && !/^二教/.test(classroom.value) && !/^三教/.test(classroom.value)){
            alert("上课地点格式错误!!只能从基教,一教,二教,三教中选择!!例:基教201");
            return false;
        }
        else{
            alert("添加成功!");
            return true;
        }
    }
    
</script>
</body>
</html>

 

package stuMessage;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class Aservlet
 */
@WebServlet("/Aservlet")
public class Aservlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Aservlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        System.out.println("doGet...");
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);
        request.setCharacterEncoding("utf-8"); //1
        response.setContentType("text/html;charset=utf-8"); //2
        response.setCharacterEncoding("utf-8"); //3
        String lesson=request.getParameter("lesson");
        String teacher=request.getParameter("teacher");
        String classroom=request.getParameter("classroom");
        /*
         * 开始连接数据库
         */
           //驱动程序名
        String driver = "com.mysql.jdbc.Driver";
        //URL指向要访问的数据库名mydata
        String url = "jdbc:mysql://localhost:3306/demo01?serverTimezone=GMT%2B8";
        //MySQL配置时的用户名
        String user = "root";
        //MySQL配置时的密码
        String password = "wtdWTD727398q";
        //遍历查询结果集
        try {
            //加载驱动程序
            Class.forName(driver);
            //1.getConnection()方法,连接MySQL数据库!!
            Connection con = DriverManager.getConnection(url,user,password);
            if(!con.isClosed())
                System.out.println("Succeeded connecting to the Database!"); 
            PreparedStatement psql;
            //预处理添加数据,其中有两个参数--“?”
            psql = con.prepareStatement("insert into stumessage (lesson,teacher,classroom) " + "values(?,?,?)");
            psql.setString(1, lesson);              //设置参数1,创建id为3212的数据
            psql.setString(2, teacher);      //设置参数2,name 为王刚
            psql.setString(3, classroom);
            psql.executeUpdate();    
            con.close();
            psql.close();
         }catch(SQLException e) {
             //数据库连接失败异常处理
             e.printStackTrace();  
             } catch (Exception e) {
                 // TODO: handle exception
                 e.printStackTrace();
             }finally{
                 System.out.println("数据库数据成功添加!!");
                 request.getRequestDispatcher("/NewFile.jsp").forward(request,response);
     }
    }

}

 

 

 

运行结果:

 

(2)删除数据

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>删除首页</title>
</head>
<body>
<form action="/stumessage/BServlet" method="post">
    课程名称:<input type="text" id="lesson" name="lesson"/>
    <button type="submit" id="sub" value="提交">提交</button>
</form>
</body>
</html>
package stuMessage;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class Bservlet
 */
@WebServlet("/Bservlet")
public class Bservlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public Bservlet() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
         PrintWriter out = response.getWriter();
        request.setCharacterEncoding("utf-8"); //1
        response.setContentType("text/html;charset=utf-8"); //2
        response.setCharacterEncoding("utf-8"); //3
        String lesson = request.getParameter("lesson");
        Scanner sc = new Scanner(System.in);
        //驱动程序名
        String driver = "com.mysql.jdbc.Driver";
        //URL指向要访问的数据库名mydata
        String url = "jdbc:mysql://localhost:3306/demo01?serverTimezone=GMT%2B8";
        //MySQL配置时的用户名
        String user = "root";
        //MySQL配置时的密码
        String password = "wtdWTD727398q";
        //遍历查询结果集
        try {
            //加载驱动程序
            Class.forName(driver);
            Connection con = DriverManager.getConnection(url, user, password);
            if(!con.isClosed())
                System.out.println("Succeeded connecting to the Database!");
            //2.创建statement类对象,用来执行SQL语句!!
            Statement statement = con.createStatement();
            //要执行的SQL语句
            String sql = "select * from stumessage";
            //3.ResultSet类,用来存放获取的结果集!!
            ResultSet rs = statement.executeQuery(sql);
            PreparedStatement psql;
            psql = con.prepareStatement("delete from stumessage where lesson = ?");
            while(rs.next()) {
                if(lesson.equals(rs.getString("lesson"))) {
                    psql.setString(1, lesson);
                    out.print("<html><head><body>");
                    out.print(rs.getString("lesson")+"&nbsp;&nbsp;&nbsp;"+rs.getString("teacher")+"&nbsp;&nbsp;&nbsp;"+rs.getString("classroom"));
                    out.print("<button type='button' id='sub' value='提交' onclick='sub1()'>删除</button>");
                    out.print("<script type='text/javascript'>");
                    out.print("function sub1(){");
                    out.print("alert('删除成功!!')");
                    out.print("}");
                    out.print("</script>");
                    out.print("</body></head></html>");
                    psql.executeUpdate();
                    request.getRequestDispatcher("/NewFile.jsp").forward(request,response);
                    break;
                }else if(rs.isLast()) {
                    request.getRequestDispatcher("/fail.jsp").forward(request,response);
                }
            }
            rs.close();
            con.close();
            psql.close();
        }catch(SQLException e) {
             //数据库连接失败异常处理
             e.printStackTrace();  
             } catch (Exception e) {
                 // TODO: handle exception
                 e.printStackTrace();
             }
    }

 

转载于:https://www.cnblogs.com/YXSZ/p/10092338.html

相关文章:

  • 钉钉:自定义机器人
  • CF161D Distance in Tree
  • python1210作业
  • 7 练习1 -作业讲解
  • 并发编程
  • Vscode的使用
  • VS2015调用Matlab2017a环境配置(转载)
  • 遍历器 for...of 循环
  • iOS开发实战之搜索控制器UISearchController使用
  • 饭卡
  • mysql索引原理与查询优化
  • protobuf中文教程(第一篇)
  • ASP.Net Core The type initializer for 'Gdip' threw an exception
  • js变量前的+是什么意思
  • ActiveMQ消息的消费原理
  • 收藏网友的 源程序下载网
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • Bootstrap JS插件Alert源码分析
  •  D - 粉碎叛乱F - 其他起义
  • Docker入门(二) - Dockerfile
  • Mac转Windows的拯救指南
  • nfs客户端进程变D,延伸linux的lock
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 翻译--Thinking in React
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 基于webpack 的 vue 多页架构
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 排序算法学习笔记
  • 前端技术周刊 2019-01-14:客户端存储
  • 入门级的git使用指北
  • 手写一个CommonJS打包工具(一)
  • 网络应用优化——时延与带宽
  • 微服务框架lagom
  • 我感觉这是史上最牛的防sql注入方法类
  • 追踪解析 FutureTask 源码
  • AI算硅基生命吗,为什么?
  • puppet连载22:define用法
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 继 XDL 之后,阿里妈妈开源大规模分布式图表征学习框架 Euler ...
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • %check_box% in rails :coditions={:has_many , :through}
  • (14)Hive调优——合并小文件
  • (2)STL算法之元素计数
  • (3)STL算法之搜索
  • (9)STL算法之逆转旋转
  • (poj1.3.2)1791(构造法模拟)
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (第一天)包装对象、作用域、创建对象
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (三分钟)速览传统边缘检测算子
  • (十一)手动添加用户和文件的特殊权限
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解