利用JavaWeb實現課程信息添加


整體架構 :HTML+JAVABEAN+SERVLET

一.首先先簡單介紹一下所需要的組件            原文地址 https://www.cnblogs.com/zll20153246/p/7871723.html

        Servlet 是在服務器上運行的小程序,用來動態的顯示 Web 內容。這個流程大概就是

  1. 客戶端發送請求至服務器端;
  2. 服務器將請求信息發送至 Servlet;
  3. Servlet 生成響應內容並將其傳給服務器。響應內容動態生成,通常取決於客戶端的請求;
  4. 服務器將響應返回給客戶端。

        JavaBean 說白了就是類而已,只不過現在改了一個名字而已,之前寫的時候都是一堆類混在一起,現在就是把他們拆開,按照不同的功能放在一起,一般我們用四個包來區分。

  1.       Bean包:這個包里面放的都是一些屬性類,一般數據庫里面有什么表,相應的就要有什么bean,當然表里面的數據在bean里面也要全有,比如有一個Student表,表里面有id,name那么在該包下就要建立相應的Studentbean(Studentbean只是一個名字,你自己可以隨便取)類,有私有變量id和name,與之對應的get和set函數。
  2.      implement 包:這個包就是放一些類,類里面的函數就是用來對數據庫進行操作的,例如增刪改查。
  3.      Utils包:這包里面放的就是用來連接數據庫的函數,在Dao函數里面直接調用這個就能連接數據庫,代碼復用。
  4.      Servlet包:這個包放置的就是servlet類,用來網頁與后台數據的交互,下面講解一個簡單的登錄界面html+javabean+Servlet.

二.環境搭建

1.jdk安裝及環境變量配置   (教程地址)https://blog.csdn.net/konggu_youlan/article/details/79942800?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163447732616780255219166%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163447732616780255219166&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-2-79942800.first_rank_v2_pc_rank_v29&utm_term=jdk%E5%AE%89%E8%A3%85%E5%8F%8A%E9%85%8D%E7%BD%AE&spm=1018.2226.3001.4187

2.tomcat安裝及配置 (教程地址)https://blog.csdn.net/qq_40881680/article/details/83582484?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163443660816780357257243%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163443660816780357257243&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-83582484.first_rank_v2_pc_rank_v29&utm_term=tomcat%E5%AE%89%E8%A3%85%E5%8F%8A%E9%85%8D%E7%BD%AE%E6%95%99%E7%A8%8B&spm=1018.2226.3001.4187

3.eclipse配置tomcat (教程地址)https://blog.csdn.net/yerenyuan_pku/article/details/51830104?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163447374416780366566928%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=163447374416780366566928&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-51830104.first_rank_v2_pc_rank_v29&utm_term=eclipse%E9%85%8D%E7%BD%AEtomcat&spm=1018.2226.3001.4187

 三.建立動態web項目

右側Dynamic Web Project

建立好之后,各個項目組件在工程目錄中的放置位置如上圖所示,src/main/java中是按照MVC三層架構進行的包分配

接下來編寫相應的組件放到對應的文件目錄中(我先把組件的分布情況放到了上面,這樣可以更清楚有哪些組件)

四.設計組件

1.設計前端html頁面

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    body {
        background-color: #77a3dd;
    }
</style>

<body>
    <form action="/kechengHTML/addServlet" method="POST">
        <table align="center" border="1" width="500">
            <tr>
                <td>課程名稱 : </td>
                <td>
                    <input type="text" placeholder="請輸入課程名稱" name="classname" />
                </td>
            </tr>
            <tr>
                <td>任課教師:</td>
                <td>
                    <input type="text" placeholder="請輸入教師名稱" name="teachername" />
                </td>
            </tr>
            <tr>
                <td>上課地點:</td>
                <td>
                    <input type="text" placeholder="請輸入上課地點" name="place" />
                </td>
            </tr>
            <tr align="center">
                <td colspan="2">
                    <input type="submit" value="提交" />
                    <input type="reset" value="重置" />
                </td>
            </tr>
        </table>
    </form>
</body>

</html>

2.addservlet(前端表單提交的數據被servlet獲取)前台表單路徑action 為addservlet

package Servlet;

import java.io.IOException;
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 Bean.UserInformation;
import implement.implementSQL;

/**
 * Servlet implementation class addServlet
 */
@WebServlet("/addServlet")
public class addServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        
        //response.getWriter().append("Served at: ").append(request.getContextPath());
        request.setCharacterEncoding("UTF-8");
          String teachername=request.getParameter("teachername");
          String classname= request.getParameter("classname");
          String place= request.getParameter("place");
          UserInformation User = new  UserInformation();
          User.setClassname(classname);
          User.setTeachername(teachername);
          User.setPlace(place);
          implementSQL ADD = new  implementSQL();
          try {
            ADD.add(User);
        } catch (SQLException e) {
            // TODO 自動生成的 catch 塊
            e.printStackTrace();
        }
    }

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

}

3.編寫javebean

package Bean;

public class UserInformation {
	private String  teachername;
    private String  place;
    private String  classname;
    public String getTeachername() {
       return teachername;
    }
   public void setTeachername(String teachername) {
        this.teachername = teachername;
    }
    public String getPlace() {
        return place;
   }
   public void setPlace(String place) {
        this.place = place;
    }
    public String getClassname() {
        return classname;     }
   public void setClassname(String classname) {
       this.classname = classname;
   }
}

4.編寫Dao層(執行sql語句的代碼)

package implement;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;

import Bean.UserInformation;
import Utils.JDBCUtils;

public class implementSQL {
public void add(UserInformation user) throws SQLException {
	 Connection connection = JDBCUtils.getConnection();
	
	 String sql = "insert into kecheng(teachername,classname,place) values(?,?,?)";
     PreparedStatement preparedStatement = null;
      try {
      //創建語句傳輸對象
      preparedStatement = connection.prepareStatement(sql);
      
     preparedStatement = connection.prepareStatement(sql);
      preparedStatement.setString(1, user.getTeachername());
     preparedStatement.setString(2, user.getClassname());
      preparedStatement.setString(3, user.getPlace());
    preparedStatement.executeUpdate();
      } catch (SQLException e) {
         // TODO Auto-generated catch block
        e.printStackTrace();
     }finally {
         //關閉資源
          
     	JDBCUtils.release((com.mysql.jdbc.Connection) connection,  preparedStatement);
         //DBUtil.close(connection);
     }
     
 }

}

 現在所有的組件都已經建立完畢,只需要放到相應的工程目錄下,並將項目部署到tomcat,在eclipse中啟動tomcat即可

ps:還有一些細節需要注意,連接數據庫需要導入jar包,放到lib目錄中並添加至構建路徑,jar包的版本一定要和數據庫的版本對應,否則會連接失敗


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM