整體架構 :HTML+JAVABEAN+SERVLET
一.首先先簡單介紹一下所需要的組件 原文地址 https://www.cnblogs.com/zll20153246/p/7871723.html
Servlet 是在服務器上運行的小程序,用來動態的顯示 Web 內容。這個流程大概就是
-
客戶端發送請求至服務器端;
-
服務器將請求信息發送至 Servlet;
-
Servlet 生成響應內容並將其傳給服務器。響應內容動態生成,通常取決於客戶端的請求;
-
服務器將響應返回給客戶端。
JavaBean 說白了就是類而已,只不過現在改了一個名字而已,之前寫的時候都是一堆類混在一起,現在就是把他們拆開,按照不同的功能放在一起,一般我們用四個包來區分。
- Bean包:這個包里面放的都是一些屬性類,一般數據庫里面有什么表,相應的就要有什么bean,當然表里面的數據在bean里面也要全有,比如有一個Student表,表里面有id,name那么在該包下就要建立相應的Studentbean(Studentbean只是一個名字,你自己可以隨便取)類,有私有變量id和name,與之對應的get和set函數。
- implement 包:這個包就是放一些類,類里面的函數就是用來對數據庫進行操作的,例如增刪改查。
- Utils包:這包里面放的就是用來連接數據庫的函數,在Dao函數里面直接調用這個就能連接數據庫,代碼復用。
- 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包的版本一定要和數據庫的版本對應,否則會連接失敗