专题:利用jsp+servlet+html+js+mySQL写连表的增、删、改、查及分页

一:步骤:
(1)搭建工程:在web项目下的src包中建立6个包;分别为dao包(dao包下面有impl包),pojo包,service包(service包中有impl包),servlet包,util包,vo包;
(2)导入包:
a.在src包里:
c3p0-0.9.1.2.jar、
c3p0-config.xml、

b.在lib文件夹里:
c3p0-0.9.1.2.jar
commons-beanutils-1.7.0.jar
commons-dbutils-1.6.jar
commons-lang3-3.7.jar
commons-logging-1.0.3.jar
jstl-1.2.jar
log4j-1.2.6.jar
logkit-1.0.1.jar
mysql-connector-java-5.1.38.jar

c.在WEB-INF文件夹里:
web.xml

二.代码的实现
1.pojo
(1)BookInfo.java

package pojo;
import java.util.Date;
public class BookInfo {
	private Integer bookid;
	private String bookcode;
	private String bookname;
	private Integer booktype;
	private String bookauthor;
	private String publishpress;
	private Date publishdate;
	private Integer isborrow;
	
	public BookInfo() {
		super();
	}
	
	public BookInfo(Integer bookid, String bookcode, String bookname, Integer booktype, String bookauthor,
			String publishpress, Date publishdate, Integer isborrow) {
		super();
		this.bookid = bookid;
		this.bookcode = bookcode;
		this.bookname = bookname;
		this.booktype = booktype;
		this.bookauthor = bookauthor;
		this.publishpress = publishpress;
		this.publishdate = publishdate;
		this.isborrow = isborrow;
	}

	public Integer getBookid() {
		return bookid;
	}
	public void setBookid(Integer bookid) {
		this.bookid = bookid;
	}
	public String getBookcode() {
		return bookcode;
	}
	public void setBookcode(String bookcode) {
		this.bookcode = bookcode;
	}
	public String getBookname() {
		return bookname;
	}
	public void setBookname(String bookname) {
		this.bookname = bookname;
	}
	public Integer getBooktype() {
		return booktype;
	}
	public void setBooktype(Integer booktype) {
		this.booktype = booktype;
	}
	public String getBookauthor() {
		return bookauthor;
	}
	public void setBookauthor(String bookauthor) {
		this.bookauthor = bookauthor;
	}
	public String getPublishpress() {
		return publishpress;
	}
	public void setPublishpress(String publishpress) {
		this.publishpress = publishpress;
	}
	public Date getPublishdate() {
		return publishdate;
	}
	public void setPublishdate(Date publishdate) {
		this.publishdate = publishdate;
	}
	public Integer getIsborrow() {
		return isborrow;
	}
	public void setIsborrow(Integer isborrow) {
		this.isborrow = isborrow;
	}	
}

(2)BookType.java

package pojo;
public class BookType {
	private Integer typeid;
	private String typename;
	
	public BookType() {
		super();
	}
	
	public BookType(Integer typeid, String typename) {
		super();
		this.typeid = typeid;
		this.typename = typename;
	}

	public Integer getTypeid() {
		return typeid;
	}
	public void setTypeid(Integer typeid) {
		this.typeid = typeid;
	}
	public String getTypename() {
		return typename;
	}
	public void setTypename(String typename) {
		this.typename = typename;
	}
}

2.vo
BookInfoVo.java

package vo;
import java.util.Date;
import pojo.BookInfo;
public class BookInfoVo extends BookInfo{
	private Integer typeid;
	private String typename;
	
	public BookInfoVo() {
		super();
		
	}
	public BookInfoVo(Integer bookid, String bookcode, String bookname, Integer booktype, String bookauthor,
			String publishpress, Date publishdate, Integer isborrow) {
		super(bookid, bookcode, bookname, booktype, bookauthor, publishpress, publishdate, isborrow);
		
	}
	
	public BookInfoVo(Integer typeid, String typename) {
		super();
		this.typeid = typeid;
		this.typename = typename;
	}
	public Integer getTypeid() {
		return typeid;
	}
	public void setTypeid(Integer typeid) {
		this.typeid = typeid;
	}
	public String getTypename() {
		return typename;
	}
	public void setTypename(String typename) {
		this.typename = typename;
	}	
}

3.utils
(1)DateConverter.java

```public class DateConverter implements Converter {
	@Override
	public Object convert(Class typeClass, Object value) {
		String str=(String)value;
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
		try {
			return sdf.parse(str);
		} catch (ParseException e) {
			throw new RuntimeException(e);
		}
	}

}

(2)DateUtil.java

public class DateUtil {
	public static String toString(Date date,String pattern){
		SimpleDateFormat sdf=new SimpleDateFormat(pattern);
		return sdf.format(date);
	}
	public static Date toDate(String date,String pattern){
		SimpleDateFormat sdf=new SimpleDateFormat(pattern);
		try {
			return sdf.parse(date);
		} catch (ParseException e) {
			throw new RuntimeException(e);
		}
	}
}

(3)JDBCUtils.java

public class JDBCUtils {
	//创建数据源
	private static DataSource ds=new ComboPooledDataSource();
	//获得数据源
	public static DataSource getDataSource(){
		return ds;
	}
	//获得连接对象
	public static Connection getConnection(){
		try {
			return ds.getConnection();
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}
}

(4)PageBean.java

public class PageBean {
	private Integer pageSize;//页面大小,servlet中定义一个变量后传入   set get
	private Integer totalCount;//总条数 servlet中查询到后传入 set
	private Integer totalPage;//总页数      计算     get 
	private Integer pageIndex;//当前页      在servlet中传入通过构造方法,然后里面控制上下限  get
	private List<?> list;//数据列表   servlet中查询后传入 set get
	public PageBean(Integer pageSize, Integer totalCount, Integer pageIndex) {
		this.pageSize = pageSize;
		this.totalCount = totalCount;
		//计算总页面
		this.totalPage=this.totalCount%this.pageSize==0
				?this.totalCount/this.pageSize:this.totalCount/this.pageSize+1;
		//优化控制当前页的上下限    pageIndex=9;  点击下一页  输入了条件   ---不满足  totalPage=0;
		if(this.totalPage==0){
			this.pageIndex=1;
			this.totalPage=1;
		}else{
			if(pageIndex<1){
				this.pageIndex=1;
			}else if(pageIndex>this.totalPage){
				this.pageIndex=this.totalPage;
			}else{
				this.pageIndex = pageIndex;//1---totalPage
			}
		}
	}
	public Integer getPageSize() {
		return pageSize;
	}
	public void setPageSize(Integer pageSize) {
		this.pageSize = pageSize;
	}
	public void setTotalCount(Integer totalCount) {
		this.totalCount = totalCount;
	}
	public Integer getTotalPage() {
		return totalPage;
	}
	public Integer getPageIndex() {
		return pageIndex;
	}
	public List<?> getList() {
		return list;
	}
	public void setList(List<?> list) {
		this.list = list;
	}
}



4.servlet
(1)BookInfoVoListServlet .java
package servlet;

import java.io.IOException;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang3.StringUtils;

import pojo.BookType;
import service.BookInfoVoService;
import service.BookTypeService;
import service.impl.BookInfoVoServiceImpl;
import service.impl.BookTypeServiceImpl;
import util.PageBean;

public class BookInfoVoListServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	//设置编码格式
	request.setCharacterEncoding("UTF-8");
	response.setContentType("text/html;charset=UTF-8");
	//创建实现类
	BookInfoVoService bivs = new BookInfoVoServiceImpl();
	BookTypeService bts = new BookTypeServiceImpl();
	//取值
	String s_booktype = request.getParameter("booktype");
	String bookname = request.getParameter("bookname");
	String s_isborrow=request.getParameter("isborrow");
	String s_pageIndex=request.getParameter("pageIndex");
	//判断
	Integer booktype = null;
	Integer isborrow = null;
	Integer pageIndex = null;
	if(StringUtils.isNotBlank(s_booktype)){
		booktype=Integer.parseInt(s_booktype);
	}
	if(StringUtils.isNotBlank(s_isborrow)){
		isborrow=Integer.parseInt(s_isborrow);
	}
	if(s_pageIndex==null){
		s_pageIndex="1";
	}
	pageIndex=Integer.parseInt(s_pageIndex):
	//分页
	Integer pageSize = 3;
	Integer totalPage = bivs.getTotalCount(booktype,bookname,isborrow);
	PageBean pb = new PageBean(pageSize,totalCount,pageIndex);
	//下拉列表框
	List<BookType> typeList = bts.getBookTypeList();
	//存
	request.getSession().setAtrribute("pb",pb);
	request.getSession().setAttribute("typeList",typeList);
	request.getSession().setAttribute("booktype",booktype);
	request.getSession().setAttribute("bookname",bookname);
	request.getSession().setAttribute("isborrow",isborrow);
	//重定向
	request.getRequestDispactcher("list.jsp").forward(request,response);
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	doGet(request, response);
}

}

(2)PreAddServlet.java
public class PreAddServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	request.setCharacterEncoding("UTF-8");
	response.setContentType("text/html;charset=UTF-8");
	BookTypeService bts = new BookTypeServiceImpl();
	//获得下拉列表框
	List<BookType> typeList=bts.getBookTypeList();
	request.getSession().setAttribute("typeList",typeList);
	response.sendRedirect(request.getContextPath()+"/add.jsp");
}


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	doGet(request, response);
}

}



(3)AddServlet.java
public class AddServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	request.setCharacterEncoding("UTF-8");
	response.setContentType("text/html;charset=UTF-8");
	BookInfoVoService bivs = new BookInfoVoServiceImpl();

	String bookcode=request.getParameter("bookcode");
	String bookname=request.getParameter("bookname");
	String s_booktype=request.getParameter("booktype");
	String bookauthor=request.getParameter("bookauthor");
	String publishpress=request.getParameter("publishpress");
	String s_publishdate=request.getParameter("publishdate");
	
	Integer booktype = null;
	Date publishdate = null;
	if(StringUtils.isNotBlank(s_booktype)){
		booktype = Integer.parseInt(s_booktype);
	}
	if(StringUtils.isNotBlank(s_publishdate)){
		publishdate = DateUtil.toDate(s_publishdate,"yyyy-MM-dd");
	}
	BookInfo pi = new BookInfo(null,bookcode,bookname,booktype,bookauthor,publishpress,publishdate,0);
	if(bivs.addBookInfo(pi)>0){
		response.getWriter().println("<script>alert('添加成功');location.href='index.jsp'</script>");
	}else{
		response.getWriter().println("<script>alert('添加失败');location.href='add.jsp'</script>");
	}
}


(4)PreUpdateServlet.java
public class PreUpdateServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	request.setCharacterEncoding("UTF-8");
	response.setContentType("text/html;charset=UTF-8");
	BookInfoVoService bivs = new BookInfoVoServiceImpl();
	BookTypeService bts = new BookTypeServiceImpl();
	String s_id=request.getParameter("id");
	Integer id=null;
	if(StringUtils.isNotBlank(s_id)){
		id=Integer.parseInt(s_id);
	}
	//通过id获得bookinfovo里面的所有属性;
	BookInfoVo biv=bivs.getBookInfoVoById(id);
	//获取下拉列表框
	List<BookType> typeList=bts.getBookTypeList();
	request.getSession().setAttribute("biv", biv);
	request.getSession().setAttribute("typeList",typeList);
	response.sendRedirect(request.getContextPath()+"/update.jsp");
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	doGet(request, response);
}

}



(5)UpdateServlet
public class UpdateServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	request.setCharacterEncoding("UTF-8");
	response.setContentType("text/html;charset=UTF-8");
	BookInfoVoService bivs = new BookInfoVoServiceImpl();
	BookTypeService bts = new BookTypeServiceImpl();
	
	String s_id=request.getParameter("id");
	String bookcode=request.getParameter("bookcode");
	String bookname=request.getParameter("bookname");
	String s_booktype=request.getParameter("booktype");
	String bookauthor=request.getParameter("bookauthor");
	String publishpress=request.getParameter("publishpress");
	String s_publishdate=request.getParameter("publishdate");
	
	Integer id = null;
	Integer booktype = null;
	Date publishdate = null;
	if(StringUtils.isNotBlank(s_id)){
		id = Integer.parseInt(s_id);
	}
	if(StringUtils.isNotBlank(s_booktype)){
		booktype = Integer.parseInt(s_booktype);
	}
	if(StringUtils.isNotBlank(s_publishdate)){
		publishdate = DateUtil.toDate(s_publishdate,"yyyy-MM-dd");
	}
	BookInfoVo biv=bivs.getBookInfoVoById(id);
	BookInfo pi = new BookInfo(id,bookcode,bookname,booktype,bookauthor,publishpress,publishdate,biv.getIsborrow());
	if(bivs.upDateBookInfoVo(pi)>0){
		response.getWriter().println("<script>alert('修改成功');location.href='index.jsp'</script>");
	}else{
		response.getWriter().println("<script>alert('修改失败');location.href='update.jsp'</script>");
	}
}


protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	doGet(request, response);
}

}



(6)xiangxiServlet.java
public class XiangXiServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	response.setContentType("text/html;charset=UTF-8");
	BookInfoVoService bivs = new BookInfoVoServiceImpl();
	String s_id=request.getParameter("id");
	Integer id=null;
	if(StringUtils.isNotBlank(s_id)){
		id=Integer.parseInt(s_id);
	}
	//通过id获得bookinfovo里面的所有属性;
	BookInfoVo biv=bivs.getBookInfoVoById(id);
	request.getSession().setAttribute("biv",biv);
	response.sendRedirect(request.getContextPath()+"/xiangxi.jsp");
	
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	doGet(request, response);
}

}



(7)Delete.java
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(“text/html;charset=UTF-8”);
BookInfoVoService bivs = new BookInfoVoServiceImpl();
String s_id=request.getParameter(“id”);
Integer id=null;
if(StringUtils.isNotBlank(s_id)){
id=Integer.parseInt(s_id);
}
if(bivs.deleteBookInfoVo(id)>0){
response.getWriter().println(“”);
}
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	doGet(request, response);
}

}




5.service
(1)BookInfoVoService.java
public interface BookInfoVoService {

Integer getTotalCount(Integer booktype, String bookname, Integer isborrow);

PageBean getPageBeanByCondition(Integer booktype, String bookname, Integer isborrow, PageBean pb);

BookInfoVo getBookInfoVoById(Integer id);

int upDateBookInfoVo(BookInfo pi);

int addBookInfo(BookInfo pi);

int deleteBookInfoVo(Integer id);

}




(2)BookTypeService.java
public interface BookTypeService {

List<BookType> getBookTypeList();

}




6.service.imp
(1)BookInfoVoServiceImpl.java
public class BookInfoVoServiceImpl implements BookInfoVoService {

@Override
public Integer getTotalCount(Integer booktype, String bookname, Integer isborrow) {
	BookInfoVoDao dao = new BookInfoVoDaoImpl();
	return dao.getTotalCount(booktype,bookname,isborrow);
}

@Override
public PageBean getPageBeanByCondition(Integer booktype, String bookname, Integer isborrow, PageBean pb) {
	BookInfoVoDao dao = new BookInfoVoDaoImpl();
	pb.setList(dao.getPageBeanByCondition(booktype,bookname,isborrow,pb.getPageSize(),pb.getPageIndex()));
	return pb;
}

@Override
public BookInfoVo getBookInfoVoById(Integer id) {
	BookInfoVoDao dao = new BookInfoVoDaoImpl();
	return dao.getBookInfoVoById(id);
}

@Override
public int upDateBookInfoVo(BookInfo pi) {
	BookInfoVoDao dao = new BookInfoVoDaoImpl();
	return dao.upDateBookInfoVo(pi);
}

@Override
public int addBookInfo(BookInfo pi) {
	BookInfoVoDao dao = new BookInfoVoDaoImpl();
	return dao.addBookInfo(pi);
}

@Override
public int deleteBookInfoVo(Integer id) {
	BookInfoVoDao dao = new BookInfoVoDaoImpl();
	return dao.deleteBookInfoVo(id);
}

}




(2)BookTypeServiceImpl.java
public class BookTypeServiceImpl implements BookTypeService {

@Override
public List<BookType> getBookTypeList() {
	BookTypeDao dao = new BookTypeDaoImpl();
	return dao.getBookTypeList();
}

}



7.dao
(1)BookInfoVoDao.java
public interface BookInfoVoDao {

Integer getTotalCount(Integer booktype, String bookname, Integer isborrow);

List<?> getPageBeanByCondition(Integer booktype, String bookname, Integer isborrow, Integer pageSize,
		Integer pageIndex);

BookInfoVo getBookInfoVoById(Integer id);

int upDateBookInfoVo(BookInfo pi);

int addBookInfo(BookInfo pi);

int deleteBookInfoVo(Integer id);

}




(2)BookTypeDao.java
public interface BookTypeDao {

List<BookType> getBookTypeList();

}



8.dao.impl
(1)BookInfoVoDaoImpl.java

public class BookInfoVoDaoImpl implements BookInfoVoDao {

@Override
public Integer getTotalCount(Integer booktype, String bookname, Integer isborrow) {
	QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
	StringBuffer sb = new StringBuffer();
	sb.append("select count(*) from bookinfo i inner join booktype t on i.booktype=t.typeid");
	if(booktype!=null&&booktype!=-1){
		sb.append(" and booktype="+booktype);
	}
	if(StringUtils.isNotBlank(bookname)){
		sb.append(" and bookname like '%"+bookname+"%'");
	}
	if(isborrow!=null&&isborrow!=-1){
		sb.append(" and isborrow="+isborrow);
	}
	String sql = sb.toString().replaceFirst("and","where");
	try {
		return qr.query(sql,new ScalarHandler<Long>()).intValue();
	} catch (SQLException e) {
		throw new RuntimeException(e);
	}
}

@Override
public List<?> getPageBeanByCondition(Integer booktype, String bookname, Integer isborrow, Integer pageSize,
		Integer pageIndex) {
	QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
	StringBuffer sb = new StringBuffer();
	sb.append("select i.*,t.* from bookinfo i inner join booktype t on i.booktype=t.typeid");
	if(booktype!=null&&booktype!=-1){
		sb.append(" and booktype="+booktype);
	}
	if(StringUtils.isNotBlank(bookname)){
		sb.append(" and bookname like '%"+bookname+"%'");
	}
	if(isborrow!=null&&isborrow!=-1){
		sb.append(" and isborrow="+isborrow);
	}
	String sql = sb.toString().replaceFirst("and","where");
	sql=sql+" order by bookid limit ?,?";
	try {
		return qr.query(sql,new BeanListHandler<BookInfoVo>(BookInfoVo.class),(pageIndex-1)*pageSize,pageSize);
	} catch (SQLException e) {
		throw new RuntimeException(e);
	}
}

@Override
public BookInfoVo getBookInfoVoById(Integer id) {
	QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
	StringBuffer sb = new StringBuffer();
	sb.append("select i.*,t.* from bookinfo i inner join booktype t on i.booktype=t.typeid where bookid=?");
	try {
		return qr.query(sb.toString(),new BeanHandler<BookInfoVo>(BookInfoVo.class),id);
	} catch (SQLException e) {
		throw new RuntimeException(e);
	}
}

@Override
public int upDateBookInfoVo(BookInfo pi) {
	QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
	StringBuffer sb = new StringBuffer();
	sb.append("update bookinfo set bookcode=?,bookname=?,booktype=?,bookauthor=?,publishpress=?,publishdate=? where bookid=?");
	try {
		return qr.update(sb.toString(),pi.getBookcode(),pi.getBookname(),pi.getBooktype(),pi.getBookauthor(),pi.getPublishpress(),pi.getPublishdate(),pi.getBookid());
	} catch (SQLException e) {
		throw new RuntimeException(e);
	}
}

@Override
public int addBookInfo(BookInfo pi) {
	QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
	StringBuffer sb = new StringBuffer();
	sb.append("insert into bookinfo (bookid,bookcode,bookname,booktype,bookauthor,publishpress,publishdate,isborrow) values (null,?,?,?,?,?,?,0)");
	try {
		return qr.update(sb.toString(),pi.getBookcode(),pi.getBookname(),pi.getBooktype(),pi.getBookauthor(),pi.getPublishpress(),pi.getPublishdate());
	} catch (SQLException e) {
		throw new RuntimeException(e);
	}
}

@Override
public int deleteBookInfoVo(Integer id) {
	QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
	StringBuffer sb = new StringBuffer();
	sb.append("delete from bookinfo where bookid=?");
	try {
		return qr.update(sb.toString(),id);
	} catch (SQLException e) {
		throw new RuntimeException(e);
	}
}

}




(2)BookTypeDaoImpl.java
public class BookTypeDaoImpl implements BookTypeDao {

@Override
public List<BookType> getBookTypeList() {
	QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource());
	StringBuffer sb = new StringBuffer();
	sb.append("select * from booktype");
	try {
		return qr.query(sb.toString(),new BeanListHandler<BookType>(BookType.class));
	} catch (SQLException e) {
		throw new RuntimeException(e);
	}
}

}

9.jsp页面
(1)index.jsp

<%@ page language=“java” contentType=“text/html; charset=UTF-8”
pageEncoding=“UTF-8”%>

Insert title here ```

(2)list.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<div style="margin: 0px auto;text-align: center;width: 1000px;">
		<h1>图书管理系统</h1>
		<form action="${pageContext.request.contextPath}/BookInfoVoListServlet" id="searchFrom">
		<div style="margin: 0px auto;text-align: center;width: 1000px;">
		图书类型:<select name="booktype">
					<option value="-1">--全部--</option>
					<c:forEach var="type" items="${sessionScope.typeList}">
					<option value="${type.typeid}" <c:if test="${type.typeid==sessionScope.booktype}">selected="selected"</c:if>>${type.typename}</option>
					</c:forEach>
		</select>
       图书名称:<input type="text" name="bookname" value="${sessionScope.bookname}"/>
       是否借阅:<select name="isborrow">
       			<option value="-1">--全部--</option>
       			<option value="0" <c:if test="${sessionScope.isborrow==0}">selected="selected"</c:if>>已借阅</option>
       			<option value="1" <c:if test="${sessionScope.isborrow==1}">selected="selected"</c:if>>未借阅</option>
       </select>
       <input type="hidden" name="pageIndex" value="1" id="pageIndex"/>
       <input type="submit" name="sbt" value="查询"/>
		</div>
		</form>
		<div style="margin: 0px auto;text-align: right;width: 1000px;">
			<a href="${pageContext.request.contextPath}/PreAddServlet">添加</a>
		</div>
		<div style="margin: 0px auto;text-align: center;width: 1000px;">
			<table border="1" width="1000px">
				<tr>
					<td>图书编号</td>
					<td>图书分类</td>
					<td>图书名称</td>
					<td>作者</td>
					<td>出版社</td>
					<td>操作</td>
					<td>详细</td>
					<td>删除</td>
					<td>修改</td>
				</tr>
				<c:forEach var="book" items="${sessionScope.pb.list}">
				<tr>
					<td>${book.bookcode}</td>
					<td>${book.booktype}</td>
					<td>${book.bookname}</td>
					<td>${book.bookauthor}</td>
					<td>${book.publishpress}</td>
					<td>${book.isborrow==0?'已借阅':'未借阅'}</td>
					<td><a href="${pageContext.request.contextPath}/XiangXiServlet?id=${book.bookid}">详细</a></td>
					<td><a href="${pageContext.request.contextPath}/DeleteServlet?id=${book.bookid}">删除</a></td>
					<td><a href="${pageContext.request.contextPath}/PreUpdateServlet?id=${book.bookid}">修改</a></td>
				</tr>
				</c:forEach>
				<tr>
					<td colspan="9">
						<a href="javascript:page(1)">首页</a>
						<a href="javascript:page(${sessionScope.pb.pageIndex-1})">上一页</a>
						<a href="javascript:page(${sessionScope.pb.pageIndex+1})">下一页</a>
						<a href="javascript:page(${sessionScope.pb.totalPage})">尾页</a>
						${sessionScope.pb.pageIndex}/${sessionScope.pb.totalPage}页
						<input type="text" name="pageNum" id="pageNum" size="5px"/>
						<input type="button" name="btn" value="go" onclick="go()"/>
					</td>
				</tr>
			</table>
		</div>
	</div>
</body>
<script type="text/javascript">
	function page(pg){
		document.getElementById("pageIndex").value=pg;
		document.getElementById("searchFrom").submit();
	}
	function go(){
		var pg=document.getElementById("pageNum").value;
		if(isNaN(pg)){
			alert("对不起。请输入数字")
			document.getElementById("pageNum").value="";
		}else{
			page(pg);
		}
	}
</script>
</html>

(3)add.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<div style="margin: 0px auto;text-align: center;width: 500px;">
		<h1>图书添加系统</h1>
		<form action="${pageContext.request.contextPath}/AddServlet">
		<div style="margin: 0px auto;text-align: center;width: 500px;">
			<table width="500px" border="1">
				<tr>
					<td>图书编号</td>
					<td><input type="text" name="bookcode"/></td>
				</tr>
				<tr>
					<td>图书名称</td>
					<td><input type="text" name="bookname"/></td>
				</tr>
				<tr>
					<td>图书分类</td>
					<td>
						<select name="booktype">
						<c:forEach var="type" items="${sessionScope.typeList}">
							<option value="${type.typeid}">${type.typename}</option>
						</c:forEach>
						</select>	
					</td>
				</tr>
				<tr>
					<td>作者</td>
					<td><input type="text" name="bookauthor"/></td>
				</tr>
				<tr>
					<td>出版社</td>
					<td><input type="text" name="publishpress"/></td>
				</tr>
				<tr>
					<td>出版时间</td>
					<td><input type="text" name="publishdate"/></td>
				</tr>
				<tr>
					<td colspan="2">
					
						<input type="submit" name="sbt" value="提交"/>
						<input type="reset" name="btn" value="取消"/>
					</td>
				</tr>
			</table>	
		</div>
		<input type="hidden" name="id" value="${sessionScope.biv.bookid}"/>
		</form>
	</div>
</body>
</html>

(4)update.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<div style="margin: 0px auto;text-align: center;width: 500px">
		<h1>图书修改系统</h1>
		<form action="${pageContext.request.contextPath}/UpdateServlet">
		<div style="margin: 0px auto;text-align: center;width: 500px">
			<table border="1" width="500px">
				<tr>
					<td>图书编号</td>
					<td><input type="text" name="bookcode" value="${sessionScope.biv.bookcode}"/></td>
				</tr>
				<tr>
					<td>图书名称</td>
					<td><input type="text" name="bookname" value="${sessionScope.biv.bookname}"/></td>
				</tr>
				<tr>
					<td>图书分类</td>
					<td>
						<select name="booktype">
						<option value="-1">--全部--</option>
						<c:forEach var="type" items="${sessionScope.typeList}">
							<option value="${type.typeid}" <c:if test="${type.typeid==sessionScope.biv.booktype}">selected="selected"</c:if>>${type.typename}</option>
						</c:forEach>
						</select>
					</td>
				</tr>
				<tr>
					<td>作者</td>
					<td><input type="text" name="bookauthor" value="${sessionScope.biv.bookauthor}"  /></td>
				</tr>
				<tr>
					<td>出版社</td>
					<td><input type="text" name="publishpress" value="${sessionScope.biv.publishpress}"  /></td>
				</tr>
				<tr>
					<td>出版时间</td>
					
					<td><input name="publishdate" value="<fmt:formatDate value='${sessionScope.biv.publishdate}' pattern='yyyy-MM-dd'/>"/></td>
				</tr>
			</table>
			<div style="margin: 0px auto;text-align: center;width: 500px">
				<input type="hidden" name="id" value="${sessionScope.biv.bookid}"/>
				<input type="submit" name="btn" value="修改"/>
				<input type="button" name="btn" value="返回" onclick="javascript:history.go(-1)"/>
				<input type="reset" name="res" value="重置"/>
			</div>
		</div>
		</form>
	</div>
</body>
</html>

(5)xiangxi.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<div style="margin:0px auto;text-align: center;width: 500px;">
	<h1>图书详细系统</h1>
	<form action="${pageContext.request.contextPath}/XiangXiServlet">
		<div style="margin:0px auto;text-align: center;width: 500px;">
			<table width="500px" border="1">
				<tr>
					<td>图书编号</td>
					<td>${sessionScope.biv.bookcode}</td>
				</tr>
				<tr>
					<td>图书名称</td>
					<td>${sessionScope.biv.bookname}</td>
				</tr>
				<tr>
					<td>图书分类</td>
					<td>${sessionScope.biv.typename}</td>
				</tr>
				<tr>
					<td>作者</td>
					<td>${sessionScope.biv.bookauthor}</td>
				</tr>
				<tr>
					<td>出版社</td>
					<td>${sessionScope.biv.publishpress}</td>
				</tr>
				<tr>
					<td>出版时间</td>
					<td>${sessionScope.biv.publishdate}</td>
				</tr>
				<tr>
					<td colspan="2">
						<input type="button" name="sbt" value="返回" onclick="javascript:history.go(-1)"/>
					</td>
				</tr>
			</table>
		</div>
		</form>
	</div>
</body>
</html>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值