Java Web实验程序设计——图书借阅网站的实现——读者信息

预 习 报 告

实验题目:图书借阅网站的实现——读者信息

预习内容:

  1. Servlet的接口介绍

SUN 公司提供了两个默认的接口实现类:GenericServlet 和HttpServlet。GenericServlet 是一个抽象类,该类为 Servlet接口提供了部分实现,它并没有实现 HTTP 请求处理。HttpServlet 是 GenericServlet 的子类,它继承了 GenericServlet 的所有方法,并且为HTTP请求中的POST、GET等类型提供了具体的操作方法。

  1. JSP脚本元素主要包含的类型

⑴JSP Scriptlets ⑵JSP声明语句 ⑶JSP 表达式

  1. JavaBean需要遵循的编码规范

(1)它必须具有一个公共的、无参的构造方法,这个方法可以是编译器自动产生的默认构造方法。
(2)它提供公共的setter方法和getter方法,让外部程序设置和获取JavaBean的属性。JDBC需遵循的编码规范

4. JDBC的API介绍

JDBC API主要位于java.sql包中,该包定义了一系列访问数据库的接口和类。

5 .MVC的视图介绍

视图(View)负责与用户进行交互,它从模型中获取数据向用户展示,同时也能将用户请求传递给控制器进行处理。当模型的状态发生改变时,视图会对用户界面进行同步更新,从而保持与模型数据的一致性。

  1. DAO的适用范围

DAO 最适用于单系统应用程序或小范围本地分布使用。

实验目的与要求(及主要实验仪器、设备):

1、掌握Servlet的基本特性、生命周期和编程方式;

2、掌握JSP的基本特性和编程方式;

3、掌握JavaBean的基本特性和编程方式;;

4、掌握MVC和DAO设计模式的编程特性;

5、使用MVC和DAO设计模式设计图书借阅网站中读者信息的功能。

本次实验采用的主要设备:自带电脑。

实验原理(方法与与原理分析):+

  1. navigation.jsp 管理员导航条界面
  2. banner.jsp: 头部界面
  3. copyright.jsp: 版权界面   
  4. readerinfo_queryall.jsp:读者信息设置界面
  5. readerinfo_add.jsp  读者信息添加界面
  6. readertype_add.jsp  图书类型添加界面
  7. readertype_queryall.jsp:读者类型设置界面
  8. ReaderInfoQueryAllServlet.java 读者信息功能控制器类
  9. ReaderTypeQueryAllServlet.java 读者类型功能控制器类
  10. ReaderInfoAdd Servlet.java 读者信息添加功能控制器类
  11. ReaderTypeAdd Servlet.java 读者类型添加功能控制器类
  12. readerinfo.java  读者信息实体类
  13. readertype.java  读者类型实体类
  14. ReaderInfoDAO.java 读者信息功能接口类
  15. ReaderTypeDAO.java 读者类型功能接口类
  16. ReaderInfoDAOImpl.java 读者信息功能实现类
  17. ReaderTypeDAOImpl.java 读者类型功能实现类
  18. DAOFactory.java 工厂类
  19. DBConnection.java:数据库连接类
  20. web.xml 配置文件

实验步骤(程序代码与实验过程):

1.ReaderInfo.java
public class readerinfo {	
Private int readerid;	
private   String  readername;	
private   int 	  readertypeid;	
private   String  readertypename;	
private   String  idcard;	
private   int  number;	
private   int  borrownumber;	
public int getReaderid() 
{		
return readerid;	
}	
public void setReaderid(int readerid) 
{		
this.readerid = readerid;	
}	
public String getReadername() 
{		
return readername;	
}	
public void setReadername(String readername) 
{		
this.readername = readername;	
}	
public int getReadertypeid() 
{		
return readertypeid;	
}	
public void setReadertypeid(int readertypeid) 
{		
this.readertypeid = readertypeid;	
}	
public String getReadertypename() 
{		
return readertypename;	
}
public void setReadertypename(String readertypename) 
{		
this.readertypename = readertypename;	
}	
public String getIdcard() 
{		
return idcard;	
}
public void setIdcard(String idcard) 
{		
this.idcard = idcard;	
}
public int getNumber() 
{		
return number;	
}
public void setNumber(int number) 
{		
this.number = number;	
}
public int getBorrownumber() 
{		
return borrownumber;	
}
public void setBorrownumber(int borrownumber) 
{		
this.borrownumber = borrownumber;	
}
}
2.readerinfo_add.jsp
<body>      
<table width="778"  border="0" cellspacing="0" cellpadding="0" align="center">  
<tr>    
<td valign="top" bgcolor="#FFFFFF">
<table width="99%" height="510"  border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="tableBorder_gray">  
<tr>    
<td height="510" valign="top" style="padding:5px;">
<table width="98%" height="487"  border="0" cellpadding="0" cellspacing="0">      
<tr>        
<td height="22" valign="top" class="word_orange">当前位置:读者管理 &gt; 读者管理 &gt; 添加读者信息 &gt;&gt;&gt;
</td>      
</tr>      
<tr>         
<td align="center" valign="top">
<table width="100%" height="493"  border="0" cellpadding="0" cellspacing="0">  
<tr>    
<td align="center" valign="top">	
<form name="form1" method="post" action="ReaderInfoAddServlet">	
<table width="600" height="432"  border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">      
<tr>        
<td align="center">读者编号:
</td>        
<td height="39">
<input name="readerNo" type="text" id="readerNo" size="50">          * 
</td>      
</tr>      
<tr>        
<td align="center">姓名:
</td>        
<td>
<input name="readername" type="text"  id="readername" size="40">
</td>      
</tr>      
<tr>        
<td align="center">读者类型:
</td>        
<td>			
<select name="readertypename" class="wenbenkuang" id="readertypename">	
<%			      
List
<readertype> allreadertype=(List
<readertype>)session.getAttribute("allreadertype"); 			
for(int i=0;i
<allreadertype.size();i++){				
readertype readertype=allreadertype.get(i);			 
%>                
<option value="
<%=readertype.getReadertypeid()%>">
<%=readertype.getReadertypename()%>
</option>
<% }%>              
</select>        
</td>      
</tr>            
<tr>        
<td align="center">身份证:
</td>        
<td>
<input name="idcard" type="text"  id="idcard" size="40">
</td>      
</tr>        
<tr>        
<td align="center">&nbsp;
</td>        
<td>
<input name="Submit" type="submit" class="btn_grey" value="保存" onClick="return check(form1)">&nbsp;
<input name="Submit2" type="button" class="btn_grey" value="返回" onClick="history.back()">
</td>      
</tr>    
</table>	
</form>	
</td>  
</tr>
</table>
</td>      
</tr>    
</table>
</td>  
</tr>
</table>
<%@ include file="copyright.jsp"%>
</td>  
</tr>
</table>  
</body>
4.readerinfo _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">当前位置:读者管理 &gt; 读者信息设置 &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="readerinfo_add.jsp">添加读者信息信息
</a> 
</td>  
</tr>   
</table>  
<table width="100%"  border="1" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF" bordercolordark="#F6B83B" bordercolorlight="#FFFFFF">  
<tr align="center" bgcolor="#e3F4F7">    
<td width="10%" bgcolor="#F9D16B">读者编号
</td>    
<td width="10%" bgcolor="#F9D16B">读者姓名
</td>    
<td width="10%" bgcolor="#F9D16B">读者类型
</td>    
<td width="12%" bgcolor="#F9D16B">身份证
</td>    
<td width="12%" bgcolor="#F9D16B">可借数量
</td>    
<td width="12%" bgcolor="#F9D16B">已借数量
</td>    
<td width="12%" bgcolor="#F9D16B">删除
</td>  
</tr>  
<%    List
<readerinfo> allreaderinfo=(List
<readerinfo>)session.getAttribute("allreaderinfo");    for(int i=0;i
<allreaderinfo.size();i++){    readerinfo readerinfo=allreaderinfo.get(i);	%> 	  
<tr>  
<td style="padding:5px;">
<%=readerinfo.getReaderid()%>
</td>  
<td style="padding:5px;">
<%=readerinfo.getReadername()%>
</td>    
<td style="padding:5px;">
<%=readerinfo.getReadertypename()%>
</td>    
<td style="padding:5px;">
<%=readerinfo.getIdcard()%>
</td>    
<td style="padding:5px;">
<%=readerinfo.getNumber()%>
</td>    
<td style="padding:5px;">
<%=readerinfo.getBorrownumber()%>
</td>    
<td align="center">
<a href="ReaderInfoDeleteServlet?readerid=
<%=readerinfo.getReaderid()%>">删除
</a>
</td>   
</tr>
<% }%>   
</table>
</td>      
</tr>    
</table>
</td>  
</tr>
</table>
<%@ include file="copyright.jsp"%>
</td>  
</tr>
</table>  
</body>
5.readerinfo _update.jsp
<body>   
<%@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="99%" height="510"  border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="tableBorder_gray">  
<tr>    
<td height="510" valign="top" style="padding:5px;">
<table width="98%" height="487"  border="0" cellpadding="0" cellspacing="0">      
<tr>        
<td height="22" valign="top" class="word_orange">当前位置:读者管理 &gt; 读者信息管理 &gt; 修改读者信息 &gt;&gt;&gt;
</td>      
</tr>      
<tr>         
<td align="center" valign="top">
<table width="100%" height="493"  border="0" cellpadding="0" cellspacing="0">  
<tr>    
<td align="center" valign="top">	
<form name="form1" method="post" action="ReaderInfoUpdateAllServlet">		
<table width="600" height="432"  border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">      
<tr>        
<td align="center">读者姓名:           
<input name="readerid" type="hidden" size="50" value="
<%=Integer.parseInt(request.getParameter("readerid"))%>">        
</td>        
<td height="39">          
<input name="readername" type="text"  id="readername"  size="60" value="
<%=(String)session.getAttribute("readername")%>">         
</td>      
</tr>      
<tr>        
<td align="center">读者类型:
</td>        
<td>
<select name="readertypename"  >        
<%        
List
<ReaderType> allReadertype=(List<ReaderType>)request.getSession().getAttribute("allreadertype");        int readertypeid=Integer.parseInt(String.valueOf(session.getAttribute("readertypeid")));        for(int i=0;i
<allReadertype.size();i++){
ReaderType readertype=allReadertype.get(i);        if(readertypeid==readertype.getReadertypeid()){        
%>        
<option value="
<%=readertypeid%>" selected="selected">
<%=String.valueOf(session.getAttribute("readertypename"))%>>
</option>        
<%         
}else{        
%>        
<option value="
<%=readertype.getReadertypeid()%>">
<%=readertype.getReadertypename()%>
</option>        
<%}%>        
<%}%>             
</select>        
</td>      
</tr>       
<tr>        
<td align="center">身份证:
</td>        
<td>
<input name="idcard" type="text" id="idcard" value=">
<%=String.valueOf(session.getAttribute("idcard"))%>">  
</td>      
</tr>       
<tr>        
<td align="center">已借数量:
</td>        
<td>
<input name="borrownumber" type="text" id="borrownumber"  value="
<%=Integer.parseInt(String.valueOf(session.getAttribute("borrownumber")))
%>">(本) * 
</td>      
</tr>        
<td align="center">&nbsp;
</td>        
<td>
<input name="Submit" type="submit" class="btn_grey" value="保存" onClick="return check(form1)">        &nbsp;       
<input name="Submit2" type="button" class="btn_grey" value="返回" onClick="history.back()">
</td>      
</tr>    
</table>	
</form>	
</td>  
</tr>
</table>
</td>      
</tr>    
</table>
</td>  
</tr>
</table>
<%@ include file="copyright.jsp"%>
</td>  
</tr>
</table>  
</body>

6.readertype_add.jsp
<body>   
<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="ReaderTypeAddServlet">                
<table width="100%" height="114"  border="0" cellpadding="0" cellspacing="0">                  
<tr >
<td>                    读者类型编号: 
<br>  
<input name="readertypeid" type="text"/>
<br>                    读者类型名称:   
<br> 
<input name="readertypename" type="text"/>
<br>                    可借数量:  
<br>     &nbsp;&nbsp;&nbsp;
<input name="number"  type="text" />     
<br>   
<td>                    
</tr>                  
<tr>                    
<td align="center" >
<input name="Submit3" type="submit" class="btn_grey" value="保存">                      &nbsp;                      
<input name="Submit22" type="button" class="btn_grey" value="关闭" onClick="window.close();">
</td>                    
</tr>                
</table>            
</form>
</td>          
</tr>        
</table>
</td>        
<td>&nbsp;
</td>      
</tr>      
<tr>        
<td>&nbsp;
</td>        
<td>&nbsp;
</td>        
<td>&nbsp;
</td>      
</tr>    
</table>
</td>  
</tr>
</table>  
</body>

7.readertype _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">当前位置:读者管理 &gt; 读者类型设置 &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="readertype_add.jsp">添加读者类型信息
</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="20%" bgcolor="#F9D16B">读者类型编号
</td>    
<td width="30%" bgcolor="#F9D16B">读者类型名称
</td>    
<td width="30%" bgcolor="#F9D16B">可借数量
</td>  
</tr>
<%     		List
<ReaderType> allReaderType = (List
<ReaderType>)session.getAttribute("allReaderType");   		 for(int i=0;i
<allReaderType.size();i++){               ReaderType readertype= allReaderType.get(i);             %>  
<tr>     
<td style="padding:5px;">
<%=readertype.getReadertypeid()%>
</td>    
<td style="padding:5px;">
<%=readertype.getReadertypename()%>
</td>    
<td style="padding:5px;">
<%=readertype.getNumber()%>
</td>  
</tr> 
<% } %> 
</table>
</td>      
</tr>    
</table>
</td>  
</tr>
</table>
<%@ include file="copyright.jsp"%>
</td>  
</tr>
</table>  
</body>

8.ReaderInfoAddServlet.java
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;
charset=gb18030");
request.setCharacterEncoding("gb18030");
readerinfo readerinfo=new readerinfo();
readerinfo.setReaderid(Integer.parseInt(request.getParameter("readerNo")));
readerinfo.setReadername(request.getParameter("readername"));
readerinfo.setReadertypename(request.getParameter("readertypename"));
readerinfo.setIdcard(request.getParameter("idcard"));
readerinfo.setBorrownumber(Integer.parseInt(request.getParameter("borrownumber")));
readerinfo.setBorrownumber(10);
try {		
if(DAOFactory.getReaderInfoDAOInstance().doCreate(readerinfo)){
request.getRequestDispatcher("ReaderInfoQueryAllServlet").forward(request, response);
}		
} catch (Exception e) 
{						
e.printStackTrace();
}	
}

9.ReaderInfoUpdteServlet.java
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {		
response.setContentType("text/html;charset=gb2312");		
request.setCharacterEncoding("gb2312");		
ReaderInfo readerinfo=new ReaderInfo();		
readerinfo.setBorrownumber(Integer.parseInt(request.getParameter("borrownumber")));		
readerinfo.setIdcard(request.getParameter("idcard"));		
readerinfo.setReaderid(Integer.parseInt(request.getParameter("readerid")));		
readerinfo.setReadertypeid(Integer.parseInt(request.getParameter("readertypename"));readerinfo.setReadername(request.getParameter("readername"));				
try {			
if(DAOFactory.getReaderInfoDAOInstance().updateReaderInfo(readerinfo))
{	request.getRequestDispatcher("ReaderInfoQueryAllServlet").forward(request, response);			
}		
} catch (Exception e) 
{			
e.printStackTrace();		
}	
}

10.ReaderInfoDeleteServlet.java
public void doGet(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException {		
response.setContentType("text/html;
charset=gb18030");
request.setCharacterEncoding("gb18030");
int readerid=Integer.parseInt(request.getParameter("readerid"));
try {		
if(DAOFactory.getReaderInfoDAOInstance().doDelete(readerid)){				
request.getRequestDispatcher("ReaderInfoQueryAllServlet").forward(request, response);
}		
} catch (Exception e) 
{
e.printStackTrace();
}	
}

11.ReaderInfoQueryAllServlet.java
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {		
response.setContentType("text/html;
charset=gb18030");
request.setCharacterEncoding("gb18030");
try {			
List<readerinfo> allreaderinfo=DAOFactory.getReaderInfoDAOInstance().findAllreaderinfo();
request.getSession().setAttribute("allreaderinfo", allreaderinfo);
List<readertype> allreadertype=DAOFactory.getReaderTypeDAOInstance().findAllreadertype();
request.getSession().setAttribute("allreadertype", allreadertype);
request.getRequestDispatcher("readerinfo_queryall.jsp").forward(request, response);
} catch (Exception e) 
{
e.printStackTrace();
}	
}

12.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>ReaderInfoAddServlet</servlet-name>
<servlet-class>servlet.ReaderInfoAddServlet</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>ReaderInfoDeleteServlet</servlet-name>
<servlet-class>servlet.ReaderInfoDeleteServlet</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>ReaderInfoQueryAllServlet</servlet-name>
<servlet-class>servlet.ReaderInfoQueryAllServlet</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>ReaderInfoUpdateServlet</servlet-name>
<servlet-class>servlet.ReaderInfoUpdateServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ReaderInfoAddServlet</servlet-name>
<url-pattern>/ReaderInfoAddServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ReaderInfoDeleteServlet</servlet-name>
<url-pattern>/ReaderInfoDeleteServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ReaderInfoQueryAllServlet</servlet-name>
<url-pattern>/ReaderInfoQueryAllServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ReaderInfoUpdateServlet</servlet-name>
<url-pattern>/ReaderInfoUpdateServlet</url-pattern>
</servlet-mapping>

13.ReaderInfoDAO.java
public interface ReaderInfoDAO {
public  List<readerinfo> findAllreaderinfo() throws  Exception;
public boolean  doCreate(readerinfo  readerinfo)throws  Exception;
public boolean doDelete(int readerid) throws Exception;
public boolean doUpdate(readerinfo  readerinfo)throws Exception;
}

14.ReaderInfoDAOImpl.java
public List<readerinfo> findAllreaderinfo() throws  Exception{	
List<readerinfo> allreaderinfo=new ArrayList<readerinfo>();
try{			
String sql = "select  readerinfo.*,readertype.* from readerinfo join readertype on readerinfo.readertypeid=readertype.readertypeid";
pstmt=conn.prepareStatement(sql);
rs=pstmt.executeQuery();
while(rs.next()){				
readerinfo readerinfo=new readerinfo();
readerinfo.setReaderid(rs.getInt("readerid"));
readerinfo.setReadername(rs.getString("readername"));readerinfo.setReadertypename(rs.getString("readertypename"));
readerinfo.setIdcard(rs.getString("idcard"));
readerinfo.setNumber(rs.getInt("number"));
readerinfo.setBorrownumber(rs.getInt("borrownumber"));
allreaderinfo.add(readerinfo);
}			
rs.close();
pstmt.close();
}		    
catch(Exception e){e.printStackTrace();
}		
finally{dbc.closed();
}		
return allreaderinfo;
}	
@Override
public boolean doCreate(readerinfo  readerinfo)throws  Exception {		
try{			
String sql="insert into readerinfo values(?,?,?,?,?)";
pstmt=conn.prepareStatement(sql);
pstmt.setInt(1, readerinfo.getReaderid());
pstmt.setString(2,readerinfo.getReadername());
pstmt.setString(3,readerinfo.getReadertypename());
pstmt.setString(4,readerinfo.getIdcard());
pstmt.setInt(5,readerinfo.getBorrownumber());
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 readerid) throws Exception {	
try {			
String sql="delete from readerinfo where readerid=?";
pstmt=conn.prepareStatement(sql);
pstmt.setInt(1,readerid);
int i=pstmt.executeUpdate();
if(i>0){				
flag=true;
}			
pstmt.close();
} catch (Exception e) {			
e.printStackTrace();
} finally{			
dbc.closed();
}		
return flag;
}

15.DAOFactory.java
public static ReaderInfoDAO getReaderInfoDAOInstance(){
return new ReaderInfoDAOImpl();
}

实验结果(数据分析与结论):

1.查看读者类型信息

2.添加读者类型

3.查看添加后的读者类型信息

4.查看读者信息

5.添加读者信息

6.查看添加后的读者信息

6.查看删除后的读者信息

问题讨论:

1.问:出现空指针错误

答:经过排查错误的原因是打入的名称里有空格,解决方法为去掉空格,输入对应的正确名称最后得以成功执行。

2.问:出现严重: Error getConfigured错误

答:

1.经过排查发现这个错误是出现于web.xml里;

2.出现原因是在创建与jsp文件相对应的servlet文件时有一个文件删除并创建时与web.xml不对应;

3.这个问题的解决方法为找到出现问题的servlet文件删除,然后在web.xml把对应的servlet的信息删除,最后重建对应的servlet文件,问题就解决了。

  1. 读者信息查看功能的实现

在主页点击读者信息设置得到读者信息设置界面,通过menu.JS界面的<a href=”ReaderInfoQueryAllServlet”>跳转到ReaderInfoQueryAllServlet,获取表单信息设置会话,通过工厂类DAOFctory中静态方法getReaderinfoDAOInstance(),得到ReaderInfoDAOImpl实现类的对象,通过ReaderInfoDAO接口来执行数据库中的操作,然后使用vo中findAllreaderinfo(),通过DBConnection,执行SQL语句,跳转到readerinfo_queryall.jsp,将查询到的读者信息显示出来。

  1. 读者信息添加功能的实现

在读者信息设置界面点击添加读者信息,通过readerinfo_queryall.jsp里的<a href="readerinfo_add.jsp" >语句,跳转到readerinfo_add.jsp,添加信息后通过<form>表单的action属性,跳转到ReaderInfoAddServlet控制器,在ReaderInfoAddServlet中使用 request 请求对象的 getParameter()方法获取表单readerid,author,readertypeid,readername,casename,isbn,nownumber,price,pubname,total对应的信息的信息,设置vo后,执行ReaderInfoDAOImpl实现类的方法doCreate,通过DBConnection,执行SQL语句,使用get()方法跳转到ReaderInfoQueryAllServlet,使用 List 方法获取读者信息,在设置会话跟踪后跳转到 readerinfo_queryall.jsp,最后展现出添加后的读者信息。

  1. 读者信息删除功能的实现

在读者信息设置界面点击删除,通过readerinfo_queryall.jsp里的href语句,跳转到ReaderInfoDeleteServlet,在ReaderInfoDeleteServlet中使用 request 请求对象的 getParameter()方法获取表单中readerid对应的信息,执行ReaderInfoDAOImpl实现类的方法doDelete,通过DBConnection,执行SQL语句,使用get()方法跳转到ReaderInfoQueryAllServlet,使用 List 方法获取读者信息,在设置会话跟踪后跳转到readerinfo_queryall.jsp,最后展现出删除后的读者信息。读者信息查看功能的实现

4.读者类型查看功能的实现

在主页点击读者类型设置得到读者类型设置界面,通过menu.JS界面的<a href=”ReaderTypeQueryAllServlet”>跳转到ReaderTypeQueryAllServlet,获取表单信息设置会话,通过工厂类DAOFctory中静态方法getReadertypeDAOInstance(),得到ReaderTypeDAOImpl实现类的对象,通过ReaderTypeDAO接口来执行数据库中的操作,然后使用vo中findAllreadertype(),通过DBConnection,执行SQL语句,跳转到readertype_queryall.jsp,将查询到的读者类型显示出来。

5.读者类型添加功能的实现

在读者类型设置界面点击添加读者类型信息,通过readertype_queryall.jsp里的<a href="readertype_add.jsp" >语句,跳转到readertype_add.jsp,添加信息后通过<form>表单的action属性,跳转到ReaderTypeAddServlet控制器,在ReaderTypeAddServlet中使用 request 请求对象的 getParameter()方法获取表单中readertypeid,readertypename对应的信息的信息,设置vo后,执行ReaderTypeDAOImpl实现类的方法doCreate,通过DBConnection,执行SQL语句,使用get()方法跳转到ReaderTypeQueryAllServlet,使用 List 方法获取读者类型,在设置会话跟踪后跳转到 readertype_queryall.jsp,最后展现出添加后的读者类型。

6.读者类型修改功能的实现

在读者类型设置界面点击修改,通过readertype_queryall.jsp里的href语句,跳转到ReaderTypeSearchServlet,在ReaderTypeSearchServlet中使用 request 请求对象的 getParameter()方法获取表单中readertypeid对应的信息,跳转到readertype_update.jsp,修改完成信息后通过<form>表单的action属性,跳转到ReaderTypeUpdateServlet控制器,在ReaderTypeUpdateServlet中使用 request 请求对象的 getParameter()方法获取表单中使用 request 请求对象的 getParameter()方法获取表单中readertypeid,readertypename对应的信息的,设置vo后,执行ReaderTypeDAOImpl实现类的方法findupdate和doUpdate,通过DBConnection,执行SQL语句,使用get()方法跳转到ReaderTypeQueryAllServlet,使用 List 方法获取读者类型,在设置会话跟踪后跳转到 readertype_queryall.jsp,最后展现出修改后的读者类型。

7.读者类型删除功能的实现

在读者类型设置界面点击删除,通过readertype_queryall.jsp里的href语句,跳转到ReaderTypeDeleteServlet,在ReaderTypeDeleteServlet中使用 request 请求对象的 getParameter()方法获取表单中readertypeid对应的信息,执行ReaderTypeDAOImpl实现类的方法doDelete,通过DBConnection,执行SQL语句,使用get()方法跳转到ReaderTypeQueryAllServlet,使用 List 方法获取读者类型,在设置会话跟踪后跳转到 readertype_queryall.jsp,最后展现出删除后的读者类型。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

轩辕椿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值