预 习 报 告
实验题目:图书借阅网站的实现——读者信息
预习内容:
- Servlet的接口介绍
SUN 公司提供了两个默认的接口实现类:GenericServlet 和HttpServlet。GenericServlet 是一个抽象类,该类为 Servlet接口提供了部分实现,它并没有实现 HTTP 请求处理。HttpServlet 是 GenericServlet 的子类,它继承了 GenericServlet 的所有方法,并且为HTTP请求中的POST、GET等类型提供了具体的操作方法。
- JSP脚本元素主要包含的类型
⑴JSP Scriptlets ⑵JSP声明语句 ⑶JSP 表达式
- JavaBean需要遵循的编码规范
(1)它必须具有一个公共的、无参的构造方法,这个方法可以是编译器自动产生的默认构造方法。
(2)它提供公共的setter方法和getter方法,让外部程序设置和获取JavaBean的属性。JDBC需遵循的编码规范
4. JDBC的API介绍
JDBC API主要位于java.sql包中,该包定义了一系列访问数据库的接口和类。
5 .MVC的视图介绍
视图(View)负责与用户进行交互,它从模型中获取数据向用户展示,同时也能将用户请求传递给控制器进行处理。当模型的状态发生改变时,视图会对用户界面进行同步更新,从而保持与模型数据的一致性。
- DAO的适用范围
DAO 最适用于单系统应用程序或小范围本地分布使用。
实验目的与要求(及主要实验仪器、设备):
1、掌握Servlet的基本特性、生命周期和编程方式;
2、掌握JSP的基本特性和编程方式;
3、掌握JavaBean的基本特性和编程方式;;
4、掌握MVC和DAO设计模式的编程特性;
5、使用MVC和DAO设计模式设计图书借阅网站中读者信息的功能。
本次实验采用的主要设备:自带电脑。
实验原理(方法与与原理分析):+
- navigation.jsp 管理员导航条界面
- banner.jsp: 头部界面
- copyright.jsp: 版权界面
- readerinfo_queryall.jsp:读者信息设置界面
- readerinfo_add.jsp 读者信息添加界面
- readertype_add.jsp 图书类型添加界面
- readertype_queryall.jsp:读者类型设置界面
- ReaderInfoQueryAllServlet.java 读者信息功能控制器类
- ReaderTypeQueryAllServlet.java 读者类型功能控制器类
- ReaderInfoAdd Servlet.java 读者信息添加功能控制器类
- ReaderTypeAdd Servlet.java 读者类型添加功能控制器类
- readerinfo.java 读者信息实体类
- readertype.java 读者类型实体类
- ReaderInfoDAO.java 读者信息功能接口类
- ReaderTypeDAO.java 读者类型功能接口类
- ReaderInfoDAOImpl.java 读者信息功能实现类
- ReaderTypeDAOImpl.java 读者类型功能实现类
- DAOFactory.java 工厂类
- DBConnection.java:数据库连接类
- 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">当前位置:读者管理 > 读者管理 > 添加读者信息 >>>
</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">
</td>
<td>
<input name="Submit" type="submit" class="btn_grey" value="保存" onClick="return check(form1)">
<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">当前位置:读者管理 > 读者信息设置 >>>
</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">当前位置:读者管理 > 读者信息管理 > 修改读者信息 >>>
</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">
</td>
<td>
<input name="Submit" type="submit" class="btn_grey" value="保存" onClick="return check(form1)">
<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">
</td>
<td width="94%">
</td>
<td width="3%">
</td>
</tr>
<tr>
<td>
</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>
<input name="number" type="text" />
<br>
<td>
</tr>
<tr>
<td align="center" >
<input name="Submit3" type="submit" class="btn_grey" value="保存">
<input name="Submit22" type="button" class="btn_grey" value="关闭" onClick="window.close();">
</td>
</tr>
</table>
</form>
</td>
</tr>
</table>
</td>
<td>
</td>
</tr>
<tr>
<td>
</td>
<td>
</td>
<td>
</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">当前位置:读者管理 > 读者类型设置 >>>
</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文件,问题就解决了。
- 读者信息查看功能的实现
在主页点击读者信息设置得到读者信息设置界面,通过menu.JS界面的<a href=”ReaderInfoQueryAllServlet”>跳转到ReaderInfoQueryAllServlet,获取表单信息设置会话,通过工厂类DAOFctory中静态方法getReaderinfoDAOInstance(),得到ReaderInfoDAOImpl实现类的对象,通过ReaderInfoDAO接口来执行数据库中的操作,然后使用vo中findAllreaderinfo(),通过DBConnection,执行SQL语句,跳转到readerinfo_queryall.jsp,将查询到的读者信息显示出来。
- 读者信息添加功能的实现
在读者信息设置界面点击添加读者信息,通过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,最后展现出添加后的读者信息。
- 读者信息删除功能的实现
在读者信息设置界面点击删除,通过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,最后展现出删除后的读者类型。