Java项目:嘟嘟图片展览馆管理系统(java+Springboot+SpringMVC+JPA+Jsp+maven+mysql)
源码获取:博客首页 "资源" 里下载!
一、项目运行
环境配置:
Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)
项目技术:
Springboot+ SpringMVC + JPA+ Jsp + Html+ JavaScript + JQuery + Ajax + maven等等
订单服务:
@WebServlet("/order/OrderServlet")
public class OrderServlet extends HttpServlet {private OrderService service = new OrderServiceImpl();private ClientServiceImpl clientService=new ClientServiceImpl();@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("UTF-8");resp.setContentType("text/html;charset=UTF-8");String op = req.getParameter("op");// 得到传过来的请求// 生成订单if (op.equals("genOrder")) {genOrder(req, resp);}// 查看订单if (op.equals("findAllOrders")) {findAllOrders(req, resp);}// 管理员查看订单if (op.equals("findOrders")) {findOrders(req, resp);}// 发货if (op.equals("faHuo")) {faHuo(req, resp);}//删除订单if(op.equals("deletes")) {deletes(req,resp);}}private void deletes(HttpServletRequest req, HttpServletResponse resp) throws IOException {String orderNumber = req.getParameter("orderNum");Order findOrderByNum = service.findOrderByNum(orderNumber);if(findOrderByNum.getItems().size()!=0) {resp.getWriter().print("<script>alert('该订单下有订单子项不可删除,请先删除订单子项!')</script>");resp.getWriter().print("<script>location.href='../admin/managerOrder.jsp'</script>");return;}try {service.deleteByNumber(orderNumber);resp.getWriter().print("<script>alert('删除成功!')</script>");resp.sendRedirect("../admin/managerOrder.jsp");}catch (Exception e) {resp.getWriter().print("<script>alert('该订单下有订单子项不可删除,请先删除订单子项!')</script>");return;}}private void faHuo(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String ordernum = req.getParameter("ordernum");service.faHuo(ordernum);List<Order> orders = service.findOrders();HttpSession session = req.getSession();session.setAttribute("orders", orders);System.out.println(orders);resp.sendRedirect(req.getContextPath() + "/admin/managerOrder.jsp");}private void findOrders(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {List<Order> orders = service.findOrders();HttpSession session = req.getSession();session.setAttribute("orders", orders);req.getRequestDispatcher("/admin/managerOrder.jsp").forward(req, resp);}private void findAllOrders(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {HttpSession session = req.getSession();User user = (User) session.getAttribute("user");List<Order> orders = service.findUserOrders(user);req.setAttribute("orders", orders);req.getRequestDispatcher("/person/personOrder.jsp").forward(req, resp);}private void genOrder(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {// 取出购物车信息// 取出购物项信息HttpSession session = req.getSession();Cart cart = (Cart) session.getAttribute("cart");User user = (User) session.getAttribute("user");if (cart == null) {session.setAttribute("message", "会话已经结束!");req.getRequestDispatcher("../message.jsp").forward(req, resp);return;}//先判断库存够不够!Book book = cart.getBook();String book_id = book.getBook_id();Book findBookById = clientService.findBookById(book_id);if(findBookById.getBook_kunumber()-cart.getTotalQuantity()<0) {session.setAttribute("message", "库存不足,无法购买!");session.removeAttribute("cart");req.getRequestDispatcher("../message.jsp").forward(req, resp);return;}Order order = new Order();order.setTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));String ordernum = genOrdernum();order.setOrdernum(ordernum);order.setQuantity(cart.getTotalQuantity());order.setMoney(cart.getTotalMoney());order.setUser(user);// 订单项List<Orderitem> oItems = new ArrayList<Orderitem>();for (Map.Entry<String, CartItem> me : cart.getItmes().entrySet()) {CartItem cItem = me.getValue();Orderitem oItem = new Orderitem();oItem.setId(genOrdernum());oItem.setBook(cItem.getBook());oItem.setPrice(cItem.getMoney());oItem.setQuantity(cItem.getQuantity());oItem.setOrdernum(ordernum);oItems.add(oItem);}// 建立订单项和订单的关系order.setItems(oItems);service.genOrder(order);req.setAttribute("order", order);req.getSession().removeAttribute("cart");req.removeAttribute("cart");req.getRequestDispatcher("/order.jsp").forward(req, resp);}// 生成订单号private String genOrdernum() {Date now = new Date();DateFormat df = new SimpleDateFormat("yyyyMMdd");String s1 = df.format(now);return s1 + System.nanoTime();}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}
管理员登录服务:
@WebServlet("/admin/ManagerServlet")
public class ManagerServlet extends HttpServlet {private ManagerService service = new ManagerServiceImpl();@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("UTF-8");resp.setContentType("text/html;charset=UTF-8");String op = req.getParameter("op");// 得到传过来的请求// 管理员登陆if (op.equals("login")) {login(req, resp);}// 修改管理员资料if (op.equals("managerInformation")) {managerInformation(req, resp);}// 修改管理员登录密码if (op.equals("managerPassword")) {managerPassword(req, resp);}// 注销if (op.equals("layout")) {layout(req, resp);}// 添加书籍前先获取所有分类if (op.equals("addBookUI")) {addBookUI(req, resp);}// 添加书籍if (op.equals("addBook")) {try {addBook(req, resp);} catch (FileUploadException e) {// TODO Auto-generated catch blocke.printStackTrace();}}// 添加书籍分类if (op.equals("addCategory")) {addCategory(req, resp);}// 文学艺术类书籍列表if (op.equals("category")) {getCategoryBook(req, resp);}// 编辑书籍信息前获取书籍的信息回显if (op.equals("editBookUI")) {editBookUI(req, resp);}// 编辑书籍if (op.equals("editBook")) {try {editBook(req, resp);} catch (FileUploadException e) {// TODO Auto-generated catch blocke.printStackTrace();}}// 删除书籍if (op.equals("delBook")) {delBook(req, resp);}// 获取书籍分类列表if (op.equals("categoryList")) {categoryList(req, resp);}// 获得分类信息if (op.equals("editCategoryUI")) {editCategoryUI(req, resp);}// 修改书籍分类信息if (op.equals("editCategory")) {editCategory(req, resp);}// 删除书籍分类if (op.equals("delCategory")) {delCategory(req, resp);}// 用户信息管理if (op.equals("findUsers")) {findUsers(req, resp);}// 添加工作人员if (op.equals("addAdmin")) {addAdmin(req, resp);}// 书籍销售情况if (op.equals("sales")) {sales(req, resp);}//搜索if(op.equals("search")) {search(req,resp);}}private void search(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String name = req.getParameter("search");if(name==null) {name="";}List<Book> findListByBookName = service.findListByBookName(name);List<Category> categoryList = service.findAllCategory();// 分类req.setAttribute("currentName", name);req.setAttribute("books", findListByBookName);req.setAttribute("categoryList", categoryList);req.getRequestDispatcher("/admin/booksList.jsp").forward(req, resp);}private void sales(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {List<Book> sales = service.sales();req.setAttribute("sales", sales);req.getRequestDispatcher("/admin/sales.jsp").forward(req, resp);}private void addAdmin(HttpServletRequest req, HttpServletResponse resp) throws IOException {String username = req.getParameter("username");String password = req.getParameter("password");String name = req.getParameter("name");String sex = req.getParameter("sex");String tel = req.getParameter("tel");Administrator admin = new Administrator(username, password, name, sex, tel);service.addAdmin(admin);resp.getWriter().write("<div style='text-align: center;margin-top: 260px'><img src='" + req.getContextPath()+ "/img/duigou.png'/>添加成功!</div>");}private void findUsers(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {List<User> list = service.findUsers();HttpSession session = req.getSession();session.setAttribute("users", list);req.getRequestDispatcher("/admin/managerUsers.jsp").forward(req, resp);}private void login(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String username = req.getParameter("username");String password = req.getParameter("password");if(username==null || username=="") {req.setAttribute("message", "请填写用户名");req.getRequestDispatcher("/admin/404.jsp").forward(req, resp);return;}if(password==null || password=="") {req.setAttribute("message", "请填写密码");req.getRequestDispatcher("/admin/404.jsp").forward(req, resp);return;}HttpSession session = req.getSession();Administrator admin = service.login(username, password);if (admin.getUsername() != null && admin.getUsername() != "") {req.setAttribute("message", "登陆成功");session.setAttribute("admin", admin);req.getRequestDispatcher("/admin/message.jsp").forward(req, resp);} else {req.setAttribute("message", "账号或密码错误!");req.getRequestDispatcher("/admin/404.jsp").forward(req, resp);}}private void managerInformation(HttpServletRequest req, HttpServletResponse resp) throws IOException {String username = req.getParameter("username");String name = req.getParameter("name");String sex = req.getParameter("sex");String tel = req.getParameter("tel");service.managerInformation(username, name, sex, tel);HttpSession session = req.getSession();Administrator admin = (Administrator) session.getAttribute("admin");admin.setName(name);admin.setSex(sex);admin.setTel(tel);session.setAttribute("admin", admin);resp.getWriter().write("<div style='text-align: center;margin-top: 260px'><img src='" + req.getContextPath()+ "/img/duigou.png'/>修改成功!</div>");}//修改管理员密码private void managerPassword(HttpServletRequest req, HttpServletResponse resp) throws IOException {String username = req.getParameter("username");String password = req.getParameter("password");String repassword = req.getParameter("repassword");String oldPassword = req.getParameter("oldPassword");if(!password.equals(repassword)) {resp.getWriter().print("<script>alert('两次密码不一致')</script>");return;}Administrator admin = service.findAdminByUsername(username);if(!admin.getPassword().equals(oldPassword)) {resp.getWriter().print("<script>alert('旧密码填写错误!')</script>");return;}service.managerPassword(username, password);resp.getWriter().write("<div style='text-align: center;margin-top: 260px'><img src='" + req.getContextPath()+ "/img/duigou.png'/>修改成功!</div>");}private void layout(HttpServletRequest req, HttpServletResponse resp) {try {HttpSession session = req.getSession();session.removeAttribute("admin");resp.sendRedirect("../admin/managerLogin.jsp");} catch (Exception e) {e.printStackTrace();}}private void addBookUI(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {List<Category> categorys = service.findAllCategory();req.setAttribute("cs", categorys);req.getRequestDispatcher("/admin/addBook.jsp").forward(req, resp);}private void addBook(HttpServletRequest req, HttpServletResponse resp) throws FileUploadException, IOException {// 判断表单是不是multipart/form-data类型boolean isMultipart = ServletFileUpload.isMultipartContent(req);if (!isMultipart) {throw new RuntimeException("表单上传类型有误!!");}// 创建工厂用来 解析请求内容DiskFileItemFactory factory = new DiskFileItemFactory();// 构建核心类对象ServletFileUpload sfu = new ServletFileUpload(factory);List<FileItem> items = new ArrayList<FileItem>();items = sfu.parseRequest(req);Book book = new Book();for (FileItem item : items) {if (item.isFormField()) {// 普通字段:把数据分装到book对象中processFormField(item, req, book);} else {// 上传字段:上传processUplodFiled(item, req, book);}}// 把书籍信息保存到数据库中service.addBook(book);resp.getWriter().write("<div style='text-align: center;margin-top: 260px'><img src='" + req.getContextPath()+ "/img/duigou.png'/>添加成功!</div>");}// 处理文件上传private void processUplodFiled(FileItem item, HttpServletRequest req, Book book) {try {// 存放路径:不要放在web-inf中// 01.获取存放文件的真实目录// String dirImages = getServletContext().getRealPath("/images");String dirImages =req.getServletContext().getRealPath("/")+"images/";
// String dirImages = getServletContext().getRealPath("/img");// 02. 通过io存文件// 03. 生成文件名 (用户上传图片, 图片名可能重复)String FieldName = item.getFieldName();// 输入框的name值String name = item.getName();String fileType = name.substring(name.lastIndexOf(".") + 1);String fileName = UUID.randomUUID().toString();// 生成用不重复的文件名// 生成文件夹名Date time = new Date();SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");String strTime = simpleDateFormat.format(time);// path属性filenameString path = strTime +File.separator + "books";// 存放到book对象中的路径
// String path = "books";// 存放到book对象中String filename = fileName + "." + fileType;// fileDir:图片最终存在于fileDirFile fileDir = new File(dirImages, path + File.separator + filename);// InputStream inputStream = item.getInputStream(); 从请求 对象中 通过流的方式// 把 上传的文件加载到 内存中 构建输出流File parentDir = new File(dirImages, path);// 父目录if (!parentDir.exists()) {parentDir.mkdirs();}book.setFilename(filename);book.setPath(path);InputStream inputStream = item.getInputStream();FileOutputStream fos = new FileOutputStream(fileDir);int len = 0;while ((len = inputStream.read()) != -1) {fos.write(len);}} catch (IOException e) {e.printStackTrace();}}// 把Fielditem中的数据封装到book中private void processFormField(FileItem item, HttpServletRequest req, Book book) {try {// item每一个item对象代表一个输入框// 01. 获取input输入框的 name 的值 根据规范 输入框 的name的取值, 与 javabean 中的 属性名一致String inputName = item.getFieldName();String inputValue = item.getString("UTF-8");if (inputName.equals("categoryid")) {// 分类单独处理// 获取到选择的分类的id,根据这个id取到分类的信息String categoryid = item.getString();System.out.println("categoryid=" + categoryid);Category category = service.findCategoryById(categoryid);System.out.println(category);book.setCategory(category);} else {BeanUtils.setProperty(book, inputName, inputValue);}} catch (Exception e) {e.printStackTrace();}}// 添加书籍分类private void addCategory(HttpServletRequest req, HttpServletResponse resp) {try {Category category = new Category();BeanUtils.populate(category, req.getParameterMap());String categoryName = category.getCategory_name();if(StringUtils.isNullOrEmpty(categoryName)) {resp.getWriter().print("<script>alert('请填写分类名称')</script>");resp.getWriter().print("<script>location.href='../admin/addCategory.jsp'</script>");return;}service.addCategory(category);// 调用添加方法resp.getWriter().write("<div style='text-align: center;margin-top: 260px'><img src='" + req.getContextPath()+ "/img/duigou.png'/>添加成功!</div>");} catch (Exception e) {e.printStackTrace();}}private void getCategoryBook(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {List<Book> books = service.getCategoryBook(req.getParameter("cid"));// 文学艺术类书籍List<Category> categoryList = service.findAllCategory();// 分类req.setAttribute("books", books);req.setAttribute("categoryList", categoryList);req.setAttribute("currentName", "");req.getRequestDispatcher("/admin/booksList.jsp").forward(req, resp);}private void editBookUI(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String book_id = req.getParameter("book_id");Book book = findBookById(book_id);List<Category> category = service.findAllCategory();HashMap map = new HashMap();map.put("book", book);map.put("category", category);req.setAttribute("map", map);req.getRequestDispatcher("/admin/editBook.jsp").forward(req, resp);}private void editBook(HttpServletRequest req, HttpServletResponse resp) throws FileUploadException, IOException {String book_id = req.getParameter("book_id");String book_name = req.getParameter("book_name");String book_author = req.getParameter("book_author");String book_press = req.getParameter("book_press");String book_desc = req.getParameter("book_desc");double book_price = Double.parseDouble(req.getParameter("book_price"));String book_kunumber = req.getParameter("book_kunumber");String categoryId = req.getParameter("categoryid");Category findCategoryById = service.findCategoryById(categoryId);service.editBook(book_id, book_name, book_author, book_press, book_desc, book_price, book_kunumber,findCategoryById);resp.getWriter().write("<div style='text-align: center;margin-top: 260px'><img src='" + req.getContextPath()+ "/img/duigou.png'/>修改成功!</div>");}private void delBook(HttpServletRequest req, HttpServletResponse resp) throws IOException {String book_id = req.getParameter("book_id");service.delBook(book_id);resp.getWriter().write("<div style='text-align: center;margin-top: 260px'><img src='" + req.getContextPath()+ "/img/duigou.png'/>删除成功!</div>");}private void categoryList(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {List<Category> categoryList = service.findAllCategory();req.setAttribute("categoryList", categoryList);req.getRequestDispatcher("/admin/categorysList.jsp").forward(req, resp);}private void editCategoryUI(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {Category category = service.findCategoryById(req.getParameter("category_id"));req.setAttribute("category", category);req.getRequestDispatcher("/admin/editCategory.jsp").forward(req, resp);}private void editCategory(HttpServletRequest req, HttpServletResponse resp) throws IOException {Category category = new Category(req.getParameter("category_id"), req.getParameter("category_name"),req.getParameter("category_desc"));String categoryName = category.getCategory_name();if(StringUtils.isNullOrEmpty(categoryName)) {resp.getWriter().print("<script>alert('请填写分类名称')</script>");resp.getWriter().print("<script>location.href='../admin/editCategory.jsp'</script>");return;}service.editCategory(category);resp.getWriter().write("<div style='text-align: center;margin-top: 260px'><img src='" + req.getContextPath()+ "/img/duigou.png'/>修改成功!</div>");}private void delCategory(HttpServletRequest req, HttpServletResponse resp) throws IOException {String category_id = req.getParameter("category_id");service.delCategory(category_id);resp.getWriter().write("<div style='text-align: center;margin-top: 260px'><img src='" + req.getContextPath()+ "/img/duigou.png'/>删除成功!</div>");}// 通过书籍id找到书籍信息private Book findBookById(String book_id) {return service.findBookById(book_id);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}
收藏夹业务处理:
@WebServlet("/client/ClientServlet")
public class ClientServlet extends HttpServlet {private ClientService service = new ClientServiceImpl();private ManagerService managerService = new ManagerServiceImpl();@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("UTF-8");resp.setContentType("text/html;charset=UTF-8");String op = req.getParameter("op");// 得到传过来的请求if (op != null && !op.equals("")) {// 登录if (op.equals("login")) {login(req, resp);}// 注销if (op.equals("layout")) {layout(req, resp);}// 注册if (op.equals("register")) {register(req, resp);}// 文学艺术类书籍列表if (op.equals("category")) {getCategoryBook(req, resp);}// 个人信息修改if (op.equals("personInformation")) {personInformation(req, resp);}// 修改密码if (op.equals("personPassword")) {personPassword(req, resp);}// 搜索框if (op.equals("search")) {search(req, resp);}// 详情页面if (op.equals("particulars")) {particulars(req, resp);}// 添加购物车if (op.equals("addCart")) {addCart(req, resp);}// 删除购物车中的购物项if (op.equals("delItem")) {delItem(req, resp);}// 修改购物项数量if (op.equals("changeNum")) {changeNum(req, resp);}// 添加收藏夹if (op.equals("addfavorite")) {addfavorite(req, resp);}// 显示收藏夹if (op.equals("showfavorite")) {showfavorite(req, resp);}// 删除收藏夹if (op.equals("delFavorite")) {delFavorite(req, resp);}// 删除收藏夹if (op.equals("buyNow")) {buNow(req, resp);}}}private void delFavorite(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {String book_id = req.getParameter("book_id");service.delFavorite(book_id);HttpSession session = req.getSession();List<Favorite> lists = (List<Favorite>) session.getAttribute("favorite");Iterator<Favorite> iterator = lists.iterator();while (iterator.hasNext()) {Favorite favorite = iterator.next();if (book_id.equals(favorite.getBook().getBook_id())) {iterator.remove();// 使用迭代器的删除方法删除}}resp.sendRedirect(req.getContextPath() + "/favorite.jsp");}private void showfavorite(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {HttpSession session = req.getSession();User user = (User) session.getAttribute("user");List<Favorite> favorites = service.findFavoriteByUserId(user);session.setAttribute("favorite", favorites);req.getRequestDispatcher("/favorite.jsp").forward(req, resp);}private void addfavorite(HttpServletRequest req, HttpServletResponse resp) throws IOException {HttpSession session = req.getSession();User user = (User) session.getAttribute("user");String user_id = user.getId();String book_id = req.getParameter("book_id");boolean isExit = service.findFavorite(user_id, book_id);if (isExit == false) {service.addfavorite(user_id, book_id);}}private void changeNum(HttpServletRequest req, HttpServletResponse resp) throws IOException {String num = req.getParameter("num");String book_id = req.getParameter("book_id");// 取出购物车Cart cart = (Cart) req.getSession().getAttribute("cart");CartItem item = cart.getItmes().get(book_id);item.setQuantity(Integer.parseInt(num));resp.sendRedirect(req.getContextPath() + "/showCart.jsp");}private void login(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String username = req.getParameter("username");String password = req.getParameter("password");HttpSession session = req.getSession();User user = service.login(username, password);if (user.getUsername() != null && user.getUsername() != "") {req.setAttribute("message", "登陆成功");session.setAttribute("user", user);req.getRequestDispatcher("/message.jsp").forward(req, resp);} else {req.setAttribute("message", "用户名或密码错误,请重新登录");req.getRequestDispatcher("/message.jsp").forward(req, resp);}}private void layout(HttpServletRequest req, HttpServletResponse resp) {try {HttpSession session = req.getSession();session.removeAttribute("user");// 获取session对象,从session中移除登陆信息resp.sendRedirect("../client/ClientServlet?op=category");} catch (Exception e) {e.printStackTrace();}}private void register(HttpServletRequest req, HttpServletResponse resp) {try {String username = req.getParameter("username");String password = req.getParameter("password");String name = req.getParameter("name");String sex = req.getParameter("sex");String tel = req.getParameter("tel");String address = req.getParameter("address");boolean isExist = false;// 判断是否存在该用户if (!username.equals("") && !password.equals("")) {isExist = service.register(username, password, name, sex, tel, address);if (isExist == true) {resp.getWriter().print("<script>alert('该用户已经注册,请直接登录')</script>");resp.getWriter().print("<script>location.href='../client/ClientServlet?op=category'</script>");} else {resp.getWriter().write("注册成功!");resp.getWriter().print("<script>location.href='../client/ClientServlet?op=category'</script>");}}else {resp.getWriter().print("<script>alert('请填写账号或密码')</script>");resp.getWriter().print("<script>location.href='../client/ClientServlet?op=category'</script>");}} catch (Exception e) {e.printStackTrace();}}private void getCategoryBook(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {List<Book> books = service.getCategoryBook(req.getParameter("cid"));// 文学艺术类书籍req.setAttribute("books", books);List<Category> categoryList= managerService.findAllCategory();req.setAttribute("categoryList", categoryList);req.getRequestDispatcher("/showBook.jsp").forward(req, resp);}private void personInformation(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {String username = req.getParameter("username");String name = req.getParameter("name");String sex = req.getParameter("sex");String tel = req.getParameter("tel");String address = req.getParameter("address");service.personInformation(username, name, sex, tel, address);User user = (User) req.getSession().getAttribute("user");user.setUsername(username);user.setName(name);user.setSex(sex);user.setTel(tel);user.setAddress(address);req.getSession().setAttribute("user", user);resp.getWriter().write("<div style='text-align: center;margin-top: 260px'><img src='" + req.getContextPath()+ "/img/duigou.png'/>修改成功!</div>");}private void personPassword(HttpServletRequest req, HttpServletResponse resp) throws IOException {String username = req.getParameter("username");String password = req.getParameter("password");String repassword = req.getParameter("repassword");String oldPassword = req.getParameter("oldPassword");if(!repassword.equals(password)) {resp.getWriter().print("<script>alert('两次密码不一致')</script>"); }User user = service.findUserByUserName(username);if(user==null) {resp.getWriter().print("<script>alert('会话失效或未登录,请重新登录!')</script>"); return;}if(!user.getPassword().equals(oldPassword)) {resp.getWriter().print("<script>alert('旧密码输入错误!')</script>");return;}service.personPassword(password, username);resp.getWriter().write("<div style='text-align: center;margin-top: 260px'><img src='" + req.getContextPath()+ "/img/duigou.png'/>修改成功!</div>");}private void search(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String search = req.getParameter("search");List<Book> searchmessage = service.search(search);req.setAttribute("books", searchmessage);req.setAttribute("name", search==null?"":search);req.getRequestDispatcher("/showBook.jsp").forward(req, resp);}private void particulars(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {String book_id = req.getParameter("book_id");Book book = findBookById(book_id);req.setAttribute("book", book);req.getRequestDispatcher("/particulars.jsp").forward(req, resp);}// 通过书籍id找到书籍信息private Book findBookById(String book_id) {Book book = service.findBookById(book_id);return book;}private void addCart(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {String book_id = req.getParameter("book_id");Book book = findBookById(book_id);HttpSession session = req.getSession();Cart cart = (Cart) session.getAttribute("cart");if (cart == null) {cart = new Cart();cart.addBook(book);cart.setBook(book);session.setAttribute("cart", cart);}else {session.setAttribute("message", "购物车里有商品,请支付之后再来添加!");req.getRequestDispatcher("../message.jsp").forward(req, resp);return;}req.getRequestDispatcher("../showCart.jsp").forward(req, resp);}private void delItem(HttpServletRequest req, HttpServletResponse resp) throws IOException {String book_id = req.getParameter("book_id");Cart cart = (Cart) req.getSession().getAttribute("cart");cart.getItmes().remove(book_id);req.getSession().removeAttribute("cart");resp.sendRedirect(req.getContextPath() + "/showCart.jsp");}private void buNow(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {Cart cart1 = (Cart) req.getSession().getAttribute("cart");if(cart1==null) {Cart cart = new Cart();String book_id = req.getParameter("book_id");Book book = findBookById(book_id);cart.addBook(book);cart.setBook(book);req.getSession().setAttribute("cart", cart);}else {req.getSession().setAttribute("message", "购物车里有商品,请支付之后再来添加!");req.getRequestDispatcher("../message.jsp").forward(req, resp);return;}req.getRequestDispatcher("../showCart.jsp").forward(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req, resp);}
}
源码获取:博客首页 "资源" 里下载!
相关文章:

javascript编译与运行机理(1)--
随着学习js的深入就越想了解其内部的运行机理,看了很多文章,感觉下面总结的不错。但囿于个人水平,只是达到了理解层面,还不能提出自己的见解,只好把资料罗列出来,留待以后总结: 1、Javascript的…
Citrix Synergy 2014 重要信息快速一览
今天的互联网、社交媒体的确强大,我们可以足不出户了解到9600公里(北京到LA的距离)之外的美国发生的事情。今天从Brain Madden大神那儿又扒到了一些经过提炼的关于Citrix Synergy 2014(Citrix每年一度的大会)的会议内容…

stm32 flash和sram
FLASH是用来存储程序的,SRAM是用来存储程序运行中的中间变量转载于:https://www.cnblogs.com/CodeWorkerLiMing/p/10984065.html

常见主机字节序
常见主机字节序1. Little endian:将低序字节存储在起始地址2. Big endian:将高序字节存储在起始地址LE little-endian最符合人的 思维的字节序地址低位存储值的低位地址高位存储值的高位怎么讲是最符合人的思维的字节序࿰…

Java项目:仿小米电子产品售卖商城系统(java+SpringBoot+Vue+MySQL+Redis+ElementUI)
源码获取:博客首页 "资源" 里下载! 项目描述:这是一个基于SpringBootVue框架开发的仿小米电子产品售卖商城系统。首先,这是一个前后端分离的项目,代码简洁规范,注释说明详细。其次,这…

在js中使用createElement创建HTML对象和元素
1.创建链接 <script language"javascript"> var o document.body; //创建链接 function createA(url,text) { var a document.createElement("a"); a.href url; a.innerHTML text; a.style.color "red"; o.appendChild(a); …

Leetcode | 3Sum
Given an array S of n integers, are there elements a, b, c in S such that a b c 0? Find all unique triplets in the array which gives the sum of zero. Note:Elements in a triplet (a,b,c) must be in non-descending order. (ie, a ≤ b ≤ c)The solution set …

玩转 JavaScript 面试:何为函数式编程?
函数式编程在 JavaScript 领域着实已经成为一个热门话题。就在几年前,很多 JavaScript 程序员甚至都不知道啥是函数式编程,但是就在近三年里我看到过的每一个大型应用的代码库中都包含了函数式编程思想的大规模使用。 函数式编程(缩写为 FP)是一种通过组…

正则表达式分类 区别
原文地址:http://www.cnblogs.com/chengmo/archive/2010/10/10/1847287.html 正则表达式:在计算机科学中,是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用…

Java项目:嘟嘟校园一卡通系统(java+JSP+Servlet+html+css+JavaScript+JQuery+Ajax+mysql)
源码获取:博客首页 "资源" 里下载! 一、项目简述 功能:卡管理,卡消费,卡充值,图书借阅,消费,记录,注销等等功能。 二、项目运行 环境配置: Jdk…

OC与C语言的区别
C语言是面向过程的编程语言,而OC则是面向对象的编程语言。面向对象:打个比方,就是你做一次菜,让老婆做个菜,吃饭,这就是面向对象,效率高面向过程,就是每一个细节:比如你要先把或开到合适的位置.然后还要洗菜 ,等油热了,才能开始炒菜,然后调料,...,起锅,到碗里,吃饭.…

Hutool之集合工具——CollectionUtil
为什么80%的码农都做不了架构师?>>> 集合工具 CollectionUtil 这个工具主要增加了对数组、集合类的操作。 1. join 方法 将集合转换为字符串,这个方法还是挺常用,是StrUtil.split的反方法。这个方法的参数支持各种类型对象的集合…

15:解决IntelliJ IDEA的乱码问题
1. -Dfile-encodingsUTF-8 ,全局: 转载于:https://www.cnblogs.com/gzhbk/p/10991335.html

C++ 和C 语言混合代码导致的问题
C语言中操作字符串用C运行时函数:strtok, strcmp, strcpy等等,直接操作内存。在c引入的字符串操作类std:string ,string类中必有一个私有成员,其是一个char*,用户记录从堆上分配内存的地址,其在构造时分配内…

SVN详细使用教程
SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本。 Subversion是什么? 它是一…

Java项目:药店信息管理系统(java+SSM+JSP+layui+maven+mysql)
源码获取:博客首页 "资源" 里下载! 一、项目简述 环境配置: Jdk1.8 Tomcat8.5 mysql Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持) 项目技术: JSP Spring SpringMVC MyBatis ht…

MongoDB简单操作
MongoDB简单操作 Hadoop核心技术厂商Cloudera将在2014/06推出hadoop Ecosystem与MongoDB的整合产品,届时MongoDB与ipmala及hbase,hive一起用; 开源linux领军企业RHEL也宣布RHEL将整合MongoDB用于简化用户账号管理与LDAP一起用; 数据仓库之MPP技术 领军者莫非 Vertica,exterdata…

Windows Presentation Foundation(介绍外连接)
Windows Presentation Foundation 2011/08/12更新:2010 年 12 月 Windows Presentation Foundation (WPF) 为开发人员提供了统一的编程模型,可用于构建合并了 UI、媒体和文档的丰富 Windows 智能客户端用户体验。 欢迎使用 WPF 了解 WPF: WP…

Linux中与进程终止相关的信号SIGTERM,SIGKILL,SIGINT
1. SIGTERM “kill pid” 会发送SIGTERM到进程pid. This is the termination signal sent by killcommand by default. 2. SIGINT 在终端中敲入interrupt key(DELETE或ctrlc)会产生SIGINT信号。这个信号会被发送到进程(inforeground proc…

Java项目:嘟嘟二手书商城系统(java+JSP+Springboot+maven+mysql+ThymeLeaf+FTP)
源码获取:博客首页 "资源" 里下载! 一、项目简述 功能: 主页显示商品; 所有二手书商品展示,可进行商品搜索; 点击商品进入商品详情页,具有立即购买和加入购物车功能,可增减…

SQL用法总结
1、创建数据库语句 create table persons(id INT NOT NULL AUTO_INCREMENT,lastname VARCHAR(255) NOT NULL,firstname VARCHAR(255) NOT NULL,PRIMARY KEY (ID)) DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci; 2、创建数据库时,PK、NN、UQ、BIN、UN、…

[leetcode] Binary Tree Preorder Traversal
Given a binary tree, return the preorder traversal of its nodes values. For example:Given binary tree {1,#,2,3}, 1\2/3return [1,2,3]. Note: Recursive solution is trivial, could you do it iteratively? 给定一棵二叉树,使用非递归的方法进行先序遍历。…

error C2065: “M_PI”: 未声明的标识符
1.首先,程序中头文件的选择,要选择<math.h>头文件,在<cmath>文件中是没有对M_PI 的定义的(现在的<cmath>中对M_PI好像已有定义)。2.选择:项目——>”XXX属性"——>配置属性—…

区分HPUX是Itanium还是PA-RISC
转自:http://blog.csdn.net/nbzll0920/article/details/7961232 pa-risc的产品号以rp打头,itanium的产品号以rx打头 用model或者uname -a命令看一下就知道了 PS: Intel安腾处理器构建在IA-64(Intel Architecture 64),…

Java项目:食品溯源系统(java+Springboot+Maven+mybatis+Vue+mysql+wd)
源码获取:博客首页 "资源" 里下载! 一、项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术…

使用sqlite保存数据返回主键
/// <summary>/// 返回insert后的主键值/// </summary>/// <param name"SQLString"></param>/// <param name"para"></param>/// <returns></returns>public static int ExecuteSql(string SQLString, Li…

Pycharm初始创建项目和环境搭建(解决aconda库文件引入不全等问题)
1.新建工程 1.选择新建一个Pure Python项目,新建项目路径可以在Location处选择。 2.Project Interpreter部分是选择新建项目所依赖的python库,第一个选项会在项目中简历一个venv(virtualenv)目录,这里存放…

Java项目:宠物商城系统(java+Springboot+Maven+mybatis+Vue+mysql)
源码获取:博客首页 "资源" 里下载! 一、项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术…

android插件化-apkplug中以监听方式获取OSGI服务-09
2019独角兽企业重金招聘Python工程师标准>>> 我们提供 apkplug 下OSGI使用demo 源码托管地址为 http://git.oschina.net/plug/OSGIService 一 需求 通过 <<apkplug中OSGI服务基本原理-08>>我们知道怎样注册于查询OSGI Service。但查询方式必须在Servi…

网页失去焦点事件 visibilitychange
当网页失去焦点事件时会触发 visibilitychange 事件,可进行相关逻辑处理 如失去焦点需暂停播放 或 变更title吸引用户回来.. eg: <script>document.addEventListener(visibilitychange, function () {var isHidden document.hidden;if (isHidden) {//失去焦点…