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); } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术