1. 程式人生 > >Java之從頭開始編寫簡單課程信息管理系統

Java之從頭開始編寫簡單課程信息管理系統

query != enter align document edi 輸入 source deploy

編寫簡單的課程管理系統對於新手並不友好,想要出色的完成並不容易以下是我的一些經驗和方法

詳情可參考以下鏈接:

https://www.cnblogs.com/dream0-0/p/10090828.html

一、相關的軟件下載和環境配置

1、下載並配置JDK。

2、下載eclipse。

3、下載並配置apache-tomcat(服務器)。

4、下載MySQL(數據庫)。

5、下載Navicat for MySQL(數據庫可視化工具),方便對數據庫的操作。

6、下載jdbc用來實現eclipse中的項目與數據庫實現連接。

二、代碼

在 WebContent 文件夾下,新建如下圖中的JSP文件,Login.jsp和signinerror.jsp是用來登陸的,這裏不必建立。

技術分享圖片

(1)head.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">

.headdiv{
    background-color:#3F51B5;
    width:100%; 
    height:130px;
}

.headdiv P{
    font-family:YouYuan;
    font-size:20px;
    color:#E8EAF6;
    position:relative;
    left:20px;
    top:45px;
}

</style>
</head>
<body>

<div class="headdiv">
    <p>ec-web課程信息綜合管理平臺</p>
</div>

</body>
</html>

(2)left.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">

.leftMenu{
    background-color:#7986CB;
    width:250px; 
    height:600px;
    position:relative;
    top:0px;
}

.menuParent{
    background-color:#BBDEFB;
}



</style>
</head>
<body>

<div class="leftMenu">
    <div class="menu">
    
    
        <div class="menuParent">
            <div class="ListTitlePanel">
                <div class="ListTitle">
                    <strong>課程信息管理</strong>                    
                    <div class="leftbgbt"></div>
                </div>
            </div>
            
            <div class="menuList">
                <div><a target="mainAction" href="USEJSP/add.jsp">課程信息錄入</a></div>
                <div><a target="mainAction" href="USEJSP/update.jsp">課程信息修改</a></div>
                <div><a target="mainAction" href="USEJSP/delete.jsp">刪除課程信息</a></div>
                <div><a target="mainAction" href="USEJSP/search.jsp">查詢課程信息</a></div>                
            </div>
        </div>
        
        
    </div>
</div>

<script type="text/javascript">



</script>

</body>
</html>

(3)index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
這是小主頁
</body>
</html>

(4)main.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>課程信息管理系統</title>

<style type="text/css">

.headframe{
    width:100%;
    height:130px;
    border:0;
}

.leftframe{
    float:left;
    width:250px;
    height:600px;
    border:0;    
}

.mainframe{
    float:right;
    width:1200px;
    height:600px;
    border:0;
}

</style>

</head>


<iframe src="head.jsp" class="headframe" scrolling="no"></iframe>
<iframe src="left.jsp" class="leftframe" scrolling="no"></iframe>
<iframe src="index.jsp" name="mainAction" class="mainframe"></iframe>


</html>

  

在WebContent文件夾下建立名為USEJSP的文件夾,在USEJSP文件夾下,建立如下圖的JSP文件

技術分享圖片

(1)add.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>

<style type="text/css">

.butn{
    display:inline-block;
    padding: 8px 35px;
    background-color:#32CD32;
     color:white;
     border:none;
     text-align:center;
    text-decoration:none;
    border-radius:5px;    
    position:absolute;
     left:40px;
     top:95px;
}

</style>

</head>
<body>

<div class="container">
    <section>
        <form action="${pageContext.request.contextPath}/AddServlet/AddCurrServlet?method=add" method="post" onsubmit="return check()">
        <!---${pageContext.request.contextPath}的目的是找到主工程的名字,/Servlet/Userservlet就是web.xml下面配置的路徑,也就是servlet的路徑--->
            <span class="cname">課程名稱</span>
            <input type="text" name="cname" class="icname" placeholder="  class-name" id="icname">
            <br/>
            
            <span class="teacher">任課教師</span>
            <input type="text" name="teacher" class="iteacher" placeholder="  teacher" id="iteacher">
            <br/>
            
            <span class="place">上課地點</span>
            <input type="text" name="place" class="iplace" placeholder="  place" id="iplace">
            <br/>
            
            <input type="submit" value="保 存" class="butn">
            <br/>
        </form>
    </section>
</div>

<script type="text/javascript">
    function check() {
        
        var cname = document.getElementById("icname");
        var teacher = document.getElementById("iteacher");
        var place = document.getElementById("iplace");
        
        var placestr = place.value.substring(0,2);
        
        
        //非空
        if(cname.value == ‘‘) {
            alert(‘課程名稱為空‘);
            cname.focus();
            return false;
        }
        if(teacher.value == ‘‘) {
            alert(‘教師為空‘);
            teacher.focus();
            return false;
        }
        if(place.value == ‘‘) {
            alert(‘上課地點為空‘);
            place.focus();
            return false;
        }
        
        //教師
        if(teacher.value != ‘王建民‘ && teacher.value != ‘王輝‘ && teacher.value != ‘劉丹‘ && teacher.value != ‘劉立嘉‘ && teacher.value != ‘楊子光‘){
            alert(‘教師名稱錯誤‘);
            return false;
        }
        
        //教室
        if(!/^基教/.test(placestr) && !/^一教/.test(placestr) && !/^二教/.test(placestr) && !/^三教/.test(placestr)) {
            alert(‘上課地點錯誤‘);
            return false;
        }
        return true;
    }
    
</script>
    
</body>
</html>

(2)addnameerror.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>

<style type="text/css">

.butn{
    display:inline-block;
    padding: 8px 35px;
    background-color:#32CD32;
     color:white;
     border:none;
     text-align:center;
    text-decoration:none;
    border-radius:5px;    
    position:absolute;
     left:40px;
     top:95px;
}

</style>

</head>
<body onload="alt()">

<div class="container">
    <section>
        <form action="${pageContext.request.contextPath}/AddServlet/AddCurrServlet?method=add" method="post" onsubmit="return check()">
        <!---${pageContext.request.contextPath}的目的是找到主工程的名字,/Servlet/Userservlet就是web.xml下面配置的路徑,也就是servlet的路徑--->
            <span class="cname">課程名稱</span>
            <input type="text" name="cname" class="icname" placeholder="  class-name" id="icname">
            <br/>
            
            <span class="teacher">任課教師</span>
            <input type="text" name="teacher" class="iteacher" placeholder="  teacher" id="iteacher">
            <br/>
            
            <span class="place">上課地點</span>
            <input type="text" name="place" class="iplace" placeholder="  place" id="iplace">
            <br/>
            
            <input type="submit" value="保 存" class="butn">
            <br/>
        </form>
    </section>
</div>

<script type="text/javascript">
    function check() {
        
        var cname = document.getElementById("icname");
        var teacher = document.getElementById("iteacher");
        var place = document.getElementById("iplace");
        
        var placestr = place.value.substring(0,2);
        
        
        //非空
        if(cname.value == ‘‘) {
            alert(‘課程名稱為空‘);
            cname.focus();
            return false;
        }
        if(teacher.value == ‘‘) {
            alert(‘教師為空‘);
            teacher.focus();
            return false;
        }
        if(place.value == ‘‘) {
            alert(‘上課地點為空‘);
            place.focus();
            return false;
        }
        
        //教師
        if(teacher.value != ‘王建民‘ && teacher.value != ‘王輝‘ && teacher.value != ‘劉丹‘ && teacher.value != ‘劉立嘉‘ && teacher.value != ‘楊子光‘){
            alert(‘教師名稱錯誤‘);
            return false;
        }
        
        //教室
        if(!/^基教/.test(placestr) && !/^一教/.test(placestr) && !/^二教/.test(placestr) && !/^三教/.test(placestr)) {
            alert(‘上課地點錯誤‘);
            return false;
        }
        return true;
    }
    
    function alt() {
        alert(‘課程名稱重復‘);
    }
</script>
    
</body>
</html>

(3)delete.jsp

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

<%@page import="java.sql.*"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="javax.servlet.http.HttpServletRequest"%>
<html>
<head>
<meta charset="UTF-8">
<title></title>

<style type="text/css">

.butn{
    display:inline-block;
    padding: 8px 35px;
    background-color:#32CD32;
     color:white;
     border:none;
     text-align:center;
    text-decoration:none;
    border-radius:5px;    
    position:absolute;
     left:40px;
     top:95px;
}

</style>

</head>
<body>

<div>
    <section>
        <form action="${pageContext.request.contextPath}/DeleteServlet/DeleteCurrServlet?method=add" method="post" onsubmit="return check()">
            <span class="cname">課程名稱</span>
            <input type="text" name="cname" id="icname" class="icname" placeholder="  class-name">
            <br/>
    
            <input type="submit" value="刪除" class="butn">
            <br/>
        </form>
    </section>
</div>

<script type="text/javascript">
    function check() {
        
        var cname = document.getElementById("icname");
        
        //非空
        if(cname.value == ‘‘) {
            alert(‘課程名稱為空,請重新輸入‘);
            cname.focus();
            return false;
        }
        return true;
    }
    
</script>

</body>
</html>

(4)search.jsp

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

<%@page import="java.sql.*"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="javax.servlet.http.HttpServletRequest"%>
<html>
<head>
<meta charset="UTF-8">
<title></title>

<style type="text/css">

.butn{
    display:inline-block;
    padding: 8px 35px;
    background-color:#32CD32;
     color:white;
     border:none;
     text-align:center;
    text-decoration:none;
    border-radius:5px;    
    position:absolute;
     left:40px;
     top:95px;
}

</style>

</head>
<body>

<div>
    <section>
        <form action="${pageContext.request.contextPath}/SearchServlet/SearchCurrServlet?method=add" method="post">
            <span class="cname">課程名稱</span>
            <input type="text" name="cname" id="cname" class="icname" placeholder="  class-name">
            <br/>
            
            <span class="teacher">任課教師</span>
            <input type="text" name="teacher" id="teacher" class="iteacher" placeholder="  teacher">
            <br/>
        
            <span class="place">上課地點</span>
            <input type="text" name="place" id="place" class="iplace" placeholder="  place">
            <br/>
    
            <input type="submit" value="查詢" class="butn">
            <br/>
        </form>
    </section>
</div>


</body>
</html>

(5)update.jsp

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

<%@page import="java.sql.*"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.DriverManager"%>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>

<form action="${pageContext.request.contextPath}/UpdateServlet/UpdateCurrServlet?method=update" method="post" onsubmit="return check()">
    <span class="cname">需要修改的課程名稱</span>
    <input type="text" name="tempcname" class="itempcname" placeholder="  class-name" id="itempcname">
    <br/>

        <table border="1" bgcolor="#ffffff" align="" cellspacing="1" cellpadding="1">
        <caption>輸入修改信息</caption>
        <tr>
        <td align="center" width=16%>新課程名稱</td>
        <td align="center" width=16%>新任課教師</td>
        <td align="center" width=25%>新上課地點</td>
        <td align="center" width=16%>操作</td>
        </tr>
    
        <tr>
        <td width=16% align="center"><input type="text" name="cname" class="icname" placeholder="  class-name" id="icname"></td>
        <td width=16% align="center"><input type="text" name="teacher" class="iteacher" placeholder="  teacher" id="iteacher"></td>
        <td width=25% align="center"><input type="text" name="place" class="iplace" placeholder="  place" id="iplace"></td>
        <td width=16% align="center"><input type="submit" value="修 改" class="butn"></td>
        </tr>

        </table>
</form>

</body>

<script type="text/javascript">

function check() {
    
    var ctempname = document.getElementById("itempcname");
    var cname = document.getElementById("icname");
    var teacher = document.getElementById("iteacher");
    var place = document.getElementById("iplace");
    
    var placestr = place.value.substring(0,2);
    
    
    //非空
    if(ctempname.value == ‘‘){
        alert(‘需修改課程名稱為空‘);
        teacher.focus();
        return false;
    }
    if(cname.value == ‘‘) {
        alert(‘課程名稱為空‘);
        cname.focus();
        return false;
    }
    if(teacher.value == ‘‘) {
        alert(‘教師為空‘);
        teacher.focus();
        return false;
    }
    if(place.value == ‘‘) {
        alert(‘上課地點為空‘);
        place.focus();
        return false;
    }
    
    
    //教師
    if(teacher.value != ‘王建民‘ && teacher.value != ‘王輝‘ && teacher.value != ‘劉丹‘ && teacher.value != ‘劉立嘉‘ && teacher.value != ‘楊子光‘){
        alert(‘教師名稱錯誤‘);
        return false;
    }
    
    //教室
    if(!/^基教/.test(placestr) && !/^一教/.test(placestr) && !/^二教/.test(placestr) && !/^三教/.test(placestr)) {
        alert(‘上課地點錯誤‘);
        return false;
    }
    return true;
}

</script>  

</html>

  

下面,生成web.xml文件(用來配置跳轉路徑)

在你的項目上右擊,java EE Tool—》Generate Deployment Descriptor Stub

技術分享圖片

這樣,在WebContent/WEB-INF文件夾下就生成了.xml文件,如下圖

技術分享圖片

(1)Web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name>curriculum_information_management_web</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <servlet>
        <servlet-name>Userservlet</servlet-name>    <!--servlet的別名,隨便取  -->
        
        <!--servlet的包路徑,後面再加上.servlet類名 ,這裏的類名必須是包下面的servlet類名,目的是讓找到該servlet的路徑 -->
        
        <servlet-class>com.Servlet.Userservlet</servlet-class>
    </servlet>    
    <servlet-mapping>
        <servlet-name>Userservlet</servlet-name>    <!--servlet的別名,和上面保持一致就行  -->
        
        <!--jsp跳轉到servlet的路徑名,自己取,用來從jsp界面跳轉到servlet的路徑,程序會根據路徑找到servlet的位置  -->
        
        <url-pattern>/Servlet/Userservlet</url-pattern><!--  -->
    </servlet-mapping>
  
      
      <servlet>
        <servlet-name>AddCurrServlet</servlet-name>        
        <servlet-class>com.Servlet.AddCurrServlet</servlet-class>
    </servlet>    
    <servlet-mapping>
        <servlet-name>AddCurrServlet</servlet-name>
        <url-pattern>/AddServlet/AddCurrServlet</url-pattern><!--  -->
    </servlet-mapping>
    
    
    <servlet>
        <servlet-name>SearchCurrServlet</servlet-name>        
        <servlet-class>com.Servlet.SearchCurrServlet</servlet-class>
    </servlet>    
    <servlet-mapping>
        <servlet-name>SearchCurrServlet</servlet-name>
        <url-pattern>/SearchServlet/SearchCurrServlet</url-pattern><!--  -->
    </servlet-mapping>
    
    
    <servlet>
        <servlet-name>DeleteCurrServlet</servlet-name>        
        <servlet-class>com.Servlet.DeleteCurrServlet</servlet-class>
    </servlet>    
    <servlet-mapping>
        <servlet-name>DeleteCurrServlet</servlet-name>
        <url-pattern>/DeleteServlet/DeleteCurrServlet</url-pattern><!--  -->
    </servlet-mapping>
    
    
    <servlet>
        <servlet-name>UpdateCurrServlet</servlet-name>        
        <servlet-class>com.Servlet.UpdateCurrServlet</servlet-class>
    </servlet>    
    <servlet-mapping>
        <servlet-name>UpdateCurrServlet</servlet-name>
        <url-pattern>/UpdateServlet/UpdateCurrServlet</url-pattern><!--  -->
    </servlet-mapping>
    
</web-app>

  

在項目下的 Java Resources/src 建立包,如下圖

技術分享圖片

然後,在各包下建立類,如圖

技術分享圖片

(1)com.Bean

package com.Bean;

public class CurrBean {
    private String name;
    private String teacher;
    private String place;
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getTeacher() {
        return teacher;
    }
    public void setTeacher(String teacher) {
        this.teacher = teacher;
    }
    public String getPlace() {
        return place;
    }
    public void setPlace(String place) {
        this.place = place;
    }
}

(2)com.Dao(該包中的類是用來登錄操作的,在這裏只是寫出來,不用實現)

package com.Dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

import com.DBUtil.*;

public class Userdao {
    public int login(String username,String password)
    {
        Connection conn = DBUtil.getConn();//這裏就是從DBUtil類裏面得到連接
        Statement state =null;
        ResultSet rs = null;
        int flag=0;
        try
        {
            String sql = "select * from admin";//SQL語句
            state = conn.createStatement();            
            rs=state.executeQuery(sql);
            while(rs.next())
            {
                if(rs.getString("password").equals(password)&&rs.getString("username").equals(username))
                {
                    flag=1;
                }
            }
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }        
        finally
        {
            DBUtil.close(rs, state, conn);
        }
        return flag;
    }
    

}

  

(3)com.DBUtil建立CurrDBUtil.java文件(鏈接數據庫)

package com.DBUtil;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class CurrDBUtil {
    public static String db_url="jdbc:mysql://localhost:3306/curriculum?useSSL=true&serverTimezone=UTC";
    //這是連接數據庫,userdome是數據庫的名稱,userUnicode=true&characterEncoding=UTF-8是將字符集設置為utf-8,避免亂碼。
    public static String db_user="root";//數據的用戶名
    public static String db_password="lty";//數據庫的密碼
    public static Connection getConn()//獲取連接,返回Connection類型,必須設置為static這樣才能在其他類中使用
    {
        Connection conn=null;
        try
        {
            Class.forName("com.mysql.jdbc.Driver");//加載驅動
            conn=DriverManager.getConnection(db_url,db_user,db_password);//連接數據庫
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        return conn;
    }
    public static void close(Statement state,Connection conn)//關閉函數
    {
        if(state!=null)//只有狀態和連接時,先關閉狀態 
        {
            try
            {
                state.close();
            }
            catch(SQLException e)
            {
                e.printStackTrace();
            }
        }
        if(conn!=null)
        {
            try
            {
                conn.close();
            }
            catch(SQLException e)
            {
                 e.printStackTrace();
            }
        }
    }
    public static void close(ResultSet rs,Statement state,Connection conn)
    {
        if(rs!=null)//有結果集,狀態和連接時,先關閉結果集,在關閉狀態,在關閉連接
        {
            try
            {
                rs.close();
            }
            catch(SQLException e)
            {
                e.printStackTrace();
            }
        }
        if(state!=null)
            
        {
            try
            {
                state.close();
            }
            catch(SQLException e)
            {
                e.printStackTrace();
            }
        }
        if(conn!=null)
        {
            try
            {
                conn.close();
            }
            catch(SQLException e)
            {
                e.printStackTrace();
            }
        }
    }

}

  建立DBUtil.java文件(用來鏈接登錄數據庫,不必實現)

package com.DBUtil;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class DBUtil {
    public static String db_url="jdbc:mysql://localhost:3306/userdome?useSSL=true&serverTimezone=UTC";
    //這是連接數據庫,userdome是數據庫的名稱,userUnicode=true&characterEncoding=UTF-8是將字符集設置為utf-8,避免亂碼。
    public static String db_user="root";//數據的用戶名
    public static String db_password="lty100609";//數據庫的密碼
    public static Connection getConn()//獲取連接,返回Connection類型,必須設置為static這樣才能在其他類中使用
    {
        Connection conn=null;
        try
        {
            Class.forName("com.mysql.jdbc.Driver");//加載驅動
            conn=DriverManager.getConnection(db_url,db_user,db_password);//連接數據庫
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        return conn;
    }
    public static void close(Statement state,Connection conn)//關閉函數
    {
        if(state!=null)//只有狀態和連接時,先關閉狀態 
        {
            try
            {
                state.close();
            }
            catch(SQLException e)
            {
                e.printStackTrace();
            }
        }
        if(conn!=null)
        {
            try
            {
                conn.close();
            }
            catch(SQLException e)
            {
                 e.printStackTrace();
            }
        }
    }
    public static void close(ResultSet rs,Statement state,Connection conn)
    {
        if(rs!=null)//有結果集,狀態和連接時,先關閉結果集,在關閉狀態,在關閉連接
        {
            try
            {
                rs.close();
            }
            catch(SQLException e)
            {
                e.printStackTrace();
            }
        }
        if(state!=null)
            
        {
            try
            {
                state.close();
            }
            catch(SQLException e)
            {
                e.printStackTrace();
            }
        }
        if(conn!=null)
        {
            try
            {
                conn.close();
            }
            catch(SQLException e)
            {
                e.printStackTrace();
            }
        }
    }

}

(4)com.Servlet

AddCurrServlet.java 實現課程的增加

package com.Servlet;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

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

import com.Bean.CurrBean;
import com.DBUtil.*;

public class AddCurrServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;
    
    protected void doPost(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{
        resp.setContentType("add.jsp");
        req.setCharacterEncoding("UTF-8");
        
        String name;
        String teacher;
        String place;
        
        name = req.getParameter("cname");
        teacher = req.getParameter("teacher");
        place = req.getParameter("place");
        
        CurrBean currbean = new CurrBean();
        
        currbean.setName(name);
        currbean.setTeacher(teacher);
        currbean.setPlace(place);
        
        AddCurrInterface addCurrInterface = new AddCurrInterface();
        @SuppressWarnings("unused")
        int temp = 0;
        
        try {
            temp = addCurrInterface.addUser(currbean);
            if(temp == 1) {
                resp.sendRedirect(req.getContextPath()+"/index.jsp");
            }else if(temp == 2) {
                resp.sendRedirect(req.getContextPath()+"/USEJSP/addnameerror.jsp");
            }
                        
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}


class AddCurrInterface extends HttpServlet{

    private static final long serialVersionUID = 1L;
    
    public int addUser(CurrBean cb) throws SQLException {    
        
        String name;
        String teacher;
        String place;
        
        name = cb.getName();
        teacher = cb.getTeacher();
        place = cb.getPlace();
        
        //連接數據庫
        Connection conn = CurrDBUtil.getConn();
        PreparedStatement pstmt = null;
        
        Statement stmt = conn.createStatement();
        String selectsql = "select * from curr_info";
        ResultSet rs = stmt.executeQuery(selectsql);
        int tt = 0;
        
        while(rs.next()) {
            if(rs.getString("name").equals(name)) {
                tt = 2;
            }
        }
        
        
        if(tt == 0) {
            String sql = "insert into curr_info (name,teacher,place) values (?,?,?)";//數據庫指令
            pstmt = conn.prepareStatement(sql);//發送sql語句
            //下面是插入到具體的地方
            pstmt.setString(1, name);
            pstmt.setString(2, teacher);
            pstmt.setString(3, place);
            pstmt.executeUpdate();
            
            System.out.println("添加成功!");            
            
            return 1;
        }else if(tt == 2) {            
            return 2;
        }
        
        return 0;
        
    }
    
    
}

  DeleteCurrServlet.java 實現課程的刪除

package com.Servlet;

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

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

import com.DBUtil.CurrDBUtil;

public class DeleteCurrServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{
        resp.setContentType("delete.jsp");
        req.setCharacterEncoding("UTF-8");
        
        String name;
        @SuppressWarnings("unused")
        int ii = 0;
        
        name = req.getParameter("cname");
        
        //連接數據庫
          Connection conn = CurrDBUtil.getConn();
        try {
            Statement stmt = conn.createStatement();
            
            String selectsql = "select * from curr_info";
              ResultSet rs = stmt.executeQuery(selectsql);
              
              while(rs.next()) {
                  if(rs.getString("name").equals(name)) {
                      ii = rs.getInt("id");
                      //Get output stream and writers
                      OutputStream out=resp.getOutputStream();
                      PrintWriter pw=new PrintWriter(new BufferedWriter(new OutputStreamWriter(out)));
                      //Print HTML
                      pw.println("<HTML><HEAD><TITLE>輸出HTML標簽</HEAD></TITLE><BODY>");
                      pw.println("<table border=\"1\" bgcolor=\"#ffffff\" align=\"\" cellspacing=\"1\" cellpadding=\"1\">");
                      pw.println("<tr>\r\n" + 
                              "<td align=\"center\" width=16%>課程名稱</td>\r\n" + 
                              "<td align=\"center\" width=16%>任課教師</td>\r\n" + 
                              "<td align=\"center\" width=35%>上課地點</td>\r\n" + 
                              "</tr>");
                      pw.println("<tr>\r\n" + 
                              "<td width=16% align=\"center\">"+rs.getString("name")+"</td>\r\n" + 
                              "<td width=16% align=\"center\">"+rs.getString("teacher")+"</td>\r\n" + 
                              "<td width=35% align=\"center\">"+rs.getString("place")+"</td>\r\n" + 
                              "</tr>");
                      pw.println("該課程已刪除!");
                      pw.println("</BODY></HTML>");
                      pw.flush();
                      pw.close();
                  }
              }
              
              
              String delesql="delete from curr_info where name=‘"+name+"‘ ";//生成一條sql語句
              stmt.executeUpdate(delesql);//執行sql語句
              
        } catch (SQLException e) {
            e.printStackTrace();
        }        
    
    }
}

  SearchCurrServlet.java 實現課程的查詢

package com.Servlet;

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

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

import com.DBUtil.CurrDBUtil;

public class SearchCurrServlet extends HttpServlet {
    
    private static final long serialVersionUID = 1L;

    protected void doPost(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{
        resp.setContentType("search.jsp");
        req.setCharacterEncoding("UTF-8");
        
        String name;
        String teacher;
        String place;
        
        name = req.getParameter("cname");
        teacher = req.getParameter("teacher");
        place = req.getParameter("place");
        
        int temp = 0;
        //連接數據庫
              Connection conn = CurrDBUtil.getConn();
            try {
                Statement stmt = conn.createStatement();
                String selectsql = "select * from curr_info";
                  ResultSet rs = stmt.executeQuery(selectsql);
                  
                  //Get output stream and writers
                  OutputStream out=resp.getOutputStream();
                  PrintWriter pw=new PrintWriter(new BufferedWriter(new OutputStreamWriter(out)));
                  //Print HTML
                  
                  pw.println("<HTML><HEAD><TITLE>輸出HTML標簽</HEAD></TITLE><BODY>");
                  pw.println("<table border=\"1\" bgcolor=\"#ffffff\" align=\"\" cellspacing=\"1\" cellpadding=\"1\">");
                  pw.println("<tr>\r\n" + 
                          "<td align=\"center\" width=16%>課程名稱</td>\r\n" + 
                          "<td align=\"center\" width=16%>任課教師</td>\r\n" + 
                          "<td align=\"center\" width=35%>上課地點</td>\r\n" + 
                          "</tr>");
                  while(rs.next()) {
                      if(rs.getString("name").equals(name) || rs.getString("teacher").equals(teacher) || rs.getString("place").equals(place)) {                          
                          pw.println("<tr>\r\n" + 
                                  "<td width=16% align=\"center\">"+rs.getString("name")+"</td>\r\n" + 
                                  "<td width=16% align=\"center\">"+rs.getString("teacher")+"</td>\r\n" + 
                                  "<td width=35% align=\"center\">"+rs.getString("place")+"</td>\r\n" + 
                                  "</tr>");
                          temp++;
                      }
                      /*
                      else {
                          //Get output stream and writers
                          OutputStream out=resp.getOutputStream();
                          PrintWriter pw=new PrintWriter(new BufferedWriter(new OutputStreamWriter(out)));
                          //Print HTML
                          pw.println("<HTML><HEAD><TITLE>輸出HTML標簽</HEAD></TITLE><BODY>");
                          pw.println("查詢錯誤!");
                          pw.println("</BODY></HTML>");
                          pw.flush();
                          pw.close();
                      }
                      */                      
                  }
                  if(temp == 0) {
                      pw.println("查詢錯誤!");
                  }
                  
                  pw.println("</BODY></HTML>");
                  pw.flush();
                  pw.close();
                  
            } catch (SQLException e) {
                e.printStackTrace();
            }        
        
      }
}

  UpdateCurrServlet.java 實現課程的修改

package com.Servlet;

import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;

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

import com.DBUtil.CurrDBUtil;

public class UpdateCurrServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;
    
    protected void doPost(HttpServletRequest req,HttpServletResponse resp)throws ServletException,IOException{
        resp.setContentType("update.jsp");
        req.setCharacterEncoding("UTF-8");
        
        String tempname;
        String name;
        String teacher;
        String place;
        
        tempname = req.getParameter("tempcname");
        name = req.getParameter("cname");
        teacher = req.getParameter("teacher");
        place = req.getParameter("place");
        
        //連接數據庫
          Connection conn = CurrDBUtil.getConn();
          try {
            Statement stmt = conn.createStatement();            
            String updatesql = "update curr_info set name=‘"+name+"‘,teacher=‘"+teacher+"‘,place=‘"+place+"‘ where name=‘"+tempname+"‘";
            stmt.executeUpdate(updatesql);//執行sql語句
            resp.sendRedirect(req.getContextPath()+"/index.jsp");            
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

  

Java之從頭開始編寫簡單課程信息管理系統