1. 程式人生 > 實用技巧 >Java Web下MySQL資料庫的增刪改查(二)

Java Web下MySQL資料庫的增刪改查(二)

前文:https://www.cnblogs.com/Arisf/p/14095002.html

在之前圖書管理系統上做了改進優化

圖書管理系統v2

首先是專案結構:

1.資料庫的連線:

  1 package db;
  2 
  3 import java.sql.Connection;
  4 import java.sql.DriverManager;
  5 import java.sql.PreparedStatement;
  6 import java.sql.ResultSet;
  7 import java.sql.SQLException;
  8 import java.sql.Statement;
9 10 public class DBUtil { 11 private static String url = "jdbc:mysql://localhost:3306/book system?&useSSL=false&serverTimezone=UTC"; 12 private static String user = "root";//使用者名稱一般預設是root 13 private static String password = "";//自己的密碼 14 private static String jdbcName="com.mysql.cj.jdbc.Driver";
15 private Connection con=null; 16 public static Connection getConnection() { 17 Connection con=null; 18 try { 19 Class.forName(jdbcName); 20 con=DriverManager.getConnection(url, user, password); 21 //System.out.println("資料庫連線成功"); 22
} catch (Exception e) { 23 // TODO Auto-generated catch block 24 //System.out.println("資料庫連線失敗"); 25 e.printStackTrace(); 26 } 27 try { 28 con = DriverManager.getConnection(url,user,password); 29 System.out.println("資料庫連線成功"); 30 31 32 } catch (SQLException e) { 33 // TODO: handle exception 34 e.printStackTrace(); 35 } 36 return con; 37 } 38 public static void main(String[] args)throws SQLException { 39 Connection conn = getConnection(); 40 PreparedStatement pstmt = null; 41 ResultSet rs = null; 42 String sql ="select * from user_information"; 43 pstmt = conn.prepareStatement(sql); 44 rs = pstmt.executeQuery(); 45 System.out.println(getConnection()); 46 while(rs.next()){ 47 System.out.println("資料表連線成功"); 48 } 49 50 } 51 52 public static void close(Connection con) { 53 if(con!=null) 54 try { 55 con.close(); 56 } catch (SQLException e) { 57 // TODO Auto-generated catch block 58 e.printStackTrace(); 59 } 60 61 } 62 public static void close(Statement state, Connection conn) { 63 if(state!=null) { 64 try { 65 state.close(); 66 } catch (SQLException e) { 67 e.printStackTrace(); 68 } 69 } 70 if(conn!=null) { 71 try { 72 conn.close(); 73 } catch (SQLException e) { 74 e.printStackTrace(); 75 } 76 } 77 } 78 79 public static void close(ResultSet rs, Statement state, Connection conn) { 80 if(rs!=null) { 81 try { 82 rs.close(); 83 } catch (SQLException e) { 84 e.printStackTrace(); 85 } 86 } 87 if(state!=null) { 88 try { 89 state.close(); 90 } catch (SQLException e) { 91 e.printStackTrace(); 92 } 93 } 94 if(conn!=null) { 95 try { 96 conn.close(); 97 } catch (SQLException e) { 98 e.printStackTrace(); 99 } 100 } 101 } 102 103 }

2.實體類(3個——圖書表,借書表,使用者表)

 1 package bean;
 2 
 3 public class Bean_book {
 4     private int id;
 5     private String name;
 6     private String writer;
 7     private String press;
 8     private int num;
 9 
10     
11     public int getId() {
12         return id;
13     }
14     public void setId(int id) {
15         this.id = id;
16     }
17     
18     public String getName() {
19         return name;
20     }
21     public void setName(String name) {
22         this.name = name;
23     }
24     
25     public String getWriter() {
26         return writer;
27     }
28     public void setWriter(String writer) {
29         this.writer = writer;
30     }
31 
32     public String getPress() {
33         return press;
34     }
35     public void setPress(String press) {
36         this.press = press;
37     }
38     
39     public int getNum() {
40         return num;
41     }
42     public void setNum(int num) {
43         this.num = num;
44     }
45     
46     
47     public Bean_book(int id, String name, String writer,  String press,int num) {
48         this.id = id;
49         this.name = name;
50         this.writer = writer;
51         this.press = press;
52         this.num = num;
53     }
54     
55     
56     
57     public String toString() {
58         return "Book{" +
59                 "id=" + id +
60                 ", name='" + name + '\'' +
61                 ", writer='" + writer + '\'' +
62                 ", press='" + press + '\'' +
63                 ", num=" + num +
64                 '}';
65     }
66 
67 
68 }
 1 package bean;
 2 
 3 
 4 public class Bean_borrowing {
 5     private int id;
 6     private String name;
 7     private String writer;
 8     private String press;
 9     private String date;
10     private int borrower;
11 
12 
13 
14     
15     public int getId() {
16         return id;
17     }
18     public void setId(int id) {
19         this.id = id;
20     }
21     
22     public String getName() {
23         return name;
24     }
25     public void setName(String name) {
26         this.name = name;
27     }
28     
29     public String getWriter() {
30         return writer;
31     }
32     public void setWriter(String writer) {
33         this.writer = writer;
34     }
35 
36     public String getPress() {
37         return press;
38     }
39     public void setPress(String press) {
40         this.press = press;
41     }
42     
43     public String getDate() {
44         return date;
45     }
46     public void setDate(String date) {
47         this.date = date;
48     }
49     public int getBorrower() {
50         return borrower;
51     }
52     public void setBorrower(int borrower) {
53         this.borrower = borrower;
54     }
55     
56     public Bean_borrowing(int id, String name, String writer,  String press,String date,int borrower) {
57         this.id = id;
58         this.name = name;
59         this.writer = writer;
60         this.press = press;
61         this.date = date;
62         this.borrower=borrower;
63     }
64     
65     public String toString() {
66         return "Borrowing{" +
67                 "id=" + id +
68                 ", name='" + name + '\'' +
69                 ", writer='" + writer + '\'' +
70                 ", press='" + press + '\'' +
71                 ", date='" + date + '\'' +
72                 ", borrower=" + borrower +
73                 '}';
74     }
75 
76 }
 1 package bean;
 2 
 3 public class Bean_user {
 4     
 5     private int uid;
 6     private String name;
 7     private String sex;
 8     private String college;
 9     private String password;
10     private String identity;
11 
12     
13     public int getUid() {
14         return uid;
15     }
16     public void setUid(int uid) {
17         this.uid = uid;
18     }
19     
20     public String getName() {
21         return name;
22     }
23     public void setName(String name) {
24         this.name = name;
25     }
26     
27     public String getSex() {
28         return sex;
29     }
30     public void setSex(String sex) {
31         this.sex = sex;
32     }
33 
34     public String getCollege() {
35         return college;
36     }
37     public void setCollege(String college) {
38         this.college = college;
39     }
40     
41     public String getPassword() {
42         return password;
43     }
44     public void setPassword(String password) {
45         this.password = password;
46     }
47     
48     public String getIdentity() {
49         return identity;
50     }
51     public void setIdentity(String identity) {
52         this.identity = identity;
53     }
54     
55     public Bean_user(int uid, String name, String sex,  String college,String password,String identity) {
56         this.uid = uid;
57         this.name = name;
58         this.sex = sex;
59         this.college = college;
60         this.password = password;
61         this.identity = identity;
62     }
63     
64     
65     
66     
67     public String toString() {
68         return "User{" +
69                 "uid=" + uid +
70                 ", name='" + name + '\'' +
71                 ", sex='" + sex + '\'' +
72                 ", college='" + college + '\'' +
73                 ", password='" + password + '\'' +
74                 ", identity=" + identity +
75                 '}';
76     }
77 
78 }

3.Dao

  1 package dao;
  2 
  3 import java.sql.Connection;
  4 import java.sql.PreparedStatement;
  5 import java.sql.ResultSet;
  6 import java.sql.SQLException;
  7 import java.sql.Statement;
  8 import java.text.SimpleDateFormat;
  9 import java.util.ArrayList;
 10 import java.util.Date;
 11 import java.util.List;
 12 
 13 import bean.Bean_user;
 14 import bean.Bean_book;
 15 import bean.Bean_borrowing;
 16 import db.DBUtil;
 17 
 18 public class Dao {
 19     //dao層
 20     private DBUtil dbutil=new DBUtil();
 21 
 22     
 23 public Dao() {
 24     // TODO Auto-generated constructor stub
 25 }
 26 public boolean insert_user(Bean_user bean) {//插入讀者資料的方法
 27     boolean f=false;
 28     String sql="insert into user_information(uid,name,sex,college,password,identity) values('"+bean.getUid()+"','"+bean.getName()+"','"+bean.getSex()+"','"+bean.getCollege()+"','"+bean.getPassword()+"','"+bean.getIdentity()+"')";
 29     Connection conn=DBUtil.getConnection();//資料庫連線,載入驅動
 30     Statement state=null;
 31     try
 32     {
 33         state=conn.createStatement();//例項化Statement物件,方便對sql語句進行操作
 34         System.out.println(conn);
 35         state.executeUpdate(sql);
 36         f=true;
 37         //執行資料庫更新操作用於執行INSERT、UPDATE或DELETE語句以及SQLDDL(資料定義語言)語句,
 38         //例如CREATETABLE和DROPTABLE,(建立表和刪除表)
 39     }catch(Exception e)//當try語句中s出現異常時,會執行catch中的語句
 40       {
 41         e.printStackTrace();//捕獲異常的語句
 42       }
 43      finally //finally作為異常處理的一部分,它只能用在try/catch語句中,並且附帶一個語句塊,表示這段語句最終一定會被執行(不管有沒有丟擲異常),經常被用在需要釋放資源的情況下。
 44      {
 45          DBUtil.close(conn);
 46      }
 47     return f;
 48 }
 49 
 50 public boolean insert_book(Bean_book bean) {//插入圖書資料的方法
 51     boolean f=false;
 52     String sql="insert into book_information(id,name,writer,press,num) values('"+bean.getId()+"','"+bean.getName()+"','"+bean.getWriter()+"','"+bean.getPress()+"','"+bean.getNum()+"')";
 53     Connection conn=DBUtil.getConnection();//資料庫連線,載入驅動
 54     Statement state=null;
 55     try
 56     {
 57         state=conn.createStatement();//例項化Statement物件,方便對sql語句進行操作
 58         System.out.println(conn);
 59         state.executeUpdate(sql);
 60         f=true;
 61         //執行資料庫更新操作用於執行INSERT、UPDATE或DELETE語句以及SQLDDL(資料定義語言)語句,
 62         //例如CREATETABLE和DROPTABLE,(建立表和刪除表)
 63     }catch(Exception e)//當try語句中s出現異常時,會執行catch中的語句
 64       {
 65         e.printStackTrace();//捕獲異常的語句
 66       }
 67      finally //finally作為異常處理的一部分,它只能用在try/catch語句中,並且附帶一個語句塊,表示這段語句最終一定會被執行(不管有沒有丟擲異常),經常被用在需要釋放資源的情況下。
 68      {
 69          DBUtil.close(conn);
 70      }
 71     return f;
 72 }
 73 
 74 public boolean insert_borrowing(Bean_borrowing bean) {//插入圖書資料的方法
 75     boolean f=false;
 76     String sql="insert into borrowing_information(id,name,writer,press,date,borrower) values('"+bean.getId()+"','"+bean.getName()+"','"+bean.getWriter()+"','"+bean.getPress()+"','"+bean.getDate()+"','"+bean.getBorrower()+"')";
 77     Connection conn=DBUtil.getConnection();//資料庫連線,載入驅動
 78     Statement state=null;
 79     try
 80     {
 81         state=conn.createStatement();//例項化Statement物件,方便對sql語句進行操作
 82         System.out.println(conn);
 83         state.executeUpdate(sql);
 84         f=true;
 85         //執行資料庫更新操作用於執行INSERT、UPDATE或DELETE語句以及SQLDDL(資料定義語言)語句,
 86         //例如CREATETABLE和DROPTABLE,(建立表和刪除表)
 87     }catch(Exception e)//當try語句中s出現異常時,會執行catch中的語句
 88       {
 89         e.printStackTrace();//捕獲異常的語句
 90       }
 91      finally //finally作為異常處理的一部分,它只能用在try/catch語句中,並且附帶一個語句塊,表示這段語句最終一定會被執行(不管有沒有丟擲異常),經常被用在需要釋放資源的情況下。
 92      {
 93          DBUtil.close(conn);
 94      }
 95     return f;
 96 }
 97 
 98 
 99 
100 public List<Bean_book> list(){//查詢所有方法
101     String sql="select * from book_information order by id ASC";
102     Connection conn=DBUtil.getConnection();
103     Statement st=null;
104     List<Bean_book> list=new ArrayList<>();
105     ResultSet rs=null;
106     Bean_book bean=null;
107     try {
108         st=conn.createStatement();
109         st.executeQuery(sql);
110         rs=st.executeQuery(sql);
111         while(rs.next()) {
112             int id=rs.getInt("id");
113             String name = rs.getString("name");
114             String writer = rs.getString("writer");
115             String press = rs.getString("press");
116             int num=rs.getInt("num");
117             bean=new Bean_book(id,name,writer,press,num);
118             list.add(bean);
119         }
120     } catch (SQLException e) {
121         // TODO Auto-generated catch block
122         e.printStackTrace();
123     }
124     finally {
125         DBUtil.close(rs, st, conn);
126     }
127     return list;
128 }
129 
130 public List<Bean_borrowing> borrower(int uid){//查詢所有方法
131     String sql="select * from borrowing_information where borrower='"+uid+"' order by date ASC";
132     Connection conn=DBUtil.getConnection();
133     Statement st=null;
134     List<Bean_borrowing> borrower=new ArrayList<>();
135     ResultSet rs=null;
136     Bean_borrowing bean=null;
137     try {
138         st=conn.createStatement();
139         st.executeQuery(sql);
140         rs=st.executeQuery(sql);
141         while(rs.next()) {
142             int id=rs.getInt("id");
143             String name = rs.getString("name");
144             String writer = rs.getString("writer");
145             String press = rs.getString("press");
146             String date = rs.getString("date");
147             bean=new Bean_borrowing(id,name,writer,press,date,uid);
148             borrower.add(bean);
149         }
150     } catch (SQLException e) {
151         // TODO Auto-generated catch block
152         e.printStackTrace();
153     }
154     finally {
155         DBUtil.close(rs, st, conn);
156     }
157     return borrower;
158 }
159 
160 public List<Bean_borrowing> list_overtime(){//查詢過期書
161     
162     Date date=new Date();
163     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
164     String now=sdf.format(date);
165     
166     String sql="select * from borrowing_information where date < '"+now+"' order by date ASC";
167     Connection conn=DBUtil.getConnection();
168     Statement st=null;
169     List<Bean_borrowing> list_overtime=new ArrayList<>();
170     ResultSet rs=null;
171     Bean_borrowing bean=null;
172     try {
173         st=conn.createStatement();
174         st.executeQuery(sql);
175         rs=st.executeQuery(sql);
176         while(rs.next()) {
177             int id=rs.getInt("id");
178             int borrower=rs.getInt("borrower");
179             String name = rs.getString("name");
180             String writer = rs.getString("writer");
181             String press = rs.getString("press");
182             String date1 = rs.getString("date");
183             bean=new Bean_borrowing(id,name,writer,press,date1,borrower);
184             list_overtime.add(bean);
185         }
186     } catch (SQLException e) {
187         // TODO Auto-generated catch block
188         e.printStackTrace();
189     }
190     finally {
191         DBUtil.close(rs, st, conn);
192     }
193     return list_overtime;
194 }
195 
196 
197 public List<Bean_book> searchByName(String str) throws SQLException{//查詢條件方法
198     String sql="select * from book_information where(name like '%"+str+"%')";
199     Connection conn=DBUtil.getConnection();
200     Statement st=null;
201     PreparedStatement pt = conn.prepareStatement(sql);
202     List<Bean_book> search=new ArrayList<>();
203     ResultSet rs=null;
204     Bean_book bean=null;
205     try {
206       pt=conn.prepareStatement(sql);
207         rs=pt.executeQuery();
208         while(rs.next()) {
209             int id=rs.getInt("id");
210             String name = rs.getString("name");
211             String writer = rs.getString("writer");
212             String press = rs.getString("press");
213             int num=rs.getInt("num");
214             bean=new Bean_book(id,name,writer,press,num);
215             search.add(bean);
216         }
217     } catch (SQLException e) {
218         // TODO Auto-generated catch block
219         e.printStackTrace();
220     }
221     finally {
222         DBUtil.close(rs, st, conn);
223     }
224     return search;
225 }
226 
227 public List<Bean_book> searchByWriter(String str) throws SQLException{//查詢條件方法
228     String sql="select * from book_information where(writer like '%"+str+"%')";
229     Connection conn=DBUtil.getConnection();
230     Statement st=null;
231     PreparedStatement pt = conn.prepareStatement(sql);
232     List<Bean_book> search=new ArrayList<>();
233     ResultSet rs=null;
234     Bean_book bean=null;
235     try {
236       pt=conn.prepareStatement(sql);
237         rs=pt.executeQuery();
238         while(rs.next()) {
239             int id=rs.getInt("id");
240             String name = rs.getString("name");
241             String writer = rs.getString("writer");
242             String press=rs.getString("press");
243             int num=rs.getInt("num");
244             bean=new Bean_book(id,name,writer,press,num);
245             search.add(bean);
246         }
247     } catch (SQLException e) {
248         // TODO Auto-generated catch block
249         e.printStackTrace();
250     }
251     finally {
252         DBUtil.close(rs, st, conn);
253     }
254     return search;
255 }
256 
257 public boolean update(Bean_book bean) {//更新自減方法
258     String sql="update book_information set num='"+bean.getNum()+"',name='"+bean.getName()+"',writer='"+bean.getWriter()+"',press='"+bean.getPress()+"'where id='"+bean.getId()+"'";
259     Connection conn=DBUtil.getConnection();
260     boolean f=false;
261     Statement st=null;
262     try {
263         st=conn.createStatement();
264         st.executeUpdate(sql);
265         f=true;
266     } catch (SQLException e) {
267         // TODO Auto-generated catch block
268         e.printStackTrace();
269     }
270     return f;
271 }
272 
273 public boolean delete_book(int id ) {//刪除方法
274     String sql="delete from book_information where id='"+id+"'";
275     boolean f=false;
276     Connection conn =DBUtil.getConnection();
277     Statement st=null;
278     try {
279         st=conn.createStatement();
280         st.executeUpdate(sql);
281         f=true;
282     } catch (SQLException e) {
283         // TODO Auto-generated catch block
284         e.printStackTrace();
285     }
286     finally{
287         DBUtil.close(st, conn);
288     }
289     return f;
290 }
291 
292 public boolean return_book(int id,int uid ) {//刪除方法
293     String sql="delete from borrowing_information where id='"+id+"' and borrower='"+uid+"'";
294     boolean f=false;
295     Connection conn =DBUtil.getConnection();
296     Statement st=null;
297     try {
298         st=conn.createStatement();
299         st.executeUpdate(sql);
300         f=true;
301     } catch (SQLException e) {
302         // TODO Auto-generated catch block
303         e.printStackTrace();
304     }
305     finally{
306         DBUtil.close(st, conn);
307     }
308     return f;
309 }
310 
311 }

4.Servlet

 1 package servlet;
 2 
 3 
 4 import java.io.IOException;
 5 import java.sql.Connection;
 6 
 7 import java.sql.DriverManager;
 8 import java.sql.PreparedStatement;
 9 import java.sql.ResultSet;
10 import java.text.SimpleDateFormat;
11 import java.util.Date;
12 
13 import javax.servlet.ServletException;
14 import javax.servlet.annotation.WebServlet;
15 import javax.servlet.http.HttpServlet;
16 import javax.servlet.http.HttpServletRequest;
17 import javax.servlet.http.HttpServletResponse;
18 
19 
20 
21 /**
22  * Servlet implementation class UserServlet
23  */
24 @WebServlet("/LoginServlet")
25 public class LoginServlet extends HttpServlet {
26     private static final long serialVersionUID = 1L;
27        
28     /**
29      * @see HttpServlet#HttpServlet()
30      */
31     public LoginServlet() {
32         super();
33         // TODO Auto-generated constructor stub
34     }
35 
36     /**
37      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
38      */
39     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
40         // TODO Auto-generated method stub
41         response.getWriter().append("Served at: ").append(request.getContextPath());
42     }
43          
44     /**
45      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
46      */
47     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
48         // TODO Auto-generated method stub
49         request.setCharacterEncoding("UTF-8");
50         response.setCharacterEncoding("UTF-8");
51         int uid=Integer.parseInt(request.getParameter("uid"));
52         String pass=String.valueOf(request.getParameter("password"));
53         String identity=String.valueOf(request.getParameter("identity"));
54         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
55         String date=sdf.format(new Date());
56         try {
57             Class.forName("com.mysql.cj.jdbc.Driver");
58             String url="jdbc:mysql://localhost:3306/book system?&useSSL=false&serverTimezone=UTC";
59             String username="root";
60             String password="whyjlbcdy2001";
61             Connection conn=DriverManager.getConnection(url,username,password);
62             
63             String sql="select * from user_information where uid='"+uid+"'and password='"+pass+"'and identity='"+identity+"'";
64             
65             PreparedStatement ps=conn.prepareStatement(sql);
66             ResultSet rs=ps.executeQuery();
67             if(rs.next()) {
68                 System.out.println(date+"  "+uid+" "+"login"+""+identity);
69                 System.out.println();
70                 request.setAttribute("uid", uid);
71                 if(identity.equals("讀者")){
72                     request.getRequestDispatcher("user_index.jsp").forward(request,response);
73                 }
74                 if(identity.equals("管理員")){
75                     request.getRequestDispatcher("admin_index.jsp").forward(request,response);
76                 }
77             }else{
78                 request.setAttribute("message", "使用者名稱或密碼錯誤");
79                 request.getRequestDispatcher("login.jsp").forward(request,response);
80             }
81         }catch(Exception e) {
82             e.printStackTrace();
83         }finally{
84             
85         }
86     }
87 
88 }
 1 package servlet;
 2 
 3 import java.io.IOException;
 4 import java.sql.SQLException;
 5 import java.util.List;
 6 
 7 import javax.servlet.ServletException;
 8 import javax.servlet.annotation.WebServlet;
 9 import javax.servlet.http.HttpServlet;
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
12 
13 import bean.Bean_book;
14 import dao.Dao;
15 
16 /**
17  * Servlet implementation class searchServlet_admin
18  */
19 @WebServlet("/searchServlet_admin")
20 public class SearchServlet_admin extends HttpServlet {
21     private static final long serialVersionUID = 1L;
22        
23     /**
24      * @see HttpServlet#HttpServlet()
25      */
26     public SearchServlet_admin() {
27         super();
28         // TODO Auto-generated constructor stub
29     }
30 
31     /**
32      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
33      */
34     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
35         //response.getWriter().append("Served at: ").append(request.getContextPath());
36         request.setCharacterEncoding("utf-8");
37         response.setCharacterEncoding("utf-8");
38         String cxfs=request.getParameter("cxfs");
39         System.out.print(cxfs);        
40         String str=request.getParameter("value");
41         Dao dao=new Dao();
42         List<Bean_book> list = null;         
43         try {
44             if("1".equals(cxfs)){
45                  list=dao.searchByName(str);
46              } 
47             if("2".equals(cxfs)){
48                  list=dao.searchByWriter(str);
49              } 
50             }catch (SQLException e) {
51              // TODO 自動生成的 catch 塊
52                 e.printStackTrace();
53              }
54         request.setAttribute("list", list);
55         request.getRequestDispatcher("delete book.jsp").forward(request,response);
56         System.out.print(list.size());
57     }
58     
59     /**
60      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
61      */
62     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
63         // TODO Auto-generated method stub
64         doGet(request, response);
65     }
66 
67 }
 1 package servlet;
 2 
 3 import java.io.IOException;
 4 import java.sql.SQLException;
 5 import java.util.List;
 6 
 7 import javax.servlet.ServletException;
 8 import javax.servlet.annotation.WebServlet;
 9 import javax.servlet.http.HttpServlet;
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
12 
13 import bean.Bean_book;
14 import dao.Dao;
15 
16 /**
17  * Servlet implementation class searchServlet
18  */
19 @WebServlet("/SearchServlet")
20 public class SearchServlet extends HttpServlet {
21     private static final long serialVersionUID = 1L;
22        
23     /**
24      * @see HttpServlet#HttpServlet()
25      */
26     public SearchServlet() {
27         super();
28         // TODO Auto-generated constructor stub
29     }
30 
31     /**
32      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
33      */
34     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
35         // TODO Auto-generated method stub
36         //response.getWriter().append("Served at: ").append(request.getContextPath());
37         request.setCharacterEncoding("utf-8");
38         response.setCharacterEncoding("utf-8");
39         String cxfs=request.getParameter("cxfs");
40         System.out.print(cxfs);
41         
42         String str=request.getParameter("value");
43          Dao dao=new Dao();
44          List<Bean_book> list = null;
45          
46          try {
47              if("1".equals(cxfs)){
48                      list=dao.searchByName(str);
49                  } 
50              if("2".equals(cxfs)){
51                      list=dao.searchByWriter(str);
52                  } 
53              } catch (SQLException e) {
54                  // TODO 自動生成的 catch 塊
55                  e.printStackTrace();
56              }
57          request.setAttribute("list", list);
58          request.getRequestDispatcher("list book.jsp").forward(request,response);
59          System.out.print(list.size());
60     }
61 
62     /**
63      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
64      */
65     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
66         // TODO Auto-generated method stub
67         doGet(request, response);
68     }
69 
70 }
  1 package servlet;
  2 
  3 import java.io.IOException;
  4 import java.io.UnsupportedEncodingException;
  5 import java.util.List;
  6 
  7 import javax.servlet.ServletException;
  8 import javax.servlet.annotation.WebServlet;
  9 import javax.servlet.http.HttpServlet;
 10 import javax.servlet.http.HttpServletRequest;
 11 import javax.servlet.http.HttpServletResponse;
 12 
 13 
 14  
 15 import java.util.Calendar;
 16 import java.util.Date;
 17 import java.text.ParseException;
 18 import java.text.SimpleDateFormat; 
 19 
 20 import bean.Bean_user;
 21 import bean.Bean_book;
 22 import bean.Bean_borrowing;
 23 import dao.Dao;
 24 
 25 /**
 26  * Servlet implementation class servlet
 27  */
 28 @WebServlet("/Servlet")
 29 public class Servlet extends HttpServlet {
 30     Dao dao = new Dao();
 31     private static final long serialVersionUID = 1L;
 32        
 33     /**
 34      * @see HttpServlet#HttpServlet()
 35      */
 36     public Servlet() {
 37         super();
 38         // TODO Auto-generated constructor stub
 39     }
 40     
 41     private void insert_user(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {// 42         // TODO Auto-generated method stub
 43         request.setCharacterEncoding("utf-8");
 44         int uid = Integer.parseInt(request.getParameter("uid"));
 45         String name = request.getParameter("name");
 46         String sex = request.getParameter("sex");
 47         String college= request.getParameter("college");
 48         String password= request.getParameter("password");
 49         String identity= request.getParameter("identity");
 50         Bean_user bean=new Bean_user(uid,name,sex,college,password,identity);
 51  
 52         if(dao.insert_user(bean)) {
 53             request.setAttribute("message", "新增成功");
 54             request.getRequestDispatcher("add user.jsp").forward(request, response);
 55         }
 56     }
 57     
 58     private void insert_book(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {// 59         // TODO Auto-generated method stub
 60         request.setCharacterEncoding("utf-8");
 61         
 62         int id = Integer.parseInt(request.getParameter("id"));
 63         String name = request.getParameter("name");
 64         String writer = request.getParameter("writer");
 65         String press= request.getParameter("press");
 66         int num = Integer.parseInt(request.getParameter("num"));
 67         Bean_book bean=new Bean_book(id,name,writer,press,num);
 68  
 69         if(dao.insert_book(bean)) {
 70             request.setAttribute("message", "新增成功");
 71             request.getRequestDispatcher("add book.jsp").forward(request, response);
 72         }
 73     }
 74     
 75     private void list(HttpServletRequest request, HttpServletResponse response) throws Exception {
 76         // TODO Auto-generated method stub
 77         request.setCharacterEncoding("UTF-8");
 78         String uid = request.getParameter("uid");
 79         //int uid = Integer.parseInt(request.getParameter("id"));
 80         List<Bean_book> list = dao.list();
 81         request.setAttribute("list", list);
 82         request.setAttribute("uid", uid);
 83 
 84         request.getRequestDispatcher("list book.jsp").forward(request,response);
 85     }
 86     
 87     private void Mylist(HttpServletRequest request, HttpServletResponse response) throws Exception {
 88         // TODO Auto-generated method stub
 89         request.setCharacterEncoding("UTF-8");
 90         String uid_string = request.getParameter("uid");
 91         int uid  = Integer.parseInt(uid_string);
 92         //int uid = Integer.parseInt(request.getParameter("id"));
 93         List<Bean_borrowing> borrower = dao.borrower(uid);
 94         request.setAttribute("list", borrower);
 95         request.setAttribute("uid", uid);
 96 
 97         request.getRequestDispatcher("my_list.jsp").forward(request,response);
 98     }
 99     
100     private void list_admin(HttpServletRequest request, HttpServletResponse response) throws Exception {
101         // TODO Auto-generated method stub
102         request.setCharacterEncoding("utf-8");
103         List<Bean_book> list_admin = dao.list();
104         request.setAttribute("list", list_admin);
105         request.getRequestDispatcher("delete book.jsp").forward(request,response);
106     }
107     
108     private void list_overtime(HttpServletRequest request, HttpServletResponse response) throws Exception {
109         // TODO Auto-generated method stub
110         request.setCharacterEncoding("UTF-8");
111         
112         String uid_string = request.getParameter("uid");
113         int uid  = Integer.parseInt(uid_string);
114         //int uid = Integer.parseInt(request.getParameter("id"));
115         List<Bean_borrowing> list_overtime = dao.list_overtime();
116         
117         request.setAttribute("list", list_overtime);
118         request.setAttribute("uid", uid);
119 
120         request.getRequestDispatcher("list_overtime.jsp").forward(request,response);
121     }
122     
123     
124     
125     @SuppressWarnings("deprecation")
126     private void borrow(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//127         // TODO Auto-generated method stub
128         request.setCharacterEncoding("utf-8");
129         Date date0=new Date();
130         date0.setMonth(date0.getMonth()+3);
131         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
132         String date=sdf.format(date0);
133         int id = Integer.parseInt(request.getParameter("id"));
134         String name = request.getParameter("name");
135         String writer = request.getParameter("writer");
136         String press = request.getParameter("press");
137         
138         int num= Integer.parseInt(request.getParameter("num"));
139         num=num-1;
140         
141         String uid_string = request.getParameter("uid");
142         int uid  = Integer.parseInt(uid_string);
143 
144 
145         Bean_book bean1=new Bean_book(id,name,writer,press,num);
146         Bean_borrowing bean2=new Bean_borrowing(id,name,writer,press,date,uid);
147 
148         dao.update(bean1);
149         dao.insert_borrowing(bean2);
150         request.setAttribute("uid", uid);
151         request.getRequestDispatcher("Servlet?method=list").forward(request, response);
152     }
153     
154     private void delete_book(HttpServletRequest request, HttpServletResponse response) throws Exception, IOException {//155         // TODO Auto-generated method stub
156         request.setCharacterEncoding("UTF-8");
157         int id=Integer.parseInt(request.getParameter("id"));
158         dao.delete_book(id); //進行資料庫的刪除操作
159         request.setAttribute("message", "刪除成功");
160         request.getRequestDispatcher("Servlet?method=list_admin").forward(request, response);
161     }
162     
163     private void return_book(HttpServletRequest request, HttpServletResponse response) throws Exception, IOException {//164         // TODO Auto-generated method stub        
165         request.setCharacterEncoding("UTF-8");
166         String uid_string = request.getParameter("uid");
167         int uid  = Integer.parseInt(uid_string);
168         int id=Integer.parseInt(request.getParameter("id"));       
169         dao.return_book(id,uid); //進行資料庫的刪除操作
170         request.setAttribute("message", "歸還成功");
171         request.setAttribute("uid", uid);
172         request.getRequestDispatcher("Servlet?method=Mylist").forward(request, response);
173     }
174 
175     /**
176      * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
177      */
178     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
179         // TODO Auto-generated method stub
180         request.setCharacterEncoding("utf-8");
181         String method=request.getParameter("method");
182          if("insert_user".equals(method)) {
183              insert_user(request,response);           
184             }
185          else if("insert_book".equals(method)) {
186              insert_book(request,response);
187          }
188          else if("list".equals(method)) {
189                 try {
190                     list(request,response);
191                 } catch (Exception e) {
192                     // TODO Auto-generated catch block
193                     e.printStackTrace();
194                 }
195          }
196          else if("list_overtime".equals(method)) {
197                 try {
198                     list_overtime(request,response);
199                 } catch (Exception e) {
200                     // TODO Auto-generated catch block
201                     e.printStackTrace();
202                 }
203          }
204          else if("list_admin".equals(method)) {
205                 try {
206                     list_admin(request,response);
207                 } catch (Exception e) {
208                     // TODO Auto-generated catch block
209                     e.printStackTrace();
210                 }
211          }
212          else if("Mylist".equals(method)) {
213                 try {
214                     Mylist(request,response);
215                 } catch (Exception e) {
216                     // TODO Auto-generated catch block
217                     e.printStackTrace();
218                 }
219          }
220          else if("borrow".equals(method)) {
221                 borrow(request,response);
222             }
223          else if("delete_book".equals(method)) {
224                 try {
225                     delete_book(request,response);
226                 } catch (Exception e) {
227                     // TODO Auto-generated catch block
228                     e.printStackTrace();
229                 }                
230             }
231          else if("return_book".equals(method)) {
232                 try {
233                     return_book(request,response);
234                 } catch (Exception e) {
235                     // TODO Auto-generated catch block
236                     e.printStackTrace();
237                 }                
238             }
239     }
240 
241     /**
242      * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
243      */
244     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
245         // TODO Auto-generated method stub
246         doGet(request, response);
247     }
248 
249 }

5.前端頁面

 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>登入</title>
 8 </head>
 9 <body>
10 <%
11         Object message = request.getAttribute("message");
12         if (message != null && !"".equals(message)) {
13     %>
14     <script type="text/javascript">
15               alert("<%=request.getAttribute("message")%>"); //彈出對話方塊
16     </script>
17     <%
18         }
19     %>
20 <form name="user" action="LoginServlet" method="post" onsubmit="return check()">
21       <table id="addTable" class="table table-bordered" align="center">                 
22       
23        <tr class="text-center row">
24                 <td class="col-sm-2">
25                     學號/工號
26                 </td>
27                 <td class="col-sm-4">
28                        <input type="number" class="form-control"  name="uid" id="uid" >
29                 </td>
30        </tr>           
31                   
32        <tr class="text-center row">
33                 <td class="col-sm-2">
34                       密碼
35                 </td>
36                 <td class="col-sm-4">
37                   <input type="password" class="form-control"  name="password" id="password">
38                 </td>
39        </tr>
40 
41 
42        <tr class="text-center row">
43                 <td>
44                   登陸身份
45                 </td>
46                 <td colspan="3">
47                   <select class="form-control" id="identity" name="identity">
48                     <option value="讀者">讀者</option>
49                     <option value="管理員">管理員</option>
50                   </select>
51                 </td>
52        </tr>
53        
54        
55         <tr class="text-center row" align="center">
56                 <td colspan="3">
57                     <input type="submit" value="登入" >   
58                 </td>
59        </tr>      
60        </table>
61 
62 </form>
63 <script type="text/javascript">
64         function check(){
65             if(user.uid.value==""||user.uid.value==null){
66                 alert("學號/工號為空!");
67                 return false;
68             }
69             if(user.password.value==""||user.password.value==null){
70                 alert("密碼為空!");
71                 return false;
72             }
73         }
74     </script>
75 </body>
76 </html>
登陸頁面
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3                <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 4 <!DOCTYPE html>
 5 <html>
 6 <head>
 7 <meta charset="UTF-8">
 8 <title>讀者功能頁</title>
 9 </head>
10 <body>
11 <%
12         Object uid = request.getAttribute("uid");
13         if (uid != null && !"".equals(uid)) {
14     %>
15     <script type="text/javascript">
16               alert("歡迎您!讀者"+<%=request.getAttribute("uid")%>); //彈出對話方塊
17     </script>
18     <%
19         }
20     %>
21 當前使用者:<%=uid %>    
22     <div align="center" font-size="30px">
23         <h1>讀者</h1>
24         <div>
25             <a  href="Servlet?method=list&uid=<%=uid%>">瀏覽圖書資訊</a>
26         </div>
27         <div>
28             <a href="Servlet?method=list&uid=<%=uid%>">查詢圖書資訊</a>
29         </div>
30         <div>
31             <a href="Servlet?method=list&uid=<%=uid%>">借閱圖書</a>
32         </div>
33         <div>
34             <a href="Servlet?method=Mylist&uid=<%=uid%>">瀏覽催還書目</a>
35         </div>
36         <div>
37             <a href="Servlet?method=Mylist&uid=<%=uid%>">歸還圖書</a>
38         </div>
39     </div>
40 </body>
41 </html>
讀者主頁
 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>管理員主頁</title>
 8 </head>
 9 <body>
10 <%
11         Object uid = request.getAttribute("uid");
12         if (uid != null && !"".equals(uid)) {
13     %>
14     <script type="text/javascript">
15               alert("工號"+<%=request.getAttribute("uid")%>+'你好!'); //彈出對話方塊
16     </script>
17     <%
18         }
19     %>
20 當前使用者:<%=uid %>     
21    <div align="center" font-size="30px">
22         <h1>管理員</h1>
23         <div>
24             <a  href="add user.jsp">新增使用者資訊</a>
25         </div>
26         <div>
27             <a href="add book.jsp">新增新書資訊</a>
28         </div>
29         <div>
30             <a href="Servlet?method=list_admin">刪除書目資訊</a>
31         </div>
32         <div>
33             <a href="Servlet?method=list_overtime&uid=<%=uid%>">列印催還書目</a>
34         </div>
35     </div>
36 </body>
37 </html>
管理員主頁
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3            <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 4 <!DOCTYPE html>
 5 <html>
 6 <head>
 7 <meta charset="UTF-8">
 8 <title>查詢</title>
 9 </head>
10 <body>
11 <%
12         Object uid = request.getAttribute("uid");
13     %>
14 當前使用者:<%=uid%>  
15     <div align="center">
16         <h1 >資訊列表</h1>
17         <h3>當前時間:<input  id="sysDate" style="font-size:18.72px;color:red;width: 320px;text-align: center;"></h3>
18           <h1> 
19         <form action="SearchServlet" method="post">
20         <select name="cxfs">
21   <option  id="cxfs"value ="1">書名</option>
22   <option  id="cxfs" value ="2">作者名</option>
23 </select>
24             <input type="text" id="value" name="value" placeholder="請輸入條件">
25             <input type="submit" id="select" name="select" value="查詢" />
26       </form>
27         
28         </h1>
29         <table >
30             <tr>
31                 <td>圖書編號</td>
32                 <td>書名</td>
33                 <td>作者名</td>
34                 <td>出版社名稱</td>
35                 <td>可借閱數量</td>
36                 <td align="center" colspan="2">操作</td>
37             </tr>
38             <c:forEach items="${list}" var="item">
39                 <tr>
40                     <td>${item.id}</td>
41                     <td>${item.name}</td>
42                     <td>${item.writer}</td>
43                     <td>${item.press}</td>
44                     <td>${item.num}</td>
45                     <td><a href="Servlet?method=borrow&id=${item.id}&name=${item.name}&writer=${item.writer}&press=${item.press}&num=${item.num}&uid=<%=uid%> " 
46                     onclick="next()">訂閱</a></td>
47                 </tr>
48             </c:forEach>
49         </table>
50     </div>
51 </body>
52 
53 <script type="text/javascript">
54 
55         /*---------- 動態獲取系統當前日期方法start ------*/
56         setInterval(
57                 "document.getElementById('sysDate').value=new Date().toLocaleString()+'  星期'+'日一二三四五六'.charAt(new Date().getDay());",
58                 1000);
59         setInterval(
60                 "document.getElementById('sysSysDate').value=new Date().toLocaleString();",
61                 1000);
62  
63         /*---------- 動態獲取系統當前日期方法end ------*/
64         var d = new Date();
65         d.setMonth(d.getMonth()+3);
66         d=d.toLocaleString();
67 
68 
69         function next(){
70             alert('訂閱成功!還書日期為'+d);
71         }
72         
73     
74 
75 </script>
76 </html>
讀者查詢書籍
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3      <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 4 <!DOCTYPE html>
 5 <html>
 6 <head>
 7 <meta charset="UTF-8">
 8 <title>我的借閱</title>
 9 </head>
10 <body>
11 <%
12         Object uid = request.getAttribute("uid");
13     %>
14 
15 當前使用者:<%=uid%> 
16 <div align="center">
17         <h1 >我的借閱</h1>
18         <h3>當前時間:<input  id="sysDate" style="font-size:18.72px;color:red;width: 320px;text-align: center;"></h3>
19 
20         <table >
21             <tr>
22                 <td>圖書編號</td>
23                 <td>書名</td>
24                 <td>作者名</td>
25                 <td>出版社名稱</td>
26                 <td>還書日期</td>
27                 <td align="center" colspan="2">操作</td>
28             </tr>
29             <c:forEach items="${list}" var="item">
30                 <tr>
31                     <td>${item.id}</td>
32                     <td>${item.name}</td>
33                     <td>${item.writer}</td>
34                     <td>${item.press}</td>
35                     <td>${item.date}</td>
36                     <td><a href="Servlet?method=return_book&id=${item.id}&uid=<%=uid%>" 
37                     >還書</a></td>
38                 </tr>
39             </c:forEach>
40         </table>
41     </div> 
42 
43 </body>
44 <script type="text/javascript">
45 
46         /*---------- 動態獲取系統當前日期方法start ------*/
47         setInterval(
48                 "document.getElementById('sysDate').value=new Date().toLocaleString()+'  星期'+'日一二三四五六'.charAt(new Date().getDay());",
49                 1000);
50         setInterval(
51                 "document.getElementById('sysSysDate').value=new Date().toLocaleString();",
52                 1000);
53  
54         /*---------- 動態獲取系統當前日期方法end ------*/
55 
56 </script>
57 </html>
根據讀者賬號查詢個人的借閱書籍
  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>新增新書資訊</title>
  8 </head>
  9 <body>
 10 <%
 11         Object message = request.getAttribute("message");
 12 
 13         if (message != null && !"".equals(message)) {
 14     %>
 15     <script type="text/javascript">
 16               alert("<%=request.getAttribute("message")%>"); //彈出對話方塊
 17     </script>
 18     <%
 19         }
 20     %>
 21 
 22 <form action="Servlet?method=insert_book" method="post">
 23 
 24       <table id="addTable" class="table table-bordered  ">
 25       
 26       <tr class="text-center row">
 27                 <td class="col-sm-2">
 28                 圖書編號
 29                 </td>
 30                 <td class="col-sm-4">
 31                     <input type="text" class="form-control"  name="id" id="id" >
 32                 </td>
 33        </tr>         
 34                   
 35       
 36        <tr class="text-center row">
 37                 <td class="col-sm-2">
 38                 書名
 39                 </td>
 40                 <td class="col-sm-4">
 41                        <input type="text" class="form-control"  name="name" id="name" >
 42                 </td>
 43        </tr>           
 44                   
 45 
 46        <tr class="text-center row">
 47                 <td class="col-sm-2">
 48                 作者名
 49                 </td>
 50                 <td class="col-sm-4">
 51                        <input type="text" class="form-control"  name="writer" id="writer" >
 52                 </td>
 53        </tr>
 54        
 55        <tr class="text-center row">
 56                 <td class="col-sm-2">
 57                 出版社名
 58                 </td>
 59                 <td class="col-sm-4">
 60                        <input type="text" class="form-control"  name="press" id="press" >
 61                 </td>
 62        </tr>
 63        
 64        <tr class="text-center row">
 65                 <td class="col-sm-2">
 66                 可借閱數量
 67                 </td>
 68                 <td class="col-sm-4">
 69                        <input type="text" class="form-control"  name="num" id="num" >
 70                 </td>
 71        </tr> 
 72        
 73              
 74        
 75        </table>
 76             <input type="submit" value="新增" onclick="check()">         
 77 </form> 
 78 </body>
 79 <script type="text/javascript">
 80         function check() //封裝一個<body>中做成點選事件的函式
 81         {
 82             if(document.getElementById('id').value=='') {
 83                   alert('圖書編號不能為空!');
 84                   document.getElementById('id').focus();
 85                   return false;
 86             }
 87             if(document.getElementById('name').value==''){
 88                   alert('書名不能為空!');
 89                     document.getElementById('name').focus();
 90                     return false;
 91             }
 92             if(document.getElementById('writer').value=='') {
 93                       alert('作者名不能為空!');
 94                       document.getElementById('writer').focus();
 95                       return false;
 96                }
 97             else if(document.getElementById('press').value==''){
 98                   alert('出版社名不能為空!');
 99                   document.getElementById('press').focus();
100                   return false;
101             }
102             if(document.getElementById('num').value=='') {
103                       alert('借閱數量不能為空!');
104                       document.getElementById('num').focus();
105                       return false;
106                }
107         }
108         
109     </script>
110 </html>
管理員新增書籍
  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>新增讀者資訊</title>
  8 </head>
  9 <body>
 10 <%
 11         Object message = request.getAttribute("message");
 12 
 13         if (message != null && !"".equals(message)) {
 14     %>
 15     <script type="text/javascript">
 16               alert("<%=request.getAttribute("message")%>"); //彈出對話方塊
 17     </script>
 18     <%
 19         }
 20     %>
 21 
 22 <form action="Servlet?method=insert_user" method="post">
 23 
 24       <table id="addTable" class="table table-bordered  ">
 25       
 26       <tr class="text-center row">
 27                 <td class="col-sm-2">
 28                 賬號
 29                 </td>
 30                 <td class="col-sm-4">
 31                     <input type="text" class="form-control"  name="uid" id="uid" >
 32                 </td>
 33        </tr>         
 34                   
 35       
 36        <tr class="text-center row">
 37                 <td class="col-sm-2">
 38                 姓名
 39                 </td>
 40                 <td class="col-sm-4">
 41                        <input type="text" class="form-control"  name="name" id="name" >
 42                 </td>
 43        </tr>
 44        
 45        <tr class="text-center row">
 46                 <td class="col-sm-2">
 47                 密碼
 48                 </td>
 49                 <td class="col-sm-4">
 50                     <input type="text" class="form-control"  name="password" id="password" >
 51                 </td>
 52        </tr>           
 53                   
 54               <tr>
 55                 <td class="col-sm-2">
 56                   性別
 57                 </td>
 58                 <td class="col-sm-4">
 59                           <input type="radio"  name="sex" id="sex" value="男"> 60                           <input type="radio"  name="sex" id="sex" value="女"> 61                 </td>
 62               </tr>
 63 
 64 
 65        <tr class="text-center row">
 66                 <td class="col-sm-2">
 67                 所在學院
 68                 </td>
 69                 <td class="col-sm-4">
 70                        <input type="text" class="form-control"  name="college" id="college" >
 71                 </td>
 72        </tr> 
 73        
 74         <tr class="text-center row">
 75                 <td>
 76                   身份
 77                 </td>
 78                 <td colspan="3">
 79                   <select class="form-control" id="identity" name="identity">
 80                     <option value="讀者">讀者</option>
 81                     <option value="管理員">管理員</option>
 82                   </select>
 83                 </td>
 84               </tr>
 85        
 86       
 87        </table>
 88             <input type="submit" value="新增" onclick="check()">         
 89 </form> 
 90 </body>
 91 <script type="text/javascript">
 92         function check() //封裝一個<body>中做成點選事件的函式
 93         {
 94             if(document.getElementById('uid').value=='') {
 95                   alert('賬號不能為空!');
 96                   document.getElementById('uid').focus();
 97                   return false;
 98             }
 99             if(document.getElementById('password').value==''){
100                       alert('密碼不能為空!');
101                   document.getElementById('password').focus();
102                   return false;
103               }
104             if(document.getElementById('name').value==''){
105                   alert('姓名不能為空!');
106                     document.getElementById('name').focus();
107                     return false;
108             }
109             if(document.getElementById('college').value==''){
110                   alert('所在學院不能為空!');
111                   document.getElementById('college').focus();
112                   return false;
113             }
114             if(document.getElementById('sex').value==''){
115                 alert('性別不能為空!');
116                 document.getElementById('sex').focus();
117                 return false;
118           }
119         }
120         
121     </script>
122 </html>
管理員新增使用者
 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3                <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
 4 <!DOCTYPE html>
 5 <html>
 6 <head>
 7 <meta charset="UTF-8">
 8 <title>刪除</title>
 9 </head>
10 <body>
11 <%
12         Object message = request.getAttribute("message");
13 
14         if (message != null && !"".equals(message)) {
15     %>
16     <script type="text/javascript">
17               alert("<%=request.getAttribute("message")%>"); //彈出對話方塊
18     </script>
19     <%
20         }
21     %>
22 
23     <div align="center">
24         <h1 >資訊列表</h1>
25           <h1> 
26         <form action="searchServlet_admin" method="post">
27         <select name="cxfs">
28   <option  id="cxfs"value ="1">書名</option>
29   <option  id="cxfs" value ="2">作者名</option>
30 </select>
31             <input type="text" id="value" name="value" placeholder="請輸入條件">
32             <input type="submit" id="select" name="select" value="查詢" />
33       </form>
34         
35         </h1>
36         <table >
37             <tr>
38                 <td>圖書編號</td>
39                 <td>書名</td>
40                 <td>作者名</td>
41                 <td>出版社名稱</td>
42                 <td>可借閱數量</td>
43                 <td align="center" colspan="2">操作</td>
44             </tr>
45             <c:forEach items="${list}" var="item">
46                 <tr>
47                     <td>${item.id}</td>
48                     <td>${item.name}</td>
49                     <td>${item.writer}</td>
50                     <td>${item.press}</td>
51                     <td>${item.num}</td>
52                     <td><a href="Servlet?method=delete_book&id=${item.id}">刪除</a></td>
53                 </tr>
54             </c:forEach>
55         </table>
56     </div>
57 </body>
58 </html>
管理員刪除書籍
 1 <meta charset="UTF-8">
 2 <title>超時圖書</title>
 3 </head>
 4 <body>
 5 <%
 6         Object uid = request.getAttribute("uid");
 7     %>
 8 
 9 當前使用者:<%=uid%> 
10 <div align="center">
11         <h1 >催還書目</h1>
12         <h3>當前時間:<input  id="sysDate" style="font-size:18.72px;color:red;width: 320px;text-align: center;"></h3>
13 <div id="dy">
14         <table >
15             <tr>
16                 <td>圖書編號</td>
17                 <td>書名</td>
18                 <td>作者名</td>
19                 <td>出版社名稱</td>
20                 <td>還書日期</td>
21                 <td>借閱人</td>
22             </tr>
23             <c:forEach items="${list}" var="item">
24                 <tr>
25                     <td>${item.id}</td>
26                     <td>${item.name}</td>
27                     <td>${item.writer}</td>
28                     <td>${item.press}</td>
29                     <td>${item.date}</td>
30                     <td>${item.borrower}</td>
31                 </tr>
32             </c:forEach> 
33         </table>
34         </div>
35     </div>
36         <br>
37         <table align="center">
38         <tr><td>
39         <input type="button" value="打    印"  onclick="PrintTable(dy)">
40         </td></tr>
41            </table>
42 </body>
43 
44 <script type="text/javascript">
45 
46         /*---------- 動態獲取系統當前日期方法start ------*/
47         setInterval(
48                 "document.getElementById('sysDate').value=new Date().toLocaleString()+'  星期'+'日一二三四五六'.charAt(new Date().getDay());",
49                 1000);
50         setInterval(
51                 "document.getElementById('sysSysDate').value=new Date().toLocaleString();",
52                 1000);
53  
54         /*---------- 動態獲取系統當前日期方法end ------*/
55         
56         function PrintTable(Id){
57         var mStr;
58         mStr = window.document.body.innerHTML ;
59         var mWindow = window;
60         window.document.body.innerHTML =Id.innerHTML;
61         mWindow.print();
62         window.document.body.innerHTML = mStr;
63 }
64         
65 </script>
66 
67 </html>
管理員檢視有哪些書籍超出借閱時間還沒有歸還

6.總結

1.增加了登入驗證功能,賬號資訊在資料庫中存在才能登入。

2.將賬號資訊進行跳轉傳遞,在主頁顯示當前使用者

3.完善了圖書借閱相關功能,例如查詢個人借閱(通過賬號資訊的引數傳遞實現)以及催還書目名單列印(JS呼叫瀏覽器列印功能)。

4.增加了更多的視窗提示,提升對使用者的友好度。

7.資料庫後臺建表