Day14
BusinessService类
public interface BusinessService { void addBook(Book book); Page findAllBook(String pagenum); void userRegister(User user); User userLogin(String username ,String password,String type); void addCategory(Category category); Category findCategoryById(String id); List<Category> findAllCategory(); void delCategory(String categoryId); void editCategory(Category category); void delBook(String bookId); Book findBookById(String bookId); void editBook(Book book); Page findAllBookPageRecords(String pagenum, String categoryId); }
BusinessServiceImpl类
public class BusinessServiceImpl implements BusinessService { BookDao bookDao = new BookDaoImpl(); UserDao userDao = new UserDaoImpl(); CategoryDao categoryDao = new CategoryDaoImpl(); public void addBook(Book book) { book.setId(UUID.randomUUID().toString()); bookDao.insertBook(book); } public void delBook(String bookId) { bookDao.remove(bookId); } public Book findBookById(String bookId) { Book book = bookDao.getBookById(bookId); return book; } public void editBook(Book book) { bookDao.updateBook(book); } public Page findAllBook(String pagenum) { int currentPagenum = 1; if(pagenum != null){ currentPagenum = Integer.parseInt(pagenum); } int totalRecords = bookDao.findAllBookNumber(); Page page = new Page(currentPagenum, totalRecords); List<Book> records = bookDao.findAllBookRecords(page.getStartIndex(), page.getPageSize()); page.setRecords(records); System.out.println("page = " +page); return page; } @Override public Page findAllBookPageRecords(String pagenum, String categoryId) { int currentPagenum = 1; if(pagenum != null){ currentPagenum = Integer.parseInt(pagenum); } int totalRecords = bookDao.findPageBookNumber(categoryId); Page page = new Page(currentPagenum, totalRecords); List<Book> records = bookDao.findPageBooks(page.getStartIndex(), page.getPageSize(),categoryId); page.setRecords(records); System.out.println("page = " +page); return page; } public void addCategory(Category category) { category.setId(UUID.randomUUID().toString()); categoryDao.save(category); } public Category findCategoryById(String id) { return categoryDao.getCategoryById(id); } public List<Category> findAllCategory() { return categoryDao.getAllCategory(); } public void delCategory(String categoryId) { categoryDao.removeCategory(categoryId); } public void editCategory(Category category) { categoryDao.updateCategory(category); } public void userRegister(User user) { user.setId(UUID.randomUUID().toString()); System.out.println("service中的user是"+user); userDao.save(user); } public User userLogin(String username, String password,String type) { return userDao.login(username,password,type); }
servlet包ControlServlet类
public class ControlServlet extends HttpServlet {
BusinessService s = new BusinessServiceImpl();
Book book = new Book();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding("utf-8");
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
String op = request.getParameter("op");
if ("addCategory".equals(op)) {
addCategory(request, response);
// 如果传过来的参数是“findAllCategory” 与 op的值相同
} else if ("showBookDetails".equals(op)) {
showBookDetails(request, response);
} else if ("showIndex".equals(op)) {
showIndex(request, response);
} else if ("showCategoryBooks".equals(op)) {
showCategoryBooks(request, response);
} else if ("buyBook".equals(op)) {
buyBook(request, response);
} else if ("changeNum".equals(op)) {
changeNum(request, response);
} else if("delOneItem".equals(op)){
delOneItem(request,response);
}else if ("findAllCategory".equals(op)) {
findAllCategory(request, response);
} else if ("userRegister".equals(op)) {
userRegister(request, response);
} else if ("userLogin".equals(op)) {
userLogin(request, response);
} else if ("logout".equals(op)) {
logout(request, response);
} else if ("addBookView".equals(op)) {
addBookView(request, response);
} else if ("addBook".equals(op)) {
addBook(request, response);
} else if ("showBook".equals(op)) {
showBook(request, response);
} else if ("delCategory".equals(op)) {
delCategory(request, response);
} else if ("editCategoryView".equals(op)) {
editCategoryView(request, response);
} else if ("editCategory".equals(op)) {
editCategory(request, response);
} else if ("delBook".equals(op)) {
delBook(request, response);
} else if ("editBookView".equals(op)) {
editBookView(request, response);
} else if ("editBook".equals(op)) {
editBook(request, response);
}
}
// 删除购物项目
private void delOneItem(HttpServletRequest request,
HttpServletResponse response) throws IOException {
String bookId = request.getParameter("bookId");
Cart cart = (Cart) request.getSession().getAttribute("cart");
cart.getItems().remove(bookId);
// 重定向
response.sendRedirect(request.getContextPath()+"/showCart.jsp");
}
// 修改购物项的数量
private void changeNum(HttpServletRequest request,
HttpServletResponse response) throws IOException {
String bookId = request.getParameter("bookId");
String newNum = request.getParameter("num");
Cart cart = (Cart) request.getSession().getAttribute("cart");
CartItem item = cart.getItems().get(bookId);
item.setQuantity(Integer.parseInt(newNum));
// 重定向
response.sendRedirect(request.getContextPath()+"/showCart.jsp");
}
//购买书籍
private void buyBook(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String bookId = request.getParameter("bookId");
Book b = s.findBookById(bookId);
HttpSession session = request.getSession();
Cart cart = (Cart) session.getAttribute("cart");
if (cart == null) {
cart = new Cart();
session.setAttribute("cart", cart);
}
cart.addBook(b);
System.out.println("cart" + cart.getItems());
request.setAttribute("msg",
"书籍购买成功,<a href='" + request.getContextPath() + "'>请继续购物!</a>");
request.getRequestDispatcher("/message.jsp").forward(request, response);
}
//展示图书的详细信息
private void showBookDetails(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String bookId = request.getParameter("bookId");
Book b = s.findBookById(bookId);
request.setAttribute("b", b);
request.getRequestDispatcher("/showBookDetails.jsp").forward(request,
response);
}
private void showCategoryBooks(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String pagenum = request.getParameter("pagenum");
String categoryId = request.getParameter("categoryId");
List<Category> cs = s.findAllCategory();
Page page = s.findAllBookPageRecords(pagenum, categoryId);
page.setUrl("servlet/ControlServlet?op=showCategoryBooks&categoryId="
+ categoryId);
request.setAttribute("page", page);
request.setAttribute("cs", cs);
request.getRequestDispatcher("/showAllBooks.jsp").forward(request,
response);
}
//展示一个首页
private void showIndex(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String pagenum = request.getParameter("pagenum");
Page page = s.findAllBook(pagenum);
page.setUrl("servlet/ControlServlet?op=showIndex");
List<Category> cs = s.findAllCategory();
request.setAttribute("page", page);
request.setAttribute("cs", cs);
request.getRequestDispatcher("/showAllBooks.jsp").forward(request,
response);
}
// 用户注销:退出登录、跳转到index.jsp
private void logout(HttpServletRequest request, HttpServletResponse response)
throws IOException {
request.getSession().invalidate();
response.sendRedirect(request.getContextPath());
}
//编辑图书:更新内容
private void editBook(HttpServletRequest request,
HttpServletResponse response) {
String bookId = request.getParameter("bookId");
try {
// 不是一个普通的表单
boolean isMultipart = ServletFileUpload.isMultipartContent(request);
if (!isMultipart) {
// 普通的表单
request.setAttribute("msg", "亲,您的表单填写有误,请检查!");
request.getRequestDispatcher("/message.jsp").forward(request,
response);
// 表示判断语句结束
return;
}
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);
List<FileItem> items = upload.parseRequest(request);
for (FileItem item : items) {
if (item.isFormField()) {
String fieldName = item.getFieldName();
String fieldValue = item.getString(request
.getCharacterEncoding());
BeanUtils.setProperty(book, fieldName, fieldValue);
book.setId(bookId);
} else {
if (fieldName != null && !fieldName.trim().equals("")) {
String storeDirectory = getServletContext()
.getRealPath("/images/");
// 路径
String path = SetPhotoPath.makeDir(storeDirectory,
fieldName);
book.setPath(path);
book.setPhotoName(fieldName);
// 上传
item.write(new File(storeDirectory + path + "/"
+ fieldName));
}
}
}
System.out.println("book:" + book);
s.editBook(book);
request.setAttribute("msg", "修改图书成功!");
request.getRequestDispatcher("/message.jsp").forward(request,
response);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
private void editBookView(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
String bookId = request.getParameter("bookId");
Book b = s.findBookById(bookId);
List<Category> cs = s.findAllCategory();
request.setAttribute("cs", cs);
request.setAttribute("b", b);
request.getRequestDispatcher("/editBook.jsp")
.forward(request, response);
}

浙公网安备 33010602011771号