基于javaweb和mysql的jsp+servlet书籍交换二手交易二手书城系统(java+servlet+jsp+mysql)

私信源码获取及调试交流

私信源码获取及调试交流

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb的JSP+Servlet书籍交换二手交易二手书城系统(java+servlet+jsp+mysql)

管理员:

admin 123456

学生:

stu1 123456

stu2 123456

stu3 123456

功能:1.查阅个人信息

  2.商城购买书籍和上架书籍(上架时加上书籍信息(包括书名,完整程度,书籍照片,价格,卖家联系方式)),买家可以查看这些信息

  3.书籍交换(通过捐赠书籍获取领取书籍次数,领取书籍是从捐赠的书籍中随机抽取几本)
                    //处理获取到的上传文件的文件名的路径部分,只保留文件名部分
                    filename = filename.substring(filename.lastIndexOf("\\")+1);
                    //获取item中的上传文件的输入流
                    InputStream in = item.getInputStream();
                    //创建一个文件输出流
                    FileOutputStream out = new FileOutputStream(savePath + "\\" + filename);
                    //创建一个缓冲区
                    byte buffer[] = new byte[1024];
                    //判断输入流中的数据是否已经读完的标识
                    int len = 0;
                    //循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据
                    while((len=in.read(buffer))>0){
                        //使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath + "\\" + filename)当中
                        out.write(buffer, 0, len);
                    }
                    //关闭输入流
                    in.close();
                    //关闭输出流
                    out.close();
                    //删除处理文件上传时生成的临时文件
                    item.delete();
 					msg = "文件上传成功!";
                    
                    book.setPic("\\upload" + "\\" + filename);
                }
            }
            if (book.getId()!=null && !"".equals(book.getId())) {
            	Book oldBook = bookService.getById(book.getId());
    			bookService.update(book);
    			if ("1".equals(oldBook.getType())) {
    				if ("2".equals(book.getType())) {
    					User byId = userService.getById(book.getUploader());
    					byId.setChanges(byId.getChanges()+1);
    					userService.update(byId);
    				}
				}
    			if ("2".equals(oldBook.getType())) {
    				if ("1".equals(book.getType())) {
    					User byId = userService.getById(book.getUploader());
    					byId.setChanges(byId.getChanges()-1);
    					userService.update(byId);
    				}
				}
    		}else{
    			book.setIsOver("0");
    			bookService.add(book);
    			if ("2".equals(book.getType())) {
					User byId = userService.getById(book.getUploader());
					byId.setChanges(byId.getChanges()+1);
					userService.update(byId);
				}
    		}
	private static final long serialVersionUID = 1L;
	
	private String contextPath = "";
	
	BookDao bookDao=new BookDao();
	BookService bookService = new BookServiceImpl();
	UserService userService = new UserServiceImpl();
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}
	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		contextPath = request.getServletContext().getContextPath();
		String method = request.getParameter("method");
		if ("add".equals(method)) {
			add(request,response);
		}else if ("delete".equals(method)) {
			delete(request, response);
		}else if ("list".equals(method)) {
			list(request, response);
		}else if ("update".equals(method)) {
			update(request, response);
		}else if ("form".equals(method)) {
			form(request, response);
		}else if ("save".equals(method)) {
			save(request, response);
		}else if ("index".equals(method)) {
			index(request, response);
		}else if ("detail".equals(method)) {
			detail(request, response);
		}else if ("sell".equals(method)) {
			sell(request, response);
		}else if ("published".equals(method)) {
			published(request, response);
		}else if ("logout".equals(method)) {
			logout(request, response);
		}else if ("buy".equals(method)) {
			buy(request, response);
		}else if ("alerdBuy".equals(method)) {
			alerdBuy(request, response);
		}else if ("bookchange".equals(method)) {
			bookchange(request, response);
		}else if ("getChangeBook".equals(method)) {
			getChangeBook(request, response);
		}
	}
	
	private void buy(HttpServletRequest request, HttpServletResponse response) throws IOException {
		PrintWriter writer = response.getWriter();
		try {
				}else{
					//无免费领取次数,请发布交换书籍
					writer.print(2);
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
			writer.write(0);
		}
	}

	private void logout(HttpServletRequest request, HttpServletResponse response) {
		request.getSession().removeAttribute("flogin");
		try {
			response.sendRedirect(contextPath+"/f?method=index");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	//form跳转页面
	private void index(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		Book book = new Book();
		//分页有关
		Page<Book> page = new Page<Book>();
		//设置查询页
		String pageNoStr = request.getParameter("pageNo");
		if (pageNoStr != null && pageNoStr != "") {
			page.setPageNo(Integer.parseInt(pageNoStr));
		}
		//设置查询条件
		String bookName = request.getParameter("bookName");
		if (bookName != null && bookName != "") {
			book.setBookName(bookName);
			request.setAttribute("bookName", bookName);
		}
		page = bookService.page(book, page);
		request.setAttribute("page", page);
		request.getRequestDispatcher("/views/front/index.jsp").forward(request, response);
	}
	
	//书籍交互
	private void bookchange(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		Book book = new Book();
		//分页有关
		Page<Book> page = new Page<Book>();
		//设置查询页
		String pageNoStr = request.getParameter("pageNo");
		if (pageNoStr != null && pageNoStr != "") {
			page.setPageNo(Integer.parseInt(pageNoStr));
		}
		//设置查询条件
		String bookName = request.getParameter("bookName");
                    while((len=in.read(buffer))>0){
                        //使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath + "\\" + filename)当中
                        out.write(buffer, 0, len);
                    }
                    //关闭输入流
                    in.close();
                    //关闭输出流
                    out.close();
                    //删除处理文件上传时生成的临时文件
                    item.delete();
 					msg = "文件上传成功!";
                    
                    book.setPic("\\upload" + "\\" + filename);
                }
            }
            if (book.getId()!=null && !"".equals(book.getId())) {
            	Book oldBook = bookService.getById(book.getId());
    			bookService.update(book);
    			if ("1".equals(oldBook.getType())) {
    				if ("2".equals(book.getType())) {
    					User byId = userService.getById(book.getUploader());
    					byId.setChanges(byId.getChanges()+1);
    					userService.update(byId);
    				}
				}
    			if ("2".equals(oldBook.getType())) {
    				if ("1".equals(book.getType())) {
    					User byId = userService.getById(book.getUploader());
    					byId.setChanges(byId.getChanges()-1);
    					userService.update(byId);
    				}
				}
    		}else{
    			book.setIsOver("0");
    			bookService.add(book);
    			if ("2".equals(book.getType())) {
					User byId = userService.getById(book.getUploader());
					byId.setChanges(byId.getChanges()+1);
					userService.update(byId);
				}
    		}
    		response.sendRedirect(contextPath+"/f?method=published");
        }catch (Exception e) {
            msg= "文件上传失败!";
            msg= "文件上传失败!";
            e.printStackTrace();
            request.setAttribute("msg",msg);
            request.getRequestDispatcher("/views/front/publish.jsp").forward(request, response);
        }
	}
	
	//删除
	private void delete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String id = request.getParameter("id");
		bookService.delete(id);
		response.sendRedirect(contextPath+"/book?method=list");
	}
	
	//修改
	private void update(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String id = request.getParameter("id");
		String bookName = request.getParameter("bookName");
		String price = request.getParameter("price");
		String author = request.getParameter("author");
		String content = request.getParameter("content");
		String product = request.getParameter("product");
		String productTime = request.getParameter("productTime");
		Book book = new Book();
		book.setId(id);
		book.setBookName(bookName);
		book.setPrice(price);
		book.setAuthor(author);
		book.setContent(content);
		book.setProduct(product);
		bookService.update(book);
		request.setAttribute("book", book);
		request.getRequestDispatcher("/views/system/bookForm.jsp").forward(request, response);
	}
	
	//列表查询
	private void list(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.err.println("---开始查询---");
		Book book = new Book();
		//分页有关
		Page<Book> page = new Page<Book>();
		//设置查询页
		String pageNoStr = request.getParameter("pageNo");
		if (pageNoStr != null && pageNoStr != "") {
			page.setPageNo(Integer.parseInt(pageNoStr));
					}
					
					if ("price".endsWith(name)) {
						book.setPrice(item.getString("UTF-8"));
						
					}
					
					if ("author".endsWith(name)) {
						book.setAuthor(item.getString("UTF-8"));
						
					}
					
					if ("content".endsWith(name)) {
						book.setContent(item.getString("UTF-8"));
						
					}
					
					if ("product".endsWith(name)) {
						book.setProduct(item.getString("UTF-8"));
						
					}
					
					if ("uploader".endsWith(name)) {
						book.setUploader(item.getString("UTF-8"));
						
					}
					if ("type".endsWith(name)) {
						book.setType(item.getString("UTF-8"));
						
					}
					if ("pic".endsWith(name)) {
						book.setPic(item.getString("UTF-8"));
						
					}
                }else{//如果fileitem中封装的是上传文件
                    //得到上传的文件名称,
                    String filename = item.getName();
                    System.out.println(filename);
                    if(filename==null || filename.trim().equals("")){
                        continue;
                    }
                    //注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如:  c:\a\b\1.txt,而有些只是单纯的文件名,如:1.txt
                    //处理获取到的上传文件的文件名的路径部分,只保留文件名部分
                    filename = filename.substring(filename.lastIndexOf("\\")+1);
                    //获取item中的上传文件的输入流
                    InputStream in = item.getInputStream();
                    //创建一个文件输出流
                    FileOutputStream out = new FileOutputStream(savePath + "\\" + filename);
                    //创建一个缓冲区
                    byte buffer[] = new byte[1024];
		if (bookName != null && bookName != "") {
			book.setBookName(bookName);
			request.setAttribute("bookName", bookName);
		}
		book.setType("2");
		book.setIsOver("0");
		page = bookService.page(book, page);
		request.setAttribute("page", page);
		Object attribute = request.getSession().getAttribute("flogin");
		if (attribute!=null) {
			User user = (User) attribute;
			String id = user.getId();
			List<Book> list = page.getList();
			List<String> ids = new ArrayList<String>();
			for (Book book2 : list) {
				if (!book2.getUploader().equals(id)) {
					ids.add(book2.getId());
				}
			}
			request.getSession().setAttribute("ids", ids);
		}
		request.getRequestDispatcher("/views/front/bookchange.jsp").forward(request, response);
	}
	
	//随机获取书籍
	private void getChangeBook(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		PrintWriter writer = response.getWriter();
		try {
			Object attribute = request.getSession().getAttribute("ids");
			if (attribute!=null) {
				List<String> idStrings = (List<String>) attribute;
				int size = idStrings.size();
				if (size==0) {
					writer.println("3");
				}else{
					User user = (User) request.getSession().getAttribute("flogin");
					if (user.getChanges()>0) {
						int i = (int)(1+Math.random()*(size-1+1));
						System.out.println(i);
						String string = idStrings.get(i-1);//获取到交换的书籍ID
						Book book = bookService.getById(string);
						book.setIsOver("1");
						book.setBuyer(user.getId());
						bookService.update(book);
						writer.println("1");
					}else{
						writer.println("2");
					}
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
			writer.println("0");
		String pageNoStr = request.getParameter("pageNo");
		if (pageNoStr != null && pageNoStr != "") {
			page.setPageNo(Integer.parseInt(pageNoStr));
		}
		//设置查询条件
		String bookName = request.getParameter("bookName");
		if (bookName != null && bookName != "") {
			book.setBookName(bookName);
			request.setAttribute("bookName", bookName);
		}
		Object attribute = request.getSession().getAttribute("flogin");
		if (attribute!=null) {
			User user = (User) attribute;
			book.setUploader(user.getId());
		}
		page = bookService.page(book, page);
		request.setAttribute("page", page);
		request.getRequestDispatcher("/views/front/published.jsp").forward(request, response);
	}
	
	
	//form跳转页面
	private void alerdBuy(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		Book book = new Book();
		//分页有关
		Page<Book> page = new Page<Book>();
		//设置查询页
		String pageNoStr = request.getParameter("pageNo");
		if (pageNoStr != null && pageNoStr != "") {
			page.setPageNo(Integer.parseInt(pageNoStr));
		}
		//设置查询条件
		String bookName = request.getParameter("bookName");
		if (bookName != null && bookName != "") {
			book.setBookName(bookName);
			request.setAttribute("bookName", bookName);
		}
		Object attribute = request.getSession().getAttribute("flogin");
		if (attribute!=null) {
			User user = (User) attribute;
			book.setBuyer(user.getId());
		}
		page = bookService.page(book, page);
		request.setAttribute("page", page);
		request.getRequestDispatcher("/views/front/alerdBuy.jsp").forward(request, response);
	}
	
		Book book = new Book();
		book.setBookName(bookName);
		book.setPrice(price);
		book.setAuthor(author);
		book.setContent(content);
		book.setProduct(product);
		bookService.add(book);
		response.sendRedirect(contextPath+"/book?method=list");
	}
	
	//添加保存
	protected void save(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		Book book = new Book();
		 //得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全
        String savePath = this.getServletContext().getRealPath("/upload");
        File file = new File(savePath);
        //判断上传文件的保存目录是否存在
        if (!file.exists() && !file.isDirectory()) {
            System.out.println(savePath+"目录不存在,需要创建");
            //创建目录
            file.mkdir();
        }
        //消息提示
        String msg = "";
        try{
            //使用Apache文件上传组件处理文件上传步骤:
            //1、创建一个DiskFileItemFactory工厂
            DiskFileItemFactory factory = new DiskFileItemFactory();
            //2、创建一个文件上传解析器
            ServletFileUpload upload = new ServletFileUpload(factory);
             //解决上传文件名的中文乱码
            upload.setHeaderEncoding("UTF-8"); 
            //3、判断提交上来的数据是否是上传表单的数据
            if(!ServletFileUpload.isMultipartContent(request)){
                //按照传统方式获取数据
                return;
            }
            //4、使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List<FileItem>集合,每一个FileItem对应一个Form表单的输入项
            List<FileItem> list = upload.parseRequest(request);
            for(FileItem item : list){
                //如果fileitem中封装的是普通输入项的数据
                if(item.isFormField()){
                    String name = item.getFieldName();
                     //解决普通输入项的数据的中文乱码问题
					if ("id".endsWith(name)) {
                    	if (item.getString("UTF-8")!=null && item.getString("UTF-8")!="") {
                    		book.setId(item.getString("UTF-8"));
						}
					}
					
					if ("bookName".endsWith(name)) {
						book.setBookName(item.getString("UTF-8"));
						
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}
	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		contextPath = request.getServletContext().getContextPath();
		String method = request.getParameter("method");
		if ("add".equals(method)) {
			add(request,response);
		}else if ("delete".equals(method)) {
			delete(request, response);
		}else if ("list".equals(method)) {
			list(request, response);
		}else if ("update".equals(method)) {
			update(request, response);
		}else if ("form".equals(method)) {
			form(request, response);
		}else if ("save".equals(method)) {
			save(request, response);
		}else if ("login".equals(method)) {
			login(request, response);
		}
		
	}
	
	private void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		User login = userService.login(username, password);
		if (login!=null) {
			if ("1".equals(login.getRole())) {
				request.getSession().setAttribute("login", login);
			}else {
				request.getSession().setAttribute("flogin", login);
			}
			
		}else{
		}
	}
					}
					if ("uploader".endsWith(name)) {
						book.setUploader(item.getString("UTF-8"));
						
					}
					if ("type".endsWith(name)) {
						book.setType(item.getString("UTF-8"));
						
					}
                    
                }else{//如果fileitem中封装的是上传文件
                    //得到上传的文件名称,
                    String filename = item.getName();
                    System.out.println(filename);
                    if(filename==null || filename.trim().equals("")){
                        continue;
                    }
                    //注意:不同的浏览器提交的文件名是不一样的,有些浏览器提交上来的文件名是带有路径的,如:  c:\a\b\1.txt,而有些只是单纯的文件名,如:1.txt
                    //处理获取到的上传文件的文件名的路径部分,只保留文件名部分
                    filename = filename.substring(filename.lastIndexOf("\\")+1);
                    //获取item中的上传文件的输入流
                    InputStream in = item.getInputStream();
                    //创建一个文件输出流
                    FileOutputStream out = new FileOutputStream(savePath + "\\" + filename);
                    //创建一个缓冲区
                    byte buffer[] = new byte[1024];
                    //判断输入流中的数据是否已经读完的标识
                    int len = 0;
                    //循环将输入流读入到缓冲区当中,(len=in.read(buffer))>0就表示in里面还有数据
                    while((len=in.read(buffer))>0){
                        //使用FileOutputStream输出流将缓冲区的数据写入到指定的目录(savePath + "\\" + filename)当中
                        out.write(buffer, 0, len);
                    }
                    //关闭输入流
                    in.close();
                    //关闭输出流
                    out.close();
                    //删除处理文件上传时生成的临时文件
                    item.delete();
 					msg = "文件上传成功!";
                    
                    book.setPic("\\upload" + "\\" + filename);
                }
            }
            if (book.getId()!=null && !"".equals(book.getId())) {
    			bookService.update(book);
    		}else{
    			bookService.add(book);
	
	//form跳转页面
	private void sell(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String id = request.getParameter("id");
		Book book = new Book();
		if (id!=null && id!="") {
			book = bookService.getById(id);
		}
		request.setAttribute("book", book);
		request.getRequestDispatcher("/views/front/publish.jsp").forward(request, response);
	}
	
	//form跳转页面
	private void published(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		Book book = new Book();
		//分页有关
		Page<Book> page = new Page<Book>();
		//设置查询页
		String pageNoStr = request.getParameter("pageNo");
		if (pageNoStr != null && pageNoStr != "") {
			page.setPageNo(Integer.parseInt(pageNoStr));
		}
		//设置查询条件
		String bookName = request.getParameter("bookName");
		if (bookName != null && bookName != "") {
			book.setBookName(bookName);
			request.setAttribute("bookName", bookName);
		}
		Object attribute = request.getSession().getAttribute("flogin");
		if (attribute!=null) {
			User user = (User) attribute;
			book.setUploader(user.getId());
		}
		page = bookService.page(book, page);
		request.setAttribute("page", page);
		request.getRequestDispatcher("/views/front/published.jsp").forward(request, response);
	}
	
	
	//form跳转页面
	private void alerdBuy(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		Book book = new Book();
		//分页有关
		Page<Book> page = new Page<Book>();
		//设置查询页
		String product = request.getParameter("product");
		String productTime = request.getParameter("productTime");
		Book book = new Book();
		book.setBookName(bookName);
		book.setPrice(price);
		book.setAuthor(author);
		book.setContent(content);
		book.setProduct(product);
		bookService.add(book);
		response.sendRedirect(contextPath+"/book?method=list");
	}
	
	//添加保存
	protected void save(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		Book book = new Book();
		 //得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全
        String savePath = this.getServletContext().getRealPath("/upload");
        File file = new File(savePath);
        //判断上传文件的保存目录是否存在
        if (!file.exists() && !file.isDirectory()) {
            System.out.println(savePath+"目录不存在,需要创建");
            //创建目录
            file.mkdir();
        }
        //消息提示
        String msg = "";
        try{
            //使用Apache文件上传组件处理文件上传步骤:
            //1、创建一个DiskFileItemFactory工厂
            DiskFileItemFactory factory = new DiskFileItemFactory();
            //2、创建一个文件上传解析器
            ServletFileUpload upload = new ServletFileUpload(factory);
             //解决上传文件名的中文乱码
            upload.setHeaderEncoding("UTF-8"); 
            //3、判断提交上来的数据是否是上传表单的数据
            if(!ServletFileUpload.isMultipartContent(request)){
                //按照传统方式获取数据
                return;
            }
            //4、使用ServletFileUpload解析器解析上传数据,解析结果返回的是一个List<FileItem>集合,每一个FileItem对应一个Form表单的输入项
            List<FileItem> list = upload.parseRequest(request);
            for(FileItem item : list){

@WebServlet("/user")
public class UserController extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
	private String contextPath = "";
	
	UserDao userDao=new UserDao();
	UserService userService = new UserServiceImpl();
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request, response);
	}
	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		contextPath = request.getServletContext().getContextPath();
		String method = request.getParameter("method");
		if ("add".equals(method)) {
			add(request,response);
		}else if ("delete".equals(method)) {
			delete(request, response);
		}else if ("list".equals(method)) {
			list(request, response);
		}else if ("update".equals(method)) {
			update(request, response);
		}else if ("form".equals(method)) {
			form(request, response);
		}else if ("save".equals(method)) {
			save(request, response);
		}else if ("login".equals(method)) {
			login(request, response);
		}
		
	}
	
	private void login(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		User login = userService.login(username, password);
		if (login!=null) {
			if ("1".equals(login.getRole())) {
				request.getSession().setAttribute("login", login);
				}
    		}else{
    			book.setIsOver("0");
    			bookService.add(book);
    			if ("2".equals(book.getType())) {
					User byId = userService.getById(book.getUploader());
					byId.setChanges(byId.getChanges()+1);
					userService.update(byId);
				}
    		}
    		response.sendRedirect(contextPath+"/f?method=published");
        }catch (Exception e) {
            msg= "文件上传失败!";
            e.printStackTrace();
            request.setAttribute("msg",msg);
            request.getRequestDispatcher("/views/front/publish.jsp").forward(request, response);
        }
	}
	
	//删除
	private void delete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String id = request.getParameter("id");
		bookService.delete(id);
		response.sendRedirect(contextPath+"/book?method=list");
	}
	
	//修改
	private void update(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String id = request.getParameter("id");
		String bookName = request.getParameter("bookName");
		String price = request.getParameter("price");
		String author = request.getParameter("author");
		String content = request.getParameter("content");
		String product = request.getParameter("product");
		String productTime = request.getParameter("productTime");
		Book book = new Book();
		book.setId(id);
		book.setBookName(bookName);
		book.setPrice(price);
		book.setAuthor(author);
		book.setContent(content);
		book.setProduct(product);
		bookService.update(book);
		request.setAttribute("book", book);
		request.getRequestDispatcher("/views/system/bookForm.jsp").forward(request, response);
	}
	
	//列表查询
	private void list(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.err.println("---开始查询---");
		Book book = new Book();
		//分页有关
		Page<Book> page = new Page<Book>();
			
		}else{
		}
	}

	//添加
	private void add(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String username = request.getParameter("username");
		String password = request.getParameter("password");
		String name = request.getParameter("trueName");
		String sex = request.getParameter("sex");
		String phone = request.getParameter("phone");
		String role = request.getParameter("role");
		User user = new User();
		user.setUsername(username);
		user.setPassword(password);
		user.setName(name);
		user.setSex(sex);
		user.setPhone(phone);
		user.setRole(role);
		user.setChanges(0);
		userService.add(user);
	}
	
	//添加保存
	protected void save(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		User user = new User();
		 //得到上传文件的保存目录,将上传的文件存放于WEB-INF目录下,不允许外界直接访问,保证上传文件的安全
        String savePath = this.getServletContext().getRealPath("/upload");
        File file = new File(savePath);
        //判断上传文件的保存目录是否存在
        if (!file.exists() && !file.isDirectory()) {
            System.out.println(savePath+"目录不存在,需要创建");
            //创建目录
            file.mkdir();
        }
        //消息提示
        String msg = "";
        try{
            //使用Apache文件上传组件处理文件上传步骤:
            //1、创建一个DiskFileItemFactory工厂
            DiskFileItemFactory factory = new DiskFileItemFactory();
            //2、创建一个文件上传解析器
            ServletFileUpload upload = new ServletFileUpload(factory);
             //解决上传文件名的中文乱码
		book.setType("2");
		book.setIsOver("0");
		page = bookService.page(book, page);
		request.setAttribute("page", page);
		Object attribute = request.getSession().getAttribute("flogin");
		if (attribute!=null) {
			User user = (User) attribute;
			String id = user.getId();
			List<Book> list = page.getList();
			List<String> ids = new ArrayList<String>();
			for (Book book2 : list) {
				if (!book2.getUploader().equals(id)) {
					ids.add(book2.getId());
				}
			}
			request.getSession().setAttribute("ids", ids);
		}
		request.getRequestDispatcher("/views/front/bookchange.jsp").forward(request, response);
	}
	
	//随机获取书籍
	private void getChangeBook(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		PrintWriter writer = response.getWriter();
		try {
			Object attribute = request.getSession().getAttribute("ids");
			if (attribute!=null) {
				List<String> idStrings = (List<String>) attribute;
				int size = idStrings.size();
				if (size==0) {
					writer.println("3");
				}else{
					User user = (User) request.getSession().getAttribute("flogin");
					if (user.getChanges()>0) {
						int i = (int)(1+Math.random()*(size-1+1));
						System.out.println(i);
						String string = idStrings.get(i-1);//获取到交换的书籍ID
						Book book = bookService.getById(string);
						book.setIsOver("1");
						book.setBuyer(user.getId());
						bookService.update(book);
						writer.println("1");
					}else{
						writer.println("2");
					}
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
			writer.println("0");
		}
	}
	
	
	//form跳转页面

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐