Java Web Programming_ Realization of Book Borrowing Website--Book Borrowing

Preview Report

Experimental Topic: Realization of Book Borrowing Website - Book Borrowing

Preview content:

  1. Features of Servlet Technology

Convenience Cross-platform flexibility and scalability

2. An overview of JSP

The full name of JSP is Java Server Pages, which is a dynamic web page development technology based on the Servlet specification. In JSP files, HTML code coexists with Java code, where HTML code is used to display static content in a Web page and Java code is used to display dynamic content in a Web page.

3. Introduction to JavaBean properties

JavaBean attributes, and member variables are not a concept; they come in the form of method definitions, which must follow certain naming conventions.

4. An overview of JDBC

The full name of DBC is Java Database Connectivity, which is a set of Java APIs for executing SQL statements. Applications can connect to relational databases through this set of APIs and use SQL statements to query, update, add, and delete data in the database.

5. Introduction of MVC controller

Controller is the part of the application that handles user interaction. It reads data from views, controls user input, and sends data to models.

  1. A typical DAO implementation should have components

(1) A DAO factory class;

(2) A DAO interface;

(3) A specific class that implements the DAO interface;

(4) Data transfer objects (sometimes called value objects)

 

Experimental purposes and requirements (and major experimental instruments and equipment):

1. Master the basic characteristics, life cycle and programming method of Servlet;

2. Master the basic features and programming methods of JSP;

3. Master the basic features and programming methods of JavaBean.

4. Master the programming characteristics of MVC and DAO design modes;

5. Use MVC and DAO design mode to design the function of book borrowing in book borrowing website.

The main equipment used in this experiment is the built-in computer.

Experimental Principles (Methods and Principle Analysis):

  1. navigation.jsp Administrator Navigation Bar Interface
  2. banner.jsp: Header Interface
  3. caseinfo.java. Bookshelf Entity Class
  4. Borrowinfo.java. Book borrowing entity class
  5. book_borrow.jsp Book Borrowing Setup Interface
  6. Book_back.jsp Book Return Interface
  7. bookcase_queryall.jsp Bookshelf Information Setup Interface
  8. bookcase_add.jsp Bookshelf Information Add Interface
  9. bookcase_update.jsp Bookshelf Information Modification Interface
  10. BookCaseAdd Servlet.java Bookshelf Information Add Function Controller Class
  11. BookCaseQueryAllServlet.java Bookshelf Information Function Controller Class
  12. BookCaseUpdateServlet.java. Bookshelf Information Delete Function Controller Class
  13. BookBorrow Servlet.java Books Borrowing Function Controller Class
  14. BookRack Servlet.java Book Return Function Controller Class
  15. BookCaseDAO.java. Bookshelf Information Function Interface Class
  16. BookborrowDAO.java. Book borrowing function interface class
  17. bookCaseDAOImpl.java: bookshelf information function implementation class
  18. BookborrowDAOImpl.java: book borrowing function implementation class
  19. DAOFactory.java factory class
  20. DBConnection.java: database connection class
  21. web.xml configuration file

Experimental steps (program code and process):

1.caseinfo.java  
package vo;
public class bookcase {
private   int bookcaseid;
private   String  bookcasename;
public int getBookcaseid() {
return bookcaseid;
}
public void setBookcaseid(int bookcaseid) {
this.bookcaseid = bookcaseid;
}
public String getBookcasename() {
return bookcasename;
}
public void setBookcasename(String bookcasename) {
this.bookcasename = bookcasename;
}
}
2,Borrowinfo.java
package vo;
import java.sql.Date;
public class BookBorrow {
int id;
int bookid;
int readerid;
Date bborrowtime;
Date bytime;
Date bbacktime;
int renew;
double fine;
int borrownumber;
String bookname;
int over1;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getBookid() {
return bookid;
}
public void setBookid(int bookid) {
this.bookid = bookid;
}
public int getReaderid() {
return readerid;
}
public void setReaderid(int readerid) {
this.readerid = readerid;
}
public Date getBborrowtime() {
return bborrowtime;
}
public void setBborrowtime(Date bborrowtime) {
this.bborrowtime = bborrowtime;
}
public Date getBytime() {
return bytime;
}
public void setBytime(Date bytime) {
this.bytime = bytime;
}
public Date getBbacktime() {
return bbacktime;
}
public void setBbacktime(Date bbacktime) {
this.bbacktime = bbacktime;
}
public int getRenew() {
return renew;
}
public void setRenew(int renew) {
this.renew = renew;
}
public double getFine() {
return fine;
}
public void setFine(double fine) {
this.fine = fine;
}
public int getBorrownumber() {
return borrownumber;
}
public void setBorrownumber(int borrownumber) {
this.borrownumber = borrownumber;
}
public String getBookname() {
return bookname;
}
public void setBookname(String bookname) {
this.bookname = bookname;
}
public int getOver() {
return over1;
}
public void setOver1(int over1) {
this.over1 = over1;
}
public void setTotal(int int1) {		
}
public void setTotal1(int int1) {		
}	
}

2.book_borrow.jsp
 <%@include file="banner.jsp"%>
 <%@include file="navigation.jsp"%>
  
<table width="778"  border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td valign="top" bgcolor="#FFFFFF">
<table width="100%" height="509"  border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="tableBorder_gray">
<tr>
<td height="27" valign="top" style="padding:5px;" class="word_orange">
Current location: book borrowing &gt; Book borrowing &gt;&gt;&gt;</td>
</tr>
<tr>
<td align="center" valign="top" style="padding:5px;">
<table width="100%"  border="0" cellspacing="0" cellpadding="0">
<form name="form1" method="post" action="BorrowServlet">
<tr>
<tdheight="47"background="Images/borrowBackRenew.gif">
&nbsp;</td>
</tr>
<tr>
<tdheight="72"align="center"valign="top"background="Images/main_booksort_1.gif"bgcolor="#F8BF73">
<tablewidth="96%"border="0"cellpadding="1"cellspacing="0"bordercolor="#FFFFFF"bgcolor="#F8BF73">
<tr>
<tdvalign="top"bgcolor="#F8BF73">
<tablewidth="100%"border="0"cellpadding="0"cellspacing="0"bgcolor="#FFFFFF">
<%inti=Integer.parseInt(request.getParameter("i"));if(i==1){%>
<tr>
<td>
<tablewidth="90%"height="21"border="0"cellpadding="0"cellspacing="0">
<tr>
<tdwidth="24%"height="18"style="padding-left:7px;padding-top:7px;">
<imgsrc="Images/reader_checkbg.jpg"width="142"height="18">
</td>
<tdwidth="76%"style="padding-top:7px;">
Reader number:<inputname="readerNo"type="text"id="readerNo"value=""size="24">
&nbsp;<inputname="Button"type="button"class="btn_grey"value="Determine"onClick="checkreader(form1)">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<tdheight="13"align="center"style="padding-left:7px">
<hrwidth="90%"size="1">
</td>
</tr>
<tr>
<tdalign="center">
<tablewidth="96%"border="0"cellpadding="0"cellspacing="0">
<tr>
surname&nbsp;&nbsp;&nbsp;&nbsp;name:<inputtype="text"name="readername"id="readername"value="">
<br>
Reader type:<inputname="rtypename"type="text"id="rtypename"value="">
<br>
Quantity available for borrowing:<inputname="number1"type="text"id="number1"value=""size="17">
book&nbsp;<br>
ID number:<inputname="idcard"type="text"id="1"value="">
<br>
Quantity borrowed:<inputname="borrownumber"type="text"id="borrownumber"value=""size="17">
book&nbsp;<br>
</tr>
</table>
<tablewidth="100%"border="0"cellpadding="0"cellspacing="0"bgcolor="#FFFFFF">
<%}		else		{%>
<tr>
<td>
<tablewidth="90%"height="21"border="0"cellpadding="0"cellspacing="0">
<tr>
<tdwidth="24%"height="18"style="padding-left:7px;padding-top:7px;">
<imgsrc="Images/reader_checkbg.jpg"width="142"height="18">
</td>
<tdwidth="76%"style="padding-top:7px;">
Reader number:<inputname="readerNo"type="text"id="readerNo"value="<%=session.getAttribute("readerid")%>
"size="24">
&nbsp;<inputname="Button"type="button"class="btn_grey"value="Determine"onClick="checkreader(form1)">
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<tablewidth="90%"height="21"border="0"cellpadding="0"cellspacing="0">
<%	ReaderInforeaderinfo=(ReaderInfo)session.getAttribute("readerinfo");	%>
</table>
</td>
</tr>
<tr>
<tdalign="center">
<tablewidth="96%"border="0"cellpadding="0"cellspacing="0">
<tr>
<tdheight="27">
surname&nbsp;&nbsp;&nbsp;&nbsp;Name:<inputname="readername"type="text"id="readername"value="<%=readerinfo.getReadername()%>
">
</td>
<td>
Reader type:<inputname="rtypename"type="text"id="rtypename"value="<%=readerinfo.getReadertypename()%>
">
</td>
<td>
Quantity available for borrowing:<inputname="number1"type="text"id="number1"value="<%=readerinfo.getNumber()%>
"size="17">
book&nbsp;</td>
</tr>
<tr>
<td>
Document number:<inputname="idcard"type="text"id="1"value="<%=readerinfo.getIdcard()%>
">
</td>
<td>
Quantity borrowed:<inputname="borrownumber"type="text"id="borrownumber"value="<%=readerinfo.getBorrownumber()%>
"size="17">
book&nbsp;</td>
</tr>
</table>
<%}%>
<tr>
<tr>
<tdheight="32"background="Images/borrow_if.gif">
&nbsp;Add based on:<inputname="f"type="radio"class="noborder"value="barcode"checked>
Book Number&nbsp;&nbsp;
<inputname="inputkey"type="text"id="inputkey"size="50">
<inputname="Submit2"type="button"class="btn_grey"value="Determine"onClick="checkbook(form1)">
<inputname="Button"type="button"class="btn_grey"value="Complete Borrowing"onClick="window.location.href='book_borrow.jsp?i=2'">
</td>
</tr>
<tdvalign="top"bgcolor="#FCEC9A"style="padding:5px">
<tablewidth="99%"border="1"cellpadding="0"cellspacing="0"bordercolor="#FFFFFF"bordercolorlight="#FFFFFF"bordercolordark="#F6B83B"bgcolor="#FFFFFF">
<tralign="center"bgcolor="#F9D16B">
<tdwidth="29%"height="25">
Book Name</td>
<tdwidth="12%">
hours of loan service</td>
<tdwidth="14%">
Time due</td>
<tdwidth="17%">
Existing Quantity</td>
<tdwidth="14%">
Inventory</td>
<%if(i!=1){List<BookBorrow>
allbookborrow=(List<BookBorrow>
)session.getAttribute("allbookborrow");for(intj=0;j<allbookborrow.size();j++){BookBorrowbookborrow=allbookborrow.get(j);%>
</tr>
<tdstyle="padding:5px;">
<%=bookborrow.getBookname()%>
</td>
<tdstyle="padding:5px;">
<%=bookborrow.getBborrowtime()%>
</td>
<tdstyle="padding:5px;">
<%=bookborrow.getBytime()%>
</td>
</tr>
<%}}%>
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</form>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
                 
4.Book_back.jsp
<%@pageimport="java.text.SimpleDateFormat"%>
<%@pageimport="java.text.DateFormat"%>
<%@pagecontentType="text/html;charset=gb2312"language="java"import="java.sql.*,vo.*,java.util.*"errorPage=""%>
<%@pageimport="java.util.*"%>
<html>
<head>
<title>Book Management System</title>
<linkhref="CSS/style.css"rel="stylesheet">
<scriptlanguage="javascript">functioncheckreader(form){
if(form.barcode.value==""){
alert("Please enter your reader's barcode!");form.barcode.focus();return;
}
form.submit();
}
</script>
</head>
<bodyonLoad="clockon(bgclock)">
<%@includefile="banner.jsp"%>
<%@includefile="navigation.jsp"%>
<tablewidth="778"border="0"cellspacing="0"cellpadding="0"align="center">
<tr>
<tdvalign="top"bgcolor="#FFFFFF"><tablewidth="100%"height="558"border="0"align="center"cellpadding="0"cellspacing="0"bgcolor="#FFFFFF"class="tableBorder_gray">
<tr>
<tdheight="27"valign="top"style="padding:5px;"class="word_orange">&nbsp;Current location: book borrowing&gt;Book Return&gt;&gt;&gt;</td>
</tr>
<tr>
<tdalign="center"valign="top"style="padding:5px;"><tablewidth="100%"border="0"cellspacing="0"cellpadding="0">
<tr>
<tdheight="47"background="Images/borrowBackRenew_back.gif">&nbsp;</td>
</tr>
<tr>
<tdheight="72"align="center"valign="top"background="Images/main_booksort_1.gif"bgcolor="#F8BF73"><tablewidth="96%"border="0"cellpadding="1"cellspacing="1"bordercolor="#F8BF73">
<%
inti=Integer.parseInt(request.getParameter("i"));
if(i==1){
%>
<tr>
<tdvalign="top"bgcolor="#F8BF73">
<tablewidth="100%"border="0"cellpadding="0"cellspacing="0"bgcolor="#FFFFFF">
<formname="form1"method="post"action="BorrowBackServlet">
<tr>
<td><tablewidth="90%"height="21"border="0"cellpadding="0"cellspacing="0">
<tr>
<tdwidth="24%"height="18"style="padding-left:7px;padding-top:7px;"><imgsrc="Images/reader_checkbg.jpg"width="142"height="18"></td>
Reader number:
<inputname="barcode"type="text"id="barcode"value=""size="24">
&nbsp;
<inputname="Button"type="button"class="btn_grey"value="Determine"onClick="checkreader(form1)"><br>
</tr>
</table></td>
</tr>
<tr>
<tdheight="13"align="left"style="padding-left:7px;"><hrwidth="90%"size="1"></td>
</tr>
<tr>
<tdalign="center"><tablewidth="96%"border="0"cellpadding="0"cellspacing="0">
<tr>
surname&nbsp;&nbsp;&nbsp;&nbsp;Name:
<inputname="readername"type="text"id="readername"value=""><br>
Reader type:
<inputname="readerType"type="text"id="readerType"value=""><br>
Quantity available for borrowing:
<inputname="number"type="text"id="number"value=""size="17">
book
&nbsp;<br>
</tr>
<tr>
Document number:
<inputname="paperNo"type="text"id="paperNo"value=""><br>
Quantity borrowed:
<inputname="borrownumber"type="text"id="number"value=""size="17">
book
&nbsp;<br>
<td>Days overdue:<fontcolor="red">gules</font>Is overdue&nbsp;
<fontcolor="blue">blue</font>Is Renewable</td>
</tr>
</table></td>
</tr>				
</form>
</table></td>
</tr>
<tr>
<tdvalign="top"><tablewidth="100%"height="35"border="1"cellpadding="0"cellspacing="0"bordercolor="#FFFFFF"bordercolorlight="#FFFFFF"bordercolordark="#F6B83B"bgcolor="#FFFFFF">
<tralign="center"bgcolor="#e3F4F7">
<tdwidth="24%"height="25"bgcolor="#FFF9D9 ">Book Name</td>
<tdwidth="12%"bgcolor="#FFF9D9 ">Borrowing Time</td>
<tdwidth="13%"bgcolor="#FFF9D9 ">Should Return Time </td>
<tdwidth="13%"bgcolor="#FFF9D9 ">Days Overdue </td>
<tdwidth="13%"bgcolor="#FFF9D9 ">Fine</td>
<tdwidth="14%"bgcolor="#FFF9D9">ISBN</td>
<tdwidth="12%"bgcolor="#FFF9D9 ">Bookshelf</td>
<tdwidth="12%"bgcolor="#FFF9D9 "><inputname=" Button22 "type=" button "class=" btn_ Grey "value=" finishes returning "onClick=" window. Location. Href='bookBack. Jsp''></td>
</tr>
</table>
</td>
</tr>
<%}%>
<%
if(i!=1){
%>
<tr>
<tdvalign="top"bgcolor="#F8BF73">
<tablewidth="100%"border="0"cellpadding="0"cellspacing="0"bgcolor="#FFFFFF">
<formname="form1"method="post"action="BorrowBackServlet">
<%ReaderInforeaderinfo=(ReaderInfo)session.getAttribute("readerinfo");%>
<tr>
<td><tablewidth="90%"height="21"border="0"cellpadding="0"cellspacing="0">
<tr>
<tdwidth="24%"height="18"style="padding-left:7px;padding-top:7px;"><imgsrc="Images/reader_checkbg.jpg"width="142"height="18"></td>
<tdwidth="76%"style="padding-top:7px;">Reader number:
<inputname="barcode"type="text"id="barcode"value="<%=readerinfo.getReaderid()%>"size="24">
&nbsp;
<inputname="Button"type="button"class="btn_grey"value="Determine"onClick="checkreader(form2)"></td>
</tr>
</table></td>
</tr>
<tr>
<tdheight="13"align="left"style="padding-left:7px;"><hrwidth="90%"size="1"></td>
</tr>
<tr>
<tdalign="center"><tablewidth="96%"border="0"cellpadding="0"cellspacing="0">
<tr>
<tdheight="27">surname&nbsp;&nbsp;&nbsp;&nbsp;Name:
<inputname="readername"type="text"id="readername"value="<%=readerinfo.getReadername()%>"></td>
<td>Reader type:
<inputname="readerType"type="text"id="readerType"value="<%=readerinfo.getReadertypename()%>"></td>
<td>Quantity available for borrowing:
<inputname="number"type="text"id="number"value="<%=readerinfo.getNumber()%>"size="17">
book
&nbsp;</td>
</tr>
<tr>
<td>Document number:
<inputname="paperNo"type="text"id="paperNo"value="<%=readerinfo.getIdcard()%>"></td>
<td>Quantity borrowed:
<inputname="borrownumber"type="text"id="number"value="<%=readerinfo.getBorrownumber()%>"size="17">
book
&nbsp;</td>
<td>Days overdue:<fontcolor="red">gules</font>Is overdue&nbsp;
<fontcolor="blue">blue</font>Is Renewable</td>
</tr>
</table></td>
</tr>				
</form>
</table>
<%}%>
</td>
</tr>
<%
if(i!=1){
%>
<tr>
<tdvalign="top"><tablewidth="100%"height="35"border="1"cellpadding="0"cellspacing="0"bordercolor="#FFFFFF"bordercolorlight="#FFFFFF"bordercolordark="#F6B83B"bgcolor="#FFFFFF">
<tralign="center"bgcolor="#e3F4F7">
<tdwidth="24%"height="25"bgcolor="#FFF9D9 ">Book Name</td>
<tdwidth="12%"bgcolor="#FFF9D9 ">Borrowing Time</td>
<tdwidth="13%"bgcolor="#FFF9D9 ">Should Return Time </td>
<tdwidth="13%"bgcolor="#FFF9D9 ">Days Overdue </td>
<tdwidth="13%"bgcolor="#FFF9D9 ">Fine</td>
<tdwidth="14%"bgcolor="#FFF9D9 ">In-stock </td>
<tdwidth="12%"bgcolor="#FFF9D9 ">Inventory </td>
<tdwidth="12%"bgcolor="#FFF9D9 "><inputname=" Button22 "type=" button "class=" btn_ Grey "value=" finishes returning "onClick=" window. Location. Href='bookBack. Jsp''></td>
</tr>
<%
List<BookBorrow>allbookborrow=(List<BookBorrow>)session.getAttribute("allbookborrow");
for(intj=0;j<allbookborrow.size();j++){
BookBorrowbookborrow=allbookborrow.get(j);
%>
<tr>
<inputname="borrowid"type="hidden"value="<%=bookborrow.getId()%>"/>
<inputname="bookid"type="hidden"value="<%=bookborrow.getBookid()%>"/>
<tdheight="25"style="padding:5px;">&nbsp;<%=bookborrow.getBookname()%></td>
<tdstyle="padding:5px;">&nbsp;<%=bookborrow.getBborrowtime()%></td>
<tdstyle="padding:5px;">&nbsp;<%=bookborrow.getBytime()%></td>
<%intover1=bookborrow.getOver();
if(over1<0){
over1=-over1;
doublefine=over1*1.5;%>
<tdstyle="padding:5px;">&nbsp;<fontcolor="red">Overdue<%=over1%>day</font></td>
<tdstyle="padding:5px;">&nbsp;<fontcolor="red"><%=fine%></font></td>
<%}else{%>
<tdstyle="padding:5px;">&nbsp;<fontcolor="blue"><%=over1%>Days after expiration</font></td>
<tdstyle="padding:5px;">&nbsp;</td>
<%}%>
<tdwidth="12%"align="center"><ahref="BookReturnServlet?borrowid=<%=bookborrow.getId()%>&bookid=<%=bookborrow.getBookid()%>">return</a>&nbsp;</td>
</tr>
<%}%>
</table>
</td>
</tr>
<%}%>
</table></td>
</tr>
<tr>
<tdheight="19"background="Images/main_booksort_2.gif">&nbsp;</td>
</tr>
</table></td>
</tr>
</table>
<%@includefile="copyright.jsp"%></td>
</tr>
</table>
</body>
</html>

5.bookcase_queryall.jsp
<body>     
<%@include file="banner.jsp" %>     
<%@include file="navigation.jsp" %>     
<table width="778"  border="0" cellspacing="0" cellpadding="0" align="center">      
<tr>         
<td height="385" valign="top" bgcolor="#FFFFFF">
<table width="99%" height="341"  border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="tableBorder_gray">       
<tr>         
<td height="341" valign="top" style="padding:5px;">
<table width="98%" height="295"  border="0" cellpadding="0" cellspacing="0">      
<tr>          
<td height="22" valign="top" class="word_orange">Current location: bookshelf management information &gt; Bookshelf Type Settings &gt;&gt;&gt;
</td>      
</tr>      
<tr>        
<td height="273" align="center" valign="top">          
<table width="100%"  border="0" cellspacing="0" cellpadding="0">            
<tr>           
<td>
<a href="bookcase_add.jsp" >Add bookshelf type information
</a> 
</td>                   
</tr>          
</table>   
<table width="91%"  border="1" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF" bordercolordark="#F6B83B" bordercolorlight="#FFFFFF">  
<tr align="center" bgcolor="#e3F4F7">    
<td width="30%" bgcolor="#F9D16B ">Bookshelf Type Number
</td>    
<td width="40%" bgcolor="#F9D16B "> bookshelf type name
</td>    
<td width="16%" bgcolor="#F9D16B ">Modify
</td>    
<td width="14%" bgcolor="#F9D16B ">Delete
</td>  
</tr>
<!-- Value Display allBookcase(List) Conversation  for-Bookcase-bookcaseid  bookcasename -->
<%    List
<bookcase> allbookcase = (List
<bookcase>) session.getAttribute("allbookcase");    
for(int i=0;i
<allbookcase.size();i++){    bookcase bookcase=allbookcase.get(i); %>  
<tr>   
<td style="padding:5px;">
<%=bookcase.getBookcaseid()%>
</td>   
<!-- display -->    
<td style="padding:5px;">
<%=bookcase.getBookcasename()%>
</td>    
<td align="center">
<a href="BookcaseSearchServlet?bookcaseid=
<%=bookcase.getBookcaseid()%>">modify
</a>
</td>    
<td align="center">
<a href="BookcaseDeleteServlet?bookcaseid=
<%=bookcase.getBookcaseid()%>">delete
</a>
</td>   
</tr>
<%} %> 
</table>
</td>      
</tr>    
</table>
</td>  
</tr>
</table>
<%@ include file="copyright.jsp"%>
</td>  
</tr>
</table>  
</body>

6.bookcase_add.java
<table width="292" height="175" border="0" cellpadding="0" cellspacing="0" background="Images/subBG.jpg">
<tr>
<td valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="3%" height="25">&nbsp;</td>
<td width="94%">&nbsp;</td>
<td width="3%">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td><table width="100%" height="131"  border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="center" valign="top">
<form name="form1" method="post" action="BookcaseAddServlet">
<table width="100%" height="114"  border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="74" align="center">Bookshelf type number:
<input name="bookcaseid" case="text"><br>
Shelf type name:
<input name="bookcasename" case="text"></td>
</tr>
<tr>
<td align="center" style="width: 177px; "><input name="Submit3" case="submit" class="btn_grey" value="Preservation">
&nbsp;
<input name="Submit22" case="button" class="btn_grey" value="Close" onClick="window.close();"></td>

7.bookcase_update.jsp
<form name="form1" method="post" action="BookcaseUpdateServlet">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="50" align="center">  Shelf type name:
<%    List<bookcase> updatebookcase=new ArrayList<bookcase>();
updatebookcase=(List<bookcase>)session.getAttribute("updatebookcase"); 
for(int i=0;i<updatebookcase.size();i++){
bookcase  bookcase=updatebookcase.get(i);	
%>  <input name="bookcaseid" case="hidden" value="<%=bookcase.getBookcaseid() %>">
<input name="bookcasename" case="text" value="<%=bookcase.getBookcasename() %>"/>
<%
} %>    
</td> 
</tr>
<tr>
<td height="35" align="center"><input name="Submit" case="submit" class="btn_grey" value="Preservation">
&nbsp;
<input name="Submit2" case="reset" class="btn_grey" value="Reset">
&nbsp;
<input name="Submit3" case="button" class="btn_grey" onClick="window.close()" value="Close"></td>
</tr>
</table>
</form>

8.BookcaseAddServlet.java
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentcase("text/html;charset=gb18030");
request.setCharacterEncoding("gb18030");
bookcase bookcase=new bookcase();
bookcase.setBookcaseid(Integer.parseInt(request.getParameter("bookcaseid")));
bookcase.setBookcasename(request.getParameter("bookcasename"));
try {
if(DAOFactory.getBookcaseDAOInstance().doCreate(bookcase)){
request.getRequestDispatcher("BookcaseQueryAllServlet").forward(request, response);
}
} catch (Exception e) {
e.printStackTrace();
}
}

9.BookCaseUpdteServlet.java
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentcase("text/html;charset=gb18030");
request.setCharacterEncoding("gb18030");
String bookcasename = request.getParameter("bookcasename");
int bookcaseid = Integer.parseInt(request.getParameter("bookcaseid"));
bookcase bookcase=new bookcase();
bookcase.setBookcaseid(bookcaseid);
bookcase.setBookcasename(bookcasename);
try {
if(DAOFactory.getBookcaseDAOInstance().doUpdate(bookcase)){
request.getRequestDispatcher("BookcaseQueryAllServlet").forward(request, response);
}
} catch (Exception e) {
e.printStackTrace();
}}

10.BookCaseDeleteServlet.java
throws ServletException, IOException {
response.setContentcase("text/html;charset=gb18030");
request.setCharacterEncoding("gb18030");
int bookcaseid=Integer.parseInt(request.getParameter("bookcaseid"));
try {
if(DAOFactory.getBookcaseDAOInstance().doDelete(bookcaseid)){
request.getRequestDispatcher("BookcaseQueryAllServlet").forward(request, response);
}
} catch (Exception e) {
e.printStackTrace();
}
}
11.BookCaseQueryAllServlet.java
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("gb18030");
response.setContentcase("text/html;charset=gb18030");
try {
List<bookcase> allbookcase=DAOFactory.getBookcaseDAOInstance().findAllbookcase();
request.getSession().setAttribute("allbookcase", allbookcase);
request.getRequestDispatcher("bookcase_queryall.jsp").forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}

12.BookBorrow Servlet.java 
response.setContentcase("text/html;charset=gb18030");
request.setCharacterEncoding("gb18030");
int readerid=Integer.parseInt(request.getParameter("readerNo"));
try {
String bookid=request.getParameter("inputkey");
if(bookid.equals(null)==false&&bookid.equals("")==false){
int bookid1=Integer.parseInt(request.getParameter("inputkey"));
DAOFactory.getBookBorrowDAOInstance().borrowBook(bookid1, readerid);
}
ReaderInfo readerinfo=DAOFactory.getReaderInfoDAOInstance().findReaderInfoById(readerid);
List<BookBorrow> allbookborrow=DAOFactory.getBookBorrowDAOInstance().findBookBorrowByReaderId(readerid);
request.getSession().setAttribute("allbookborrow", allbookborrow);
request.getSession().setAttribute("readerinfo", readerinfo);
request.getSession().setAttribute("readerid", readerid);
response.sendRedirect("book_borrow.jsp?i=2");
} catch (Exception e) {
e.printStackTrace();
}
}

13.BookBackServlet.java 
throws ServletException, IOException {
response.setContentType("text/html;gb18030");
request.setCharacterEncoding("gb18030");
int readerid=Integer.parseInt(request.getParameter("barcode"));
try {
ReaderInfo readerinfo=DAOFactory.getReaderInfoDAOInstance().findReaderInfoById(readerid);
List<BookBorrow> allbookborrow=DAOFactory.getBookBorrowDAOInstance().findBookBorrowByReaderId(readerid);
request.getSession().setAttribute("readerinfo", readerinfo);
request.getSession().setAttribute("allbookborrow", allbookborrow);
request.getRequestDispatcher("book_back.jsp?i=2").forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}}

14.BookborrowDAO.java 
public List<BookBorrow> findAllBookBorrow() throws Exception;
public List<BookBorrow> findBookBorrowByReaderId(int readerid) throws Exception;
public boolean borrowBook(int bookid,int readerid) throws Exception;
public boolean returnBook(int id,int bookid) throws Exception;
public boolean borrowNumber(int readerid) throws Exception;

15.BookborrowDAOImpl.java
public List<BookBorrow> findAllBookBorrow() throws Exception {
String sql="select * from bookborrow";
pstmt=conn.prepareStatement(sql);
rs=pstmt.executeQuery();
while(rs.next()){
BookBorrow bookborrow=new BookBorrow();
bookborrow.setBookid(rs.getInt("bookid"));
bookborrow.setBbacktime(rs.getDate("bbacktime"));
bookborrow.setBborrowtime(rs.getDate("borrowtime"));
bookborrow.setReaderid(rs.getInt("readerid"));
bookborrow.setId(rs.getInt("id"));
bookborrow.setBytime(rs.getDate("bytime"));
bookborrow.setRenew(rs.getInt("renew"));
bookborrow.setFine(rs.getDouble("fine"));
allbookborrow.add(bookborrow);
}
return allbookborrow;
}
@Override
public List<BookBorrow> findBookBorrowByReaderId(int readerid)
throws Exception {
String sql="select b.*,bookinfo.bookname,DATEDIFF(dd,bborrowtime,bytime)as'over',bookinfo.nownumber,bookinfo.total from bookborrow b join bookinfo on b.bookid=bookinfo.bookid where readerid=?";
pstmt=conn.prepareStatement(sql);
pstmt.setInt(1, readerid);
rs=pstmt.executeQuery();
while(rs.next()){
BookBorrow bookborrow=new BookBorrow();
bookborrow.setBookid(rs.getInt("bookid"));
bookborrow.setBbacktime(rs.getDate("bbacktime"));
bookborrow.setBborrowtime(rs.getDate("bborrowtime"));
bookborrow.setReaderid(rs.getInt("readerid"));
bookborrow.setId(rs.getInt("id"));
bookborrow.setBytime(rs.getDate("bytime"));
bookborrow.setRenew(rs.getInt("renew"));
bookborrow.setFine(rs.getDouble("fine"));
bookborrow.setBookname(rs.getString("bookname"));
bookborrow.setBorrownumber(rs.getInt("nownumber"));
bookborrow.setTotal(rs.getInt("total"));
bookborrow.setOver1(rs.getInt("over1"));
allbookborrow.add(bookborrow);
}
return allbookborrow;
}
@Override
public boolean Bookborrow(int bookid,int readerid) throws Exception {
String sql="insert into bookborrow values(?,?,convert(varchar(100),getdate(),102),DATEADD(day,30,convert(varchar(100),getdate(),102)),null,'',null)";
pstmt=conn.prepareStatement(sql);
pstmt.setInt(1, bookid);
pstmt.setInt(2, readerid);
int i=pstmt.executeUpdate();
String sql1="update bookinfo set nownumber=nownumber-1 where bookid=?";
pstmt=conn.prepareStatement(sql1);
pstmt.setInt(1, bookid);
String sql2 = "update readerinfo set borrownumber = borrownumber + 1 where readerid = ?";
pstmt = conn.prepareStatement(sql2);
pstmt.setInt(1, readerid);
i=pstmt.executeUpdate();
if(i==1)
flag=true;
return flag;
}

16.BookCaseDAO.java
public  List<bookcase> findAllbookcase() throws  Exception;
public boolean  doCreate(bookcase  bookcase)throws  Exception;
public boolean  doDelete(int  bookcaseid)throws  Exception; 
public boolean doUpdate(bookcase bookcase)throws Exception;
List<bookcase> findupdate(int bookcaseid) throws Exception;

17.BookCaseDAOImpl.java
public List<bookcase> findAllbookcase() throws Exception {
List<bookcase> allbookcase=new ArrayList<bookcase>();
try{
String sql="select * from bookcase";
conn=dbc.getConnection();
pstmt=conn.prepareStatement(sql);
rs=pstmt.executeQuery();
while(rs.next()){
bookcase bookcase=new bookcase();
bookcase.setBookcaseid(rs.getInt("bookcaseid"));
bookcase.setBookcasename(rs.getString("bookcasename"));
allbookcase.add(bookcase);
}
rs.close();
pstmt.close();
}
catch(Exception e){e.printStackTrace();}
finally{dbc.closed();
}
return allbookcase;
}
@Override
public boolean doCreate(bookcase bookcase) throws Exception {
try{
String sql="insert into bookcase values(?,?)";
pstmt=conn.prepareStatement(sql);
pstmt.setInt(1, bookcase.getBookcaseid());
pstmt.setString(2, bookcase.getBookcasename());
int i=pstmt.executeUpdate();
if(i>0){
flag=true;
}
pstmt.close();
}catch(Exception e){e.printStackTrace();}
finally{
dbc.closed();
}	
return flag;
}
@Override
public boolean doDelete(int bookcaseid) throws Exception {
try{
String sql="delete  from bookcase where bookcaseid=?";
pstmt=conn.prepareStatement(sql);
pstmt.setInt(1,bookcaseid);
int i=pstmt.executeUpdate();
if(i>0){
flag=true;
}
pstmt.close();
}catch(Exception e){}
finally{
dbc.closed();
}
return flag;
}
@Override
public List<bookcase> findupdate(int bookcaseid) throws Exception {
List<bookcase> updatebookcase=new ArrayList<bookcase>();
try{
String sql="select bookcaseid,bookcasename from bookcase where bookcaseid=?";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, bookcaseid);
rs=pstmt.executeQuery();
while(rs.next()){
bookcase bookcase=new bookcase();
bookcase.setBookcaseid(rs.getInt("bookcaseid"));
bookcase.setBookcasename(rs.getString("bookcasename"));
updatebookcase.add(bookcase);
}
pstmt.close();
}catch(Exception e){
e.printStackTrace();
}finally{
dbc.closed();
}
return updatebookcase;
}
@Override
public boolean doUpdate(bookcase bookcase) throws Exception {
try{
String sql="update bookcase set bookcasename=? where bookcaseid=?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,bookcase.getBookcasename());
pstmt.setInt(2, bookcase.getBookcaseid());
int i=pstmt.executeUpdate();
if(i>0){
flag=true;
}
pstmt.close();
}
catch(Exception e){e.printStackTrace();}
finally{
dbc.closed();
}
return flag;
}
}
18.web.xml
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>BookCaseAddServlet</servlet-name>
<servlet-class>servlet.BookCaseAddServlet</servlet-class>
</servlet>
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>BookCaseQueryAllServlet</servlet-name>
<servlet-class>servlet.BookCaseQueryAllServlet</servlet-class>
</servlet>
<servlet>
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>BookCaseDeleteServlet</servlet-name>
<servlet-class>servlet.BookCaseDeleteServlet</servlet-class>
</servlet>
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>BookCaseUpdateServlet</servlet-name>
<servlet-class>servlet.BookCaseUpdateServlet</servlet-class>
</servlet>
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>BookBorrowServlet</servlet-name>
<servlet-class>servlet.BookBorrowServlet</servlet-class>
</servlet>
<servlet>
<description>This is the description of my J2EE component</description>
<display-name>This is the display name of my J2EE component</display-name>
<servlet-name>BookBackServlet</servlet-name>
<servlet-class>servlet.BookBackServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>BookBorrowServlet</servlet-name>
<url-pattern>/BookBorrowServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>BookBackServlet</servlet-name>
<url-pattern>/BookBackServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>BookCaseAddServlet</servlet-name>
<url-pattern>/BookCaseAddServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>BookCaseQueryAllServlet</servlet-name>
<url-pattern>/BookCaseQueryAllServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>BookCaseDeleteServlet</servlet-name>
<url-pattern>/BookCaseDeleteServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>BookCaseUpdateServlet</servlet-name>
<url-pattern>/BookCaseUpdateServlet</url-pattern>
 </servlet-mapping>

Experimental results (data analysis and conclusions):

1. View bookshelf information

 

2. Add bookshelf information

 

3. View the added bookshelf information

 

4. Modify book information

 

5. View the modified bookshelf information

 

6. View deleted bookshelf information

 

7. Book borrowing information

 

8. Book Renewal Information

 

9. Book return information

 

 

Problem Discussions:

  1. Q: A class not found error occurred

A:

1. Debugging found that the problem was due to the web. In XML <servlet>in <servlet-class>

2. The reason is that I forgot to enter the web after changing the package name. Modify in xml;

3. The solution is to enter the web. The <servlet-class>name of <servlet>is modified in xml.

  1. Q: An error occurred after returning new in DAOFactory.

A:

  1. The troubleshooting found that the name of the implementation class in DAOFactory does not match the name of the created implementation class
  2. The solution is to modify the name of the implementation class and import
  1. Realization of bookshelf information viewing function

On the home page, click on the bookshelf settings to get the bookshelf settings interface, and on the home page, click on the bookshelf settings through menu.JS interface <a href="BookCaseQueryAllServlet">Jump to BookCaseQueryAllServlet, get the form information to set the session, get the object of BookCaseDAOImpl implementation class through static method getBookcaseDAOInstance() in factory class DAOFctory, perform database operation through BookCaseDAO interface, then use findAllbookcase() in vo, execute SQL statement through DBConnection, and jump to bookcase_case Queryall. Jsp, displays the bookshelf information queried.

  1. Realization of Bookshelf Information Adding Function

In the bookshelf setup interface, click Add bookshelf information through bookcase_queryall.jsp <a href="bookcase_add.jsp">statement, jump to bookcase_ Add. Jsp, after adding the information, jump to the BookCaseAddServlet controller through the action property of the <form>form, use the getParameter() method of the request request request request request object to get the information corresponding to bookcaseid and bookcasename in the BookCaseAddServlet, after setting vo, execute the method doCreate of BookCaseDAOImpl implementation class, execute SQL statement, use get() method to jump to BookCaseQueryAllServlet, use get() method Use the List method to get bookshelf information and jump to bookcase_after setting session tracking Queryall. Jsp, and finally shows the bookshelf information added.

  1. Realization of bookshelf information modification function

Click Modify on the bookshelf setup interface through bookcase_ Queryall. href statement in jsp, jump to BookCaseSearchServlet, use getParameter() method of request request request object in BookCaseSearchServlet to get corresponding information of bookcaseid in form, jump to bookcase_update.jsp, after modifying the information, jump to the BookCaseUpdateServlet controller through the action property of the <form>form form, use the getParameter() method of the request request request object in the BookCaseUpdateServlet to get the information corresponding to bookcaseid and bookcasename in the form using the getParameter() method of the request request request request request object. After setting vo, execute the findupdate and doUpdate methods of the BookCaseOIDAmpl implementation class, Through DBConnection, execute the SQL statement, jump to BookCaseQueryAllServlet using get(), get bookshelf information using List method, and jump to bookcase_after setting session trace Queryall. Jsp, and finally shows the modified bookshelf information.

  1. Realization of bookshelf information deletion function

Click Delete on the bookshelf setup interface, through bookcase_ Queryall. href statement in jsp, jump to BookCaseDeleteServlet, use getParameter() method of request request request object to get corresponding information of bookcaseid in form in BookCaseDeleteServlet, execute doDelete method of BookCaseDAOImpl implementation class, execute SQL statement through DBConnection, jump to BookCaseQueryAllServlet using get() method, get bookshelf information using List method, jump to bookcase_case after setting session trace Queryall. Jsp, showing the deleted bookshelf information at the end.

  1. Realization of Book Borrowing Function

On the home page, click on the book borrowing to get the book borrowing interface through menu.JS interface <a href="BookBorrowServlet">Jump to BookBorrowServlet, use the request request request object's getParameter() method in BookBorrowServlet to get information corresponding to the inputkey in the form, set vo, execute the BookBorrowDAOImpl implementation class's method doCreate, execute SQL statements through DBConnection, and use the get() method to jump to bookborrow.jsp, and finally shows the added book borrowing information.

  1. Realization of book renewal function

On the home page, click on the book renewal to get the book renewal interface through menu.JS interface <a href="BookReturnServlet">Jump to BookReturnServlet, use the request request request object's getParameter() method in BookReturnServlet to get information about the borrowid,bookid in the form, set vo, execute the BookReturnDAOImpl implementation class's method doCreate, execute SQL statements through DBConnection, use get() method to jump to BookReturnServlet, BookBackServlet, BookBackServlet Finally, the book renewal information is displayed.

  1. Realization of Book Return Function

Click on the book return on the home page to get the book return interface through menu.JS interface <a href="BookBackServlet">Jump to BookBackServlet, use request request request request object's getParameter() method to get information about borrowid,bookid in the form, set vo, execute BookBackDAOImpl implementation class's method doCreate, execute SQL statement through DBConnection, use get() method to jump to bookback.jsp, and finally shows the book return information added.

Tags: Java Web Development java web

Posted by Rovas on Fri, 03 Jun 2022 20:28:48 +0530