图书管理系统_jdbc连接下基于servlet的最原始的javaWeb项目

最近疯了一段时间,感觉忘得差不多了,找到以前做的项目,重温一下

jdbc连接下基于servlet的最原始的javaWeb项目

工具:Eclipse ,oracle数据库,tomcat7 ,JDK 7

首先说一下需求: 简易的图书管理系统,顾名思义,简约就好,可以少一些表,但是该有的架子还是需要有的

图书管理系统_jdbc连接下基于servlet的最原始的javaWeb项目_第1张图片

看一下数据库的:

图书管理系统_jdbc连接下基于servlet的最原始的javaWeb项目_第2张图片

先看一下代码的结构图:分层嘛

图书管理系统_jdbc连接下基于servlet的最原始的javaWeb项目_第3张图片

再看一下运行的截图,做了拦截器,不登陆是没法访问这个界面的

图书管理系统_jdbc连接下基于servlet的最原始的javaWeb项目_第4张图片

下面我准备开始一步一步回忆啦,

就已图书那块为例,首先我要见数据库建表,

图书管理系统_jdbc连接下基于servlet的最原始的javaWeb项目_第5张图片

数据库完成后,就转入java 端啦,分层的思想,先新建包:dao,  service ,servlet, database,vo

vo:存实体类,比如图书类

database:操作数据库的类,连接数据库啦,关闭数据库啦等等

dao: 存对数据库增删改查的语句

service :进行事务控制

servlet:响应jsp 的请求

基本流程就是:(以用户查询图书为例)用户访问网站会发起请求(查询),请求先到servlet,端,servlet调用service里的查询图书的方法,service不是直接处理,而是转发任务去dao,dao调用database进行连接数据库,继而进行实际的查询工作,查出来的结果要进行格式化,就用到了我们的vo,以vo的格式将查询出来的数据格式化,再将结果返回service,service在这个例子里看不出什么作用,但是当用户进行新增或者修改删除时,就有用了,做这些操作可能会失败,service的作用就是如果失败,就进行事务回滚,不破坏数据库原有信息,service将结果返回servlet,servlet跳转至相应页面,将数据展示给用户

没听懂我也没办法啦

我这个项目是把功能也分层啦,图书是图书的,用户是用户的,然后连接数据库的我给封装在一起啦,common里存的就是公共的,什么过滤器啦,登陆登出,验证码啦这些

继续说图书这个模块,

图书管理系统_jdbc连接下基于servlet的最原始的javaWeb项目_第6张图片

数据的连接和增删改查的语句我都封装在了一起,所以图书模块里就没有这些啦

看看Book 这个类:

public class BookVO {
    // id
    private String bid;
    // 书名
    private String btitle;

    // 作者
    private String bauthor;

    // 封面图片
    private String bimage;

    // 图书简介
    private String bbriefinfo;

    // 是否可借
    private String bcanborrow;
    
    
    public String getBcanborrow() {
		return bcanborrow;
	}

	public void setBcanborrow(String bcanborrow) {
		this.bcanborrow = bcanborrow;
	}

	
    public String getBid() {
        return bid;
    }

    
    public void setBid(String bid) {
        this.bid = bid == null ? null : bid.trim();
    }

    
    public String getBtitle() {
        return btitle;
    }

    
    public void setBtitle(String btitle) {
        this.btitle = btitle == null ? null : btitle.trim();
    }

    
    public String getBauthor() {
        return bauthor;
    }

   
    public void setBauthor(String bauthor) {
        this.bauthor = bauthor == null ? null : bauthor.trim();
    }

    public String getBimage() {
        return bimage;
    }

    public void setBimage(String bimage) {
        this.bimage = bimage == null ? null : bimage.trim();
    }

    public String getBbriefinfo() {
        return bbriefinfo;
    }

    public void setBbriefinfo(String bbriefinfo) {
        this.bbriefinfo = bbriefinfo == null ? null : bbriefinfo.trim();
    }

}
因为用户要借还书,所有这个功能我给写在一起啦 StudentBorrowBook类

public class StudentBorrowBookVO {
    // id
    private String sbbid;

    // 学生id
    private String sid;
    
    // 学生name
    private String sname;

    // 图书name
    private String bname;

	// 图书id
    private String bid;

    // 借书时间
    private Date borrowtime;

    // 还书时间
    private Date returntime;

    public String getSname() {
    	return sname;
    }
    
    
    public void setSname(String sname) {
    	this.sname = sname;
    }
    
    
    public String getBname() {
    	return bname;
    }
    
    
    public void setBname(String bname) {
    	this.bname = bname;
    }
    
    
    public String getSbbid() {
        return sbbid;
    }

    
    public void setSbbid(String sbbid) {
        this.sbbid = sbbid == null ? null : sbbid.trim();
    }

    
    public String getSid() {
        return sid;
    }

    
    public void setSid(String sid) {
        this.sid = sid == null ? null : sid.trim();
    }

   
    public String getBid() {
        return bid;
    }

    
    public void setBid(String bid) {
        this.bid = bid == null ? null : bid.trim();
    }

   
    public Date getBorrowtime() {
        return borrowtime;
    }

    //java.util.Dat ----> java.sql.Date
    public void setBorrowtime(java.util.Date  borrowtime) {
        this.borrowtime = new Date(borrowtime.getTime());
    }

    
    public Date getReturntime() {
        return returntime;
    }

    
    public void setReturntime(java.util.Date returntime) {
        this.returntime = new Date(returntime.getTime());
    }
}
添加图书的界面:


<span style="white-space:pre">	</span><form id="addBook" action="<%=request.getContextPath() %>/bookServlet?action=addBook"
	 	method="post" enctype="multipart/form-data">
		<table cellpadding="3" cellspacing="1" align="center">
			<tr>
				<td align="center" valign="middle">书名:</td>
				<td align="center" valign="middle">
				<input type="text" name="bookTitle"/></td>
			</tr>
			<tr>
				<td align="center" valign="middle">作者:</td>
				<td align="center" valign="middle"><input type="text" name="bookAuthor"  /></td>
			</tr>
			<tr>
				<td align="center" valign="middle" colspan="2">
					<div ><img id="ImgPr"  width="150px" height="150px"/></div>
				</td>
			</tr>
			<tr>
				<td align="center" valign="middle">图片:</td>
				<td align="center" valign="middle"><input type="file" id ="file" name= "file"></td>
			</tr>
			<tr>
				<td align="center" valign="middle">简介:</td>
				<td align="center" valign="middle"><textarea cols="40" rows="10" name="Bbriefinfo" ></textarea></td>
			</tr>
			<tr>
				<td align="center" valign="middle">可借:</td>
				<td align="center" valign="middle"><input type="checkbox"  name="Bcanborrow" />
				</td>
			</tr>
			<tr>
				<td colspan="2" align="center" valign="middle"><input type="submit" value="更新图书" /></td>
			</tr>		
		</table>
	</form>
主要有个头像的上传,没有使用框架只能自己处理啦,看看servlet就知道了

<span style="white-space:pre">		</span>if("addBook".equals(action)){			
			//新增图书
			FileItemFactory factory = new DiskFileItemFactory();
			ServletFileUpload sfu = new  ServletFileUpload(factory);
			String[] name =new String[5];
			int namelength = 0;
			boolean flag = true;//标记是否有新图片上传
			try{
				List<FileItem> items = sfu.parseRequest(request);
				namelength = items.size();
				for(int i = 0;i<items.size();i++){
					FileItem item = items.get(i);
					if(item.isFormField()){
						//普通表单域
						name[i] = item.getString();
						//System.out.println(item.getString());
					}
					else{
						//文件上传域
						ServletContext sctx = getServletContext();
						//String path = "upload"+File.separator+"img";
						if(item.getName().equals("")){
							//没有上传
							name[i] = "";
							flag = false;
						}else{
							Date date= new Date();
							String path = sctx.getRealPath("upload"+File.separator+"img");
							//System.out.println(path);
							String filename = date.getTime()+""+item.getName();
							String picture = path+File.separator+filename;
							System.out.println(picture);
							name[i] = picture;
							File file = new File(picture);
							item.write(file);
						}
					}
				}
			}catch( Exception e){
				e.printStackTrace();
			}
			BookVO book = new BookVO();
			book.setBtitle(name[0]);
			book.setBauthor(name[1]);
			String str = name[2];
			if(flag){
				//没有图片上传
				str = str.substring(str.indexOf("upload"+File.separator+"img"));
			}
			//System.out.println(str);
			book.setBimage(str);
			book.setBbriefinfo(name[3]);
			//如果未选中 type="checkbox" 读取不到参数
			if(namelength==5){
				//可借
				book.setBcanborrow("1");
			}else{
				book.setBcanborrow("0");
			}
			
		<strong>	BookService bookSerice = new BookSericeImpl();
			try {
				bookSerice.insertBook(book);</strong>
				PageVO page = new PageVO();
				page.setCurrentPage(1);
				page.setRowsPerPage(10);
				//回主页面
				backToMian(request, response,page);
				
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
service层调用dao层,事务控制的大概框架:
<span style="white-space:pre">		</span>conn = DBUtil.openConnection();
		try {
			conn.setAutoCommit(false);
			//插入1表
			
			//插入2表
			
			//都成功后才提交commit.
			conn.commit();
		} catch (SQLException e) {
			e.printStackTrace();
			try {
				conn.rollback();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		} finally {
			DBUtil.close();
		}

dao层:

<span style="white-space:pre">	</span>public void insertBook(BookVO bookVo) throws Exception {
		String id = UUID.randomUUID().toString();
		//BOOK (BID, BTITLE, BAUTHOR, BIMAGE, BBRIEFINFO, BCANBORROW)
		String sql = "INSERT INTO BOOK VALUES(?,?,?,?,?,?)";
		List params = new ArrayList();
		params.add(id);
		params.add(bookVo.getBtitle());
		params.add(bookVo.getBauthor());
		params.add(bookVo.getBimage());
		params.add(bookVo.getBbriefinfo());
		params.add(new BigDecimal(bookVo.getBcanborrow()));
		executeUpdate(sql,params);
	}
这里做了查询时的分页


分页代码:

oracle:

sql = "select * from (select p.*, rownum rn from (select * from product order by productid) p where rownum<=?) where rn >?";
mysql:

String mysql = "select * from (#mysqlstatement#) as mysql_db limit ?,?";


查询图书时做了分类查询,使用模糊查询就好了

图书管理系统_jdbc连接下基于servlet的最原始的javaWeb项目_第7张图片

其他的功能跟这个类似,框架打好后,主要工作量就在servlet端啦

贴上book 模块的servlet的全部代码

一个极其简易的 ,serlvet写了400+,感觉没爱了

package com.booksystem.module.book.action.servlet;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

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

import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

import com.booksystem.common.vo.PageVO;
import com.booksystem.module.book.service.BookSericeImpl;
import com.booksystem.module.book.service.BookService;
import com.booksystem.module.book.service.BorrowBooksService;
import com.booksystem.module.book.service.BorrowBooksServiceImpl;
import com.booksystem.module.book.vo.BookVO;
import com.booksystem.module.book.vo.StudentBorrowBookVO;

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

	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
	
		response.setContentType("text/html;charset=utf-8");
		request.setCharacterEncoding("utf-8");

 		String action  = request.getParameter("action");
		// URL http://localhost:8008/BooksSystem/bookServlet?action=main
		if("main".equals(action)){	
			PageVO page = new PageVO();
			// 当前页,即要查询的是第几页
			int currentPage = 1;
			// 每页记录数 ,写死
			int rowsPerPage = 10;
			
			if(request.getParameter("currentPage")!=null) {
				currentPage = Integer.parseInt(request.getParameter("currentPage"));
			}
			if(request.getParameter("rowsPerPage")!=null) {
				rowsPerPage = Integer.parseInt(request.getParameter("rowsPerPage"));
			}
			page.setCurrentPage(currentPage);
			page.setRowsPerPage(rowsPerPage);
			backToMian(request, response,page);
			
		}else if("searchByNum".equals(action)){
			String queryNum =  java.net.URLDecoder.decode(request.getParameter("queryNum"), "UTF-8");
			String way = request.getParameter("search");
			if(way.equals("BookId")){
				//对queryNum 合法性要进行检查
				BookService bookSerice = new BookSericeImpl();
				try {
					BookVO book = bookSerice.findBookById(queryNum);
					request.setAttribute("book", book);
					request.getRequestDispatcher("source/byBookNum.jsp").forward(request, response);
//				request.getRequestDispatcher("source/addBook.jsp").forward(request, response);
				} catch (Exception e) {
					e.printStackTrace();
					//错误页面
				}
			}else if("UserId".equals(way)){
				BorrowBooksService borrowBooksService = new BorrowBooksServiceImpl(); 
				try {
					List<StudentBorrowBookVO> studentBorrowBookVO = borrowBooksService.findBookByStudentId(queryNum);
					request.setAttribute("studentBorrowBookVO",studentBorrowBookVO);
					request.getRequestDispatcher("source/byUserNum.jsp").forward(request, response);
				} catch (Exception e) {
					e.printStackTrace();
					//错误页面
				}
			}else if("BookName".equals(way)){
				//此处未分页!!!因为点击下一页时servlet参数乱了,需要单独写一个servlet。
				BookService bookSerice = new BookSericeImpl();
				try {
					List<BookVO> books = bookSerice.findBookByName(queryNum,null);
					request.setAttribute("books", books);
					request.getRequestDispatcher("source/viewBooks.jsp").forward(request, response);
				} catch (Exception e) {
					e.printStackTrace();
					//错误页面
				}
			}else if("UserName".equals(way)){
				BorrowBooksService borrowBooksService = new BorrowBooksServiceImpl(); 
				try {
					List<StudentBorrowBookVO> studentBorrowBookVO = borrowBooksService.findBookByStudentname(queryNum);
					request.setAttribute("studentBorrowBookVO", studentBorrowBookVO);
					request.getRequestDispatcher("source/byUserNum.jsp").forward(request, response);
				} catch (Exception e) {
					e.printStackTrace();
					//错误页面
				}
			}
			
		}else if("searchBookById".equals(action)){			
			//更新图书--查询
			String id = request.getParameter("queryNum");
			BookService bookSerice = new BookSericeImpl();
			try {
				BookVO book = bookSerice.findBookById(id);
				request.setAttribute("book", book);
				request.getRequestDispatcher("source/editBook.jsp").forward(request, response);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}else if("editBookDo".equals(action)){
			//更新图书--修改
			FileItemFactory factory = new DiskFileItemFactory();
			ServletFileUpload sfu = new  ServletFileUpload(factory);
			String[] name =new String[8];
			int namelength = 0;
			boolean flag = true;//标记是否有新图片上传
			try{
				List<FileItem> items = sfu.parseRequest(request);
				namelength = items.size();
				for(int i = 0;i<items.size();i++){
					FileItem item = items.get(i);
					if(item.isFormField()){
						//普通表单域
						name[i] = item.getString();
					}
					else{
						//文件上传域
						ServletContext sctx = getServletContext();
						if(item.getName().equals("")){
							//没有上传,获得原图片
							name[i] = request.getParameter("ImgPr");
							flag = false;
						}else{
							//String path = "upload"+File.separator+"img";
							Date date= new Date();
							String path = sctx.getRealPath("upload"+File.separator+"img");
							//System.out.println(path);
							//有上传
							String filename = date.getTime()+item.getName();
							String picture = path+File.separator+filename;
							//System.out.println(picture);
							name[i] = picture;
							File file = new File(picture);
							item.write(file);
						}
					}
				}
			}catch( Exception e){
				e.printStackTrace();
			}
			BookVO book = new BookVO();
			book.setBid(name[0]);
			book.setBtitle(name[1]);
			book.setBauthor(name[2]);
			String str = name[3];
			if(flag){
				//没有图片上传
				str = str.substring(str.indexOf("upload"+File.separator+"img"));
			}
			//System.out.println(str);
			book.setBimage(str);
			book.setBbriefinfo(name[4]);
			//如果未选中 type="checkbox" 读取不到参数
			if(namelength==6){
				//可借
				book.setBcanborrow("1");
			}else{
				book.setBcanborrow("0");
			}
			
			BookService bookSerice = new BookSericeImpl();
			try {
				bookSerice.updateBook(book);
				PageVO page = new PageVO();
				page.setCurrentPage(1);
				page.setRowsPerPage(10);
				//回主页面
				backToMian(request, response,page);
				
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}else if("addBook".equals(action)){			
			//新增图书
			FileItemFactory factory = new DiskFileItemFactory();
			ServletFileUpload sfu = new  ServletFileUpload(factory);
			String[] name =new String[5];
			int namelength = 0;
			boolean flag = true;//标记是否有新图片上传
			try{
				List<FileItem> items = sfu.parseRequest(request);
				namelength = items.size();
				for(int i = 0;i<items.size();i++){
					FileItem item = items.get(i);
					if(item.isFormField()){
						//普通表单域
						name[i] = item.getString();
						//System.out.println(item.getString());
					}
					else{
						//文件上传域
						ServletContext sctx = getServletContext();
						//String path = "upload"+File.separator+"img";
						if(item.getName().equals("")){
							//没有上传
							name[i] = "";
							flag = false;
						}else{
							Date date= new Date();
							String path = sctx.getRealPath("upload"+File.separator+"img");
							//System.out.println(path);
							String filename = date.getTime()+""+item.getName();
							String picture = path+File.separator+filename;
							System.out.println(picture);
							name[i] = picture;
							File file = new File(picture);
							item.write(file);
						}
					}
				}
			}catch( Exception e){
				e.printStackTrace();
			}
			BookVO book = new BookVO();
			book.setBtitle(name[0]);
			book.setBauthor(name[1]);
			String str = name[2];
			if(flag){
				//没有图片上传
				str = str.substring(str.indexOf("upload"+File.separator+"img"));
			}
			//System.out.println(str);
			book.setBimage(str);
			book.setBbriefinfo(name[3]);
			//如果未选中 type="checkbox" 读取不到参数
			if(namelength==5){
				//可借
				book.setBcanborrow("1");
			}else{
				book.setBcanborrow("0");
			}
			
			BookService bookSerice = new BookSericeImpl();
			try {
				bookSerice.insertBook(book);
				PageVO page = new PageVO();
				page.setCurrentPage(1);
				page.setRowsPerPage(10);
				//回主页面
				backToMian(request, response,page);
				
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}else if("deleteBook".equals(action)){			
			//删除图书
			String id = request.getParameter("queryNum");
			BookService bookSerice = new BookSericeImpl();
			PageVO page = new PageVO();
			page.setCurrentPage(1);
			page.setRowsPerPage(10);
			try {
				bookSerice.deleteBook(id);
				//回主页面
				backToMian(request, response,page);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		/* ----------------借阅图书-------------------- */
		else if("borrowBook".equals(action)){			
			//借阅图书
			//对是否可借,是否达到借阅上数 检查,修改
			String bookId = request.getParameter("bookId");
			String userId = request.getParameter("userId");
			BorrowBooksService borrowBooksService = new BorrowBooksServiceImpl();
			StudentBorrowBookVO studentBorrowBookVO = new StudentBorrowBookVO();
			studentBorrowBookVO.setBid(bookId);
			studentBorrowBookVO.setSid(userId);
			Date borrowDate = new Date();
			Calendar calender = Calendar.getInstance();
            calender.setTime(borrowDate);
            //可借一个月
            calender.add(Calendar.MONTH, 1);
            Date returnDate = calender.getTime();
            studentBorrowBookVO.setBorrowtime(borrowDate);
            studentBorrowBookVO.setReturntime(returnDate);
			try {
				borrowBooksService.insertStudentBorrowBook(studentBorrowBookVO);
				//request.getRequestDispatcher("source/borrowManage.jsp").forward(request, response);
				response.sendRedirect("source/borrowManage.jsp");
			} catch (Exception e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
			
		}else if("reBorrowBook".equals(action)){			
			//续借图书--加一个月
			BorrowBooksService borrowBooksService = new BorrowBooksServiceImpl();
			StudentBorrowBookVO studentBorrowBookVO =new StudentBorrowBookVO();
			try {
				String sbbid = request.getParameter("sbbid");
				String returntime = request.getParameter("returntime");
				SimpleDateFormat sdf =  new SimpleDateFormat("yyyy-MM-dd");
				Date  date = sdf.parse(returntime) ;
				Calendar calender = Calendar.getInstance();
	            calender.setTime(date);
	            calender.add(Calendar.MONTH, 1);
	            date = calender.getTime();
				studentBorrowBookVO.setReturntime(date);
				studentBorrowBookVO.setSbbid(sbbid);
				borrowBooksService.editStudentBorrowBook(studentBorrowBookVO);
//				request.getRequestDispatcher("source/borrowManage.jsp").forward(request, response);
				response.sendRedirect("source/borrowManage.jsp");
			} catch (Exception e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
			
		}else if("returnBook".equals(action)){			
			//归还图书
			String sbbid = request.getParameter("sbbid");
			BorrowBooksService borrowBooksService = new BorrowBooksServiceImpl();
			try {
				borrowBooksService.deleteStudentBorrowBook(sbbid);
//				request.getRequestDispatcher("source/borrowManage.jsp").forward(request, response);
				response.sendRedirect("source/borrowManage.jsp");
			} catch (Exception e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
			
		}else if("borrowManage".equals(action)){
			String queryNum =  java.net.URLDecoder.decode(request.getParameter("queryNum"), "UTF-8");
			String way = request.getParameter("search");
//			if(way.equals("BookId")){
//				///////////////////////////
//				BookService bookSerice = new BookSericeImpl();
//				try {
//					BookVO book = bookSerice.findBookById(queryNum);
//					request.setAttribute("book", book);
//					request.getRequestDispatcher("source/byBookNum.jsp").forward(request, response);
////				request.getRequestDispatcher("source/addBook.jsp").forward(request, response);
//				} catch (Exception e) {
//					e.printStackTrace();
//					//错误页面
//				}
//			}else 
			if("BookName".equals(way)){
				//可以分页
				PageVO page = new PageVO();
				// 当前页,即要查询的是第几页
				int currentPage = 1;
				// 每页记录数 ,写死
				int rowsPerPage = 5;
				
				if(request.getParameter("currentPage")!=null) {
					currentPage = Integer.parseInt(request.getParameter("currentPage"));
				}
				if(request.getParameter("rowsPerPage")!=null) {
					rowsPerPage = Integer.parseInt(request.getParameter("rowsPerPage"));
				}
				page.setCurrentPage(currentPage);
				page.setRowsPerPage(rowsPerPage);
				String userid = request.getParameter("userid");
				BookService bookSerice = new BookSericeImpl();
				try {
					List<BookVO> books = bookSerice.findBookByName(queryNum,page);
					request.setAttribute("books", books);
					request.setAttribute("page", page);
					request.setAttribute("userid", userid);
					request.getRequestDispatcher("source/borrowBooks.jsp").forward(request, response);
				} catch (Exception e) {
					e.printStackTrace();
					//错误页面
				}
			}else if("UserId".equals(way)){
				BorrowBooksService borrowBooksService = new BorrowBooksServiceImpl(); 
				try {
					List<StudentBorrowBookVO> studentBorrowBookVO = borrowBooksService.findBookByStudentId(queryNum);
					request.setAttribute("studentBorrowBookVO",studentBorrowBookVO);
					request.getRequestDispatcher("source/byUserNum.jsp").forward(request, response);
				} catch (Exception e) {
					e.printStackTrace();
					//错误页面
				}
			}else if("UserName".equals(way)){
				BorrowBooksService borrowBooksService = new BorrowBooksServiceImpl(); 
				try {
					List<StudentBorrowBookVO> studentBorrowBookVO = borrowBooksService.findBookByStudentname(queryNum);
					request.setAttribute("studentBorrowBookVO", studentBorrowBookVO);
					request.getRequestDispatcher("source/byUserNum.jsp").forward(request, response);
				} catch (Exception e) {
					e.printStackTrace();
					//错误页面
				}
			}
			
		}
	}

	//返回全部查询页面,需要分页
	private void backToMian(HttpServletRequest request, HttpServletResponse response,PageVO page) throws ServletException, IOException{
		BookService bookSerice = new BookSericeImpl();
		try {
			List<BookVO> books = bookSerice.findAllBook(page);
			request.setAttribute("books", books);
			request.setAttribute("page", page);
			request.getRequestDispatcher("source/viewBooks.jsp").forward(request, response);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

看一下过滤器的主要代码

<span style="white-space:pre">	</span>String needInterceptUrl = "(.*source.*\\.jsp)|(.*Servlet.*)";
        //用户没有登陆,并且访问后面的需要登陆才能访问的页面,跳转到登陆页面;如果用户已经登陆了,无视
        if(session.getAttribute(Constant.USER_INFO)==null && servletPath.matches(needInterceptUrl)){
        	response.sendRedirect("/BooksSystem/index.jsp");
        }

项目其实有很多需要完善的,比如界面,错误页面,图书馆的业务等等,太多啦,有需要的可以自行下载源码扩展

为什么需要 1 分,首先申明我不是缺这一分,是担心有人瞎下载源码,用作其他用途,所以加了限制,但是又不会需要你太多分

如果你需要,但是有没有分,可以私信我,或者:[email protected],不一定及时回复哦!


项目源码:http://download.csdn.net/detail/i_do_can/9383757

你可能感兴趣的:(jdbc,servlet,图书管理系统)