人口普查系統
1、項目需求:
開展第七次全國人口普查,將為編制“十四五”規划提供重要信息支持;推動實現人口與經濟社會、資源環境協調發展,為深化供給側結構性改革,推動經濟高質量發展,建設現代化經濟體系提供強有力的支持;人口普查還將為完善人口發展戰略和政策體系,促進人口長期均衡發展提供重要信息支持。
2.系統要求與功能設計
2.1 頁面功能要求
(1)能夠在Tomcat服務器中正確部署,並通過瀏覽器查看;(1分)
(2)網站頁面整體風格統一;
圖1 人口普查系統功能結構圖
(3)主頁面:要求顯示人口登記、修改人口信息、刪除人口信息、查詢人口信息,人口信息瀏覽五個子菜單。(1分)
(4)人口登記頁面:(6分)
①完成添加人口信息登記,基本信息和填報限制如下表所示
戶 別 |
家庭戶 集體戶(單選框) |
住房類型 |
家庭住宅、集體住所、工作地住所、其他住宅、無住宅(單選框) |
本戶現住房面積 |
XXXXX平方米(文本框,只能輸入這個整數) |
本戶現住房間數 |
XXXXX間(文本框,只能輸入這個整數) |
戶主姓名 |
XXXXX(文本框) |
身份證號碼 |
XXXXXXXXXXXXXXXXXX(判斷身份證位數13位並且只能錄入數字、最后一位可以錄入X) |
性別 |
男/女(單選框) |
民族 |
(文本框) |
受教育程度 |
研究生、大學本科、大學專科、高中、初中、小學、未上過學(下拉框實現) |
②點擊“提交”按鈕,保存成功則跳轉到人口基本信息瀏覽界面,新錄入的信息置頂顯示。失敗則提示錯誤信息,返回當前頁面
(5)修改人口信息頁面:(3分)
輸入戶主姓名,顯示其余信息,可對身份證號碼、性別、民族、受教育程度進行修改。(身份證號碼、性別、受教育程度必須符合錄入要求);如果該名戶主信息數據庫不存在,則提示“該戶主信息不存在”。(3分)
(6)刪除人口信息頁面:錄入戶主姓名,顯示詳細信息后,點擊“刪除”按鈕,彈出提示框,提示“是否確認刪除該戶主信息”,確認后刪除該信息。(1分)
(7)瀏覽人口信息頁面:(2分)
以列表形式顯示人口基本信息,結果列表中顯示姓名、性別,民族、受教育程度基本信息,點擊姓名,可以跳轉到個人詳細信息。
(8)查詢人口信息頁面:(3分)
要求可以根據人口姓名、性別、民族、受教育程度四種條件實現模糊查詢,輸出結果以列表形式顯示,顯示人口姓名、性別、民族、受教育程度基本信息,點擊列表中的姓名,跳轉到人口個人詳細信息頁面。
本次實驗我建立了五層,如下圖所示:
entity層:
entity層為數據表對應的Java類,是封裝數據的模型,比如人口普查系統,在前台提交的人口信息,后台會對應一個類,把課程的信息封裝到中。
1 package entity; 2 3 public class Teenager { 4 private int id; 5 private String hubie; 6 private String leixing; 7 private String area; 8 private String num; 9 private String name; 10 private String haoma; 11 private String sex; 12 private String minzu; 13 private String jiaoyu; 14 15 public int getId() { 16 return id; 17 } 18 public void setId(int id) { 19 this.id = id; 20 } 21 public String getHubie() { 22 return hubie; 23 } 24 public void setHubie(String hubie) { 25 this.hubie = hubie; 26 } 27 public String getLeixing() { 28 return leixing; 29 } 30 public void setLeixing(String leixing) { 31 this.leixing = leixing; 32 } 33 public String getArea() { 34 return area; 35 } 36 public void setArea(String area) { 37 this.area = area; 38 } 39 public String getNum() { 40 return num; 41 } 42 public void setNum(String num) { 43 this.num = num; 44 } 45 public String getName() { 46 return name; 47 } 48 public void setName(String name) { 49 this.name = name; 50 } 51 public String getHaoma() { 52 return haoma; 53 } 54 public void setHaoma(String haoma) { 55 this.haoma = haoma; 56 } 57 58 public String getSex() { 59 return sex; 60 } 61 public void setSex(String sex) { 62 this.sex = sex; 63 } 64 public String getMinzu() { 65 return minzu; 66 } 67 public void setMinzu(String minzu) { 68 this.minzu = minzu; 69 } 70 public String getJiaoyu() { 71 return jiaoyu; 72 } 73 public void setJiaoyu(String jiaoyu) { 74 this.jiaoyu = jiaoyu; 75 } 76 public Teenager() { 77 super(); 78 // TODO 自動生成的構造函數存根 79 } 80 public Teenager(String hubie, String leixing, String area, String num, String name, String haoma, String sex, String minzu, 81 String jiaoyu) { 82 super(); 83 this.hubie = hubie; 84 this.leixing = leixing; 85 this.area = area; 86 this.num = num; 87 this.name = name; 88 this.haoma = haoma; 89 this.sex = sex; 90 this.minzu = minzu; 91 this.jiaoyu = jiaoyu; 92 } 93 public Teenager(int id, String hubie, String leixing, String area, String num, String name, String haoma, String sex, 94 String minzu, String jiaoyu) { 95 super(); 96 this.id = id; 97 this.hubie = hubie; 98 this.leixing = leixing; 99 this.area = area; 100 this.num = num; 101 this.name = name; 102 this.haoma = haoma; 103 this.sex = sex; 104 this.minzu = minzu; 105 this.jiaoyu = jiaoyu; 106 } 107 108 }
util層:
util用於連接數據庫,我們寫一個DBUtil.java
1 package util; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.ResultSet; 6 import java.sql.SQLException; 7 import java.sql.Statement; 8 9 public class DBUtil { 10 11 public static String db_url = "jdbc:mysql://localhost:3306/text?serverTimezone=GMT%2B8&useSSL=false"; 12 public static String db_user = "root"; 13 public static String db_pass = "0424wyhhxx"; 14 15 public static Connection getConn () { 16 Connection conn = null; 17 18 try { 19 Class.forName("com.mysql.jdbc.Driver"); 20 conn = DriverManager.getConnection(db_url, db_user, db_pass); 21 } catch (Exception e) { 22 e.printStackTrace(); 23 } 24 25 return conn; 26 } 27 28 //關閉 29 public static void close(Connection conn) { 30 if (conn != null) { 31 try { 32 conn.close(); 33 } catch (SQLException e) { 34 e.printStackTrace(); 35 } 36 } 37 } 38 public static void close (Statement state, Connection conn) { 39 if (state != null) { 40 try { 41 state.close(); 42 } catch (SQLException e) { 43 e.printStackTrace(); 44 } 45 } 46 47 if (conn != null) { 48 try { 49 conn.close(); 50 } catch (SQLException e) { 51 e.printStackTrace(); 52 } 53 } 54 } 55 56 public static void close (ResultSet rs, Statement state, Connection conn) { 57 if (rs != null) { 58 try { 59 rs.close(); 60 } catch (SQLException e) { 61 e.printStackTrace(); 62 } 63 } 64 65 if (state != null) { 66 try { 67 state.close(); 68 } catch (SQLException e) { 69 e.printStackTrace(); 70 } 71 } 72 73 if (conn != null) { 74 try { 75 conn.close(); 76 } catch (SQLException e) { 77 e.printStackTrace(); 78 } 79 } 80 } 81 82 }
dao層:
dao層叫數據訪問層,全稱為data access object,專門負責一些對數據庫的訪問,屬於一種比較底層,比較基礎的操作,具體到對於某個表、某個實體的增刪改查。
1 package dao; 2 import java.sql.Connection; 3 import java.sql.PreparedStatement; 4 import java.sql.ResultSet; 5 import java.sql.SQLException; 6 import java.sql.Statement; 7 import java.util.ArrayList; 8 import java.util.List; 9 10 import entity.Teenager; 11 import util.DBUtil; 12 public class TeenagerDao { 13 14 public boolean add(Teenager ten) 15 { 16 String sql="insert into Teenager(hubie, leixing,area,num, name, haoma, sex, minzu,jiaoyu)values" 17 + "('" + ten.getHubie() + "','" + ten.getLeixing() + "','" + ten.getArea() + "','" + ten.getNum() + "','" + ten.getName() + "','" + ten.getHaoma() + "','" + ten.getSex()+ "','" + ten.getMinzu() + "','" + ten.getJiaoyu()+ "')"; 18 19 Connection conn=DBUtil.getConn(); 20 Statement state=null; 21 boolean f=false; 22 int a = 0; 23 try { 24 state = conn.createStatement(); 25 state.executeUpdate(sql); 26 } catch (SQLException e) { 27 // TODO Auto-generated catch block 28 e.printStackTrace(); 29 } finally { 30 31 DBUtil.close(state, conn); 32 } 33 if(a>0) 34 f=true; 35 return f; 36 } 37 38 public Teenager getbyname(String name) { 39 String sql = "select * from Teenager where name ='" + name + "'"; 40 Connection conn = DBUtil.getConn(); 41 Statement state = null; 42 ResultSet rs = null; 43 Teenager ten = null; 44 45 try { 46 state = conn.createStatement(); 47 rs = state.executeQuery(sql); 48 while (rs.next()) { 49 int id=rs.getInt("id"); 50 51 String hubie2 = rs.getString("hubie"); 52 String leixing2 = rs.getString("leixing"); 53 String area2=rs.getString("area"); 54 String num2 = rs.getString("num"); 55 String haoma2 =rs.getString("haoma"); 56 String sex2=rs.getString("sex"); 57 String minzu2=rs.getString("minzu"); 58 String jiaoyu2=rs.getString("jiaoyu"); 59 ten = new Teenager(id,hubie2, leixing2,area2,num2, name, haoma2, sex2, minzu2,jiaoyu2); 60 } 61 } catch (Exception e) { 62 e.printStackTrace(); 63 } finally { 64 DBUtil.close(rs, state, conn); 65 } 66 67 return ten; 68 } 69 70 71 //delete 72 public boolean delete(String name) 73 { 74 String sql="delete from Teenager where name='" + name + "'"; 75 Connection conn = DBUtil.getConn(); 76 Statement state = null; 77 int a = 0; 78 boolean f = false; 79 try { 80 state = conn.createStatement(); 81 a = state.executeUpdate(sql); 82 } catch (SQLException e) { 83 e.printStackTrace(); 84 } finally { 85 DBUtil.close(state, conn); 86 } 87 88 if (a > 0) { 89 f = true; 90 } 91 return f; 92 } 93 //update 94 public boolean update(Teenager b) 95 { 96 Connection con=null; 97 PreparedStatement pstmt=null; 98 ResultSet rs=null; 99 try { 100 con=DBUtil.getConn(); 101 String sql="update Teenager set hubie=?,leixing=?,area=?,num=?,name=?,haoma=?,sex=?,minzu=? where id=?"; 102 pstmt=con.prepareStatement(sql); 103 pstmt.setString(1, b.getHubie()); 104 pstmt.setString(2, b.getLeixing()); 105 pstmt.setString(3, b.getArea()); 106 pstmt.setString(4, b.getNum()); 107 pstmt.setString(5, b.getName()); 108 pstmt.setString(6, b.getHaoma()); 109 pstmt.setString(7, b.getSex()); 110 pstmt.setString(7, b.getMinzu()); 111 pstmt.setInt(8, b.getId()); 112 pstmt.executeUpdate(); 113 return true; 114 } 115 catch (SQLException e) { 116 System.out.println("更新失敗"); 117 e.printStackTrace(); 118 } 119 finally { 120 DBUtil.close(rs, pstmt, con); 121 } 122 return false; 123 } 124 //查找 125 public boolean name(String name) { 126 boolean flag = false; 127 String sql = "select name from Teenager where name = '" + name + "'"; 128 Connection conn = DBUtil.getConn(); 129 Statement state = null; 130 ResultSet rs = null; 131 132 try { 133 state = conn.createStatement(); 134 rs = state.executeQuery(sql); 135 while (rs.next()) { 136 flag = true; 137 } 138 } catch (SQLException e) { 139 e.printStackTrace(); 140 } finally { 141 DBUtil.close(rs, state, conn); 142 } 143 return flag; 144 } 145 146 147 public List<Teenager> search(String name, String sex, String minzu,String jiaoyu) 148 { 149 String sql = "select * from Teenager where "; 150 151 152 if (name != "") { 153 sql += "name like '%" +name+ "%'"; 154 } 155 156 if (sex != "") { 157 sql += "sex like '%" +sex+ "%'"; 158 } 159 if(minzu!="") { 160 sql+="minzu like '%"+minzu+ "%'"; 161 } 162 163 if(jiaoyu!="") { 164 sql+="jiaoyu like '%" +jiaoyu+ "%'"; 165 } 166 List<Teenager> list = new ArrayList<>(); 167 Connection conn = DBUtil.getConn(); 168 Statement state = null; 169 ResultSet rs = null; 170 Teenager bean = null; 171 try { 172 state = conn.createStatement(); 173 rs = state.executeQuery(sql); 174 while (rs.next()) { 175 String hubie2=rs.getString("hubie"); 176 String leixing2 = rs.getString("leixing"); 177 String area2 = rs.getString("area"); 178 String num2 = rs.getString("num"); 179 String name2=rs.getString("name"); 180 String haoma2 = rs.getString("haoma"); 181 String sex2 =rs.getString("sex"); 182 String minzu2=rs.getString("minzu"); 183 String jiaoyu2=rs.getString("jiaoyu"); 184 bean =new Teenager(hubie2, leixing2,area2,num2, name2, haoma2, sex2, minzu2,jiaoyu2); 185 list.add(bean); 186 } 187 } catch (SQLException e) { 188 e.printStackTrace(); 189 } finally { 190 DBUtil.close(rs, state, conn); 191 } 192 193 return list; 194 } 195 196 public List<Teenager> list() 197 { 198 String sql = "select * from Teenager"; 199 List<Teenager> list = new ArrayList<>(); 200 Connection conn = DBUtil.getConn(); 201 Statement state = null; 202 ResultSet rs = null; 203 204 try { 205 state = conn.createStatement(); 206 rs = state.executeQuery(sql); 207 while (rs.next()) { 208 Teenager bean = null; 209 int id=rs.getInt("id"); 210 String hubie2=rs.getString("hubie"); 211 String leixing2 = rs.getString("leixing"); 212 String area2 = rs.getString("area"); 213 String num2 = rs.getString("num"); 214 String name=rs.getString("name"); 215 String haoma2 = rs.getString("haoma"); 216 String sex2 =rs.getString("sex"); 217 String minzu2=rs.getString("minzu"); 218 String jiaoyu2=rs.getString("jiaoyu"); 219 bean =new Teenager(id,hubie2, leixing2,area2,num2, name, haoma2, sex2, minzu2,jiaoyu2); 220 list.add(bean); 221 } 222 } catch (SQLException e) { 223 e.printStackTrace(); 224 } finally { 225 DBUtil.close(rs, state, conn); 226 } 227 228 return list; 229 } 230 }
servlet層:
servlet是一個java接口,其功能如下(1)創建並返回一個包含基於客戶請求性質的動態內容的完整的 HTML 頁面。我們建立一個course_servlet.java。
(2)創建可嵌入到現有 HTML 頁面中的一部分 HTML 頁面( HTML 片段)。
(3)與其它服務器資源(包括數據庫和基於 Java 的應用程序)進行通信。
1 package servlet; 2 import java.io.IOException; 3 import java.util.List; 4 5 import javax.servlet.ServletException; 6 import javax.servlet.annotation.WebServlet; 7 import javax.servlet.http.HttpServlet; 8 import javax.servlet.http.HttpServletRequest; 9 import javax.servlet.http.HttpServletResponse; 10 11 import entity.Teenager; 12 import service.TeenagerService; 13 @WebServlet("/TeenagerServlet") 14 public class TeenagerServlet extends HttpServlet{ 15 private static final long serialVersionUID = 1L; 16 17 TeenagerService service = new TeenagerService(); 18 19 20 protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 21 req.setCharacterEncoding("utf-8"); 22 String method = req.getParameter("method"); 23 24 if ("add".equals(method)) { 25 add(req, resp); 26 } else if ("del".equals(method)) { 27 del(req, resp); 28 } else if ("update".equals(method)) { 29 update(req, resp); 30 } else if ("search".equals(method)) { 31 search(req, resp); 32 } else if ("list".equals(method)) { 33 list(req, resp); 34 } else if("getbyname".equals(method)) { 35 getbyname(req,resp); 36 }else if("getbyname2".equals(method)) { 37 getbyname2(req,resp); 38 } 39 } 40 41 private void getbyname(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{ 42 req.setCharacterEncoding("utf-8"); 43 String name = req.getParameter("name"); 44 Teenager ten = service.getbyname(name); 45 if(ten==null) 46 { 47 req.setAttribute("message", "未找到該住戶"); 48 req.getRequestDispatcher("del.jsp").forward(req, resp); 49 } 50 else 51 { 52 req.setAttribute("ten", ten); 53 req.getRequestDispatcher("del2.jsp").forward(req,resp); 54 } 55 } 56 57 private void getbyname2(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{ 58 req.setCharacterEncoding("utf-8"); 59 String name = req.getParameter("name"); 60 Teenager ten = service.getbyname(name); 61 if(ten==null) 62 { 63 req.setAttribute("message", "未找到該住戶"); 64 req.getRequestDispatcher("xiugai.jsp").forward(req, resp); 65 } 66 else 67 { 68 req.setAttribute("ten", ten); 69 req.getRequestDispatcher("update.jsp").forward(req,resp); 70 } 71 } 72 73 private void add(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException { 74 req.setCharacterEncoding("utf-8"); 75 String hubie = req.getParameter("hubie"); 76 String leixing =req.getParameter("leixing"); 77 String area=req.getParameter("area"); 78 String num=req.getParameter("num"); 79 String name=req.getParameter("name"); 80 String haoma=req.getParameter("haoma"); 81 String sex = req.getParameter("sex"); 82 String minzu = req.getParameter("minzu"); 83 String jiaoyu = req.getParameter("jiaoyu"); 84 Teenager ten =new Teenager(hubie,leixing, area, num,name, haoma, sex, minzu, 85 jiaoyu); 86 if(service.add(ten)) { 87 req.setAttribute("message", "添加成功"); 88 req.getRequestDispatcher("TeenagerServlet?method=list").forward(req,resp); 89 } else { 90 req.setAttribute("message", "姓名重復,請重新錄入"); 91 req.getRequestDispatcher("add.jsp").forward(req,resp); 92 } 93 } 94 95 private void list(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{ 96 req.setCharacterEncoding("utf-8"); 97 98 List<Teenager> tens = service.list(); 99 req.setAttribute("tens", tens); 100 req.getRequestDispatcher("list.jsp").forward(req,resp); 101 } 102 103 private void del(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{ 104 req.setCharacterEncoding("utf-8"); 105 String name=req.getParameter("name"); 106 service.del(name); 107 req.setAttribute("message", "刪除成功"); 108 req.getRequestDispatcher("del.jsp").forward(req,resp); 109 } 110 111 private void update(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{ 112 req.setCharacterEncoding("utf-8"); 113 int id = Integer.parseInt(req.getParameter("id")); 114 String hubie = req.getParameter("hubie"); 115 String leixing =req.getParameter("leixing"); 116 String area=req.getParameter("area"); 117 String num=req.getParameter("num"); 118 String name=req.getParameter("name"); 119 String haoma=req.getParameter("haoma"); 120 String sex = req.getParameter("sex"); 121 String minzu = req.getParameter("minzu"); 122 String jiaoyu = req.getParameter("jiaoyu"); 123 124 Teenager ten =new Teenager(id,hubie, leixing,area,num, name, haoma, sex, minzu,jiaoyu); 125 service.update(ten); 126 req.setAttribute("message", "修改成功"); 127 req.getRequestDispatcher("TeenagerServlet?method=list").forward(req,resp); 128 } 129 130 private void search(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException{ 131 req.setCharacterEncoding("utf-8"); 132 String name=req.getParameter("name"); 133 String sex = req.getParameter("sex"); 134 String minzu = req.getParameter("minzu"); 135 String jiaoyu = req.getParameter("jiaoyu"); 136 List<Teenager> tens = service.search(name, sex, minzu,jiaoyu); 137 if(tens==null) 138 { 139 req.setAttribute("message", "沒有該住戶"); 140 req.getRequestDispatcher("search.jsp").forward(req,resp); 141 } 142 else { 143 req.setAttribute("tens", tens); 144 req.getRequestDispatcher("list2.jsp").forward(req,resp); 145 } 146 } 147 148 }
service層:
接收客戶端請求,完成操作任務。創建一個類繼承httpservlet,重寫doGet和doPost方法,在其中實現后台和前台交互。
1 package service; 2 import java.util.List; 3 4 import dao.TeenagerDao; 5 import entity.Teenager; 6 public class TeenagerService { 7 TeenagerDao tDao=new TeenagerDao(); 8 public boolean add(Teenager ten) 9 { 10 boolean f = false; 11 if(!tDao.name(ten.getName())) 12 { 13 tDao.add(ten); 14 f=true; 15 } 16 return f; 17 } 18 19 public boolean del(String name) 20 { 21 tDao.delete(name); 22 return true; 23 } 24 25 public boolean update(Teenager ten) 26 { 27 tDao.update(ten); 28 return true; 29 } 30 31 public Teenager getbyname(String name) 32 { 33 return tDao.getbyname(name); 34 } 35 36 public List<Teenager> search( String name, String sex, String minzu,String jiaoyu) { 37 return tDao.search(name, sex, minzu,jiaoyu); 38 } 39 40 41 public List<Teenager> list() 42 { 43 return tDao.list(); 44 } 45 }
jsp頁面:
index.jsp頁面:
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html> 4 <html> 5 <head> 6 <meta charset="UTF-8"> 7 <title>Insert title here</title> 8 </head> 9 <style type="text/css"> 10 *{margin:0;padding:0;}/*去掉頁面樣式*/ 11 body{ 12 background-color:pink; 13 text-align:center; 14 } 15 .content{ 16 background-color:#6666ff; 17 position:absolute;/*絕對定位*/ 18 top:10%; 19 left:0; 20 width:100%; 21 height:800px; 22 } 23 .main{ 24 text-align:center;/*文本居中*/ 25 max-width:600px; 26 height:400px; 27 padding:50px 0px;/*上下80px,左右為0*/ 28 /*background:yellow;*//*驗證div的位置*/ 29 margin:0 auto;/*設置上右下左,居中顯示*/ 30 } 31 32 .main h1{ 33 font-family:"楷體";/*設置字體*/ 34 font-size:70px;/*設置字體大小*/ 35 font-weight:2px;/*調整字體粗細*/ 36 } 37 form{ 38 padding:0px 0; 39 } 40 form a{ 41 text-decoration:none;/*去除下划線*/ 42 color:pink; 43 font-size:50px; 44 font-family:"楷體"; 45 font-weight:2px; 46 } 47 body p{ 48 padding:15px 0; 49 color:brown; 50 font-size:35px; 51 font-family:"楷體"; 52 font-weight:2px; 53 } 54 form input{ 55 border:1px solid white; 56 margin:0px auto 10px auto;/*上 右 下 左*/ 57 padding:10px; 58 width:220px; 59 border-radius:30px;/*H5設置圓角邊框*/ 60 font-size:18px; 61 font-weight:300; 62 text-align:center; /*光標輸入中間*/ 63 } 64 form label{ 65 font-size:30px; 66 } 67 form input:hover{ 68 background-color:#66FFFF; 69 } 70 form button{ 71 border:5px solid white; 72 background-color:#66FF00; 73 border-radius:10px; 74 border:0; 75 height:30px; 76 width:145px; 77 padding:5px 10px; 78 margin-align:center; 79 80 } 81 form button:hover{ 82 background-color:#66FFFF; 83 } 84 </style> 85 86 <body> 87 <p>人口普查系統</p> 88 <div class="content" align="center"> 89 <div class="main"> 90 <form> 91 <a href="add.jsp">信息登記</a> 92 <br> 93 <br> 94 <a href="xiugai.jsp">信息修改</a> 95 <br><br> 96 <a href="del.jsp">信息刪除</a> 97 <br><br> 98 <a href="search.jsp">信息查詢</a> 99 <br><br> 100 <a href="TeenagerServlet?method=list">信息顯示</a> 101 </form> 102 </div> 103 </div> 104 </body> 105 </html>
主界面截圖:
信息登記:
添加成功以后顯示
信息修改:
模糊查詢:
信息刪除:
信息顯示: