JAVAWEB二手车交易信息平台会员:会员注册,基本信息修改;二手汽车出售信息的编辑、修改、发布、关闭;查询并维护自己的出售信息,查询他人发布的出售信息并可以留言,可以对他人的留言进行回复;会员……
JAVA二手车交易信息平台
文章目录
- JAVA二手车交易信息平台
- 说明:源代码github地址:
- 一、要求
- 1、会员
- 2、管理员
- 二、所采用的Java EE技术规范
- 三、数据库设计(ER图)
- 四、主要模块功能及其实现
- 1、系统流程图
- 2、会员登录
- 3、会员注册
- 4、主页
- 1、列出所有处在发布状态的车
- 2、提供查询(按品牌、型号、估价、年限),支持多个输入值查询
- 3、排序功能
- 5、查看车辆详情
- 1、列出相关车辆的信息、查看该车辆的所有留言
- 2、添加留言
- 6、查看具体某一条留言
- 1、看本条留言的发送者用户名、该留言的所有回复
- 2、对该留言进行评论
- 3、该留言发布者为自己,则还可以删除
- 7、卖车
- 1、列出自己的所有车辆
- 2、进行查询(查询车牌号,结果转到修改界面)
- 8、添加新车
- 9、修改车辆信息
- 10、删除车辆信息
- 11、查看自己车辆的所有评论
- 12、本车发布状态管理
- 13、个人信息修改
- 14、查看自己的所有留言
- 1、查看自己所有留言及评论
- 2、删除
- 15、管理员登录
- 16、管理员管理会员
- 17、管理员管理出售信息
- 18、管理员管理车辆信息
- 五、程序运行时的输入数据/输出结果
说明:源代码github地址:
https://github.com/best-ld/javawebusedcar.git
二手车交易信息平台
一、要求
1、会员
会员注册,基本信息修改;二手汽车出售信息的编辑、修改、发布(发布后不可再修改)、关闭(关闭后他人不可再留言);查询并维护自己的出售信息,查询他人发布的出售信息并可以留言,可以对他人的留言进行回复;
2、管理员
会员管理(权限管理,例如是否可以发布出售信息,取消用户会员资格等),出售信息管理(管理员拥有对虚假消息进行管理的权力,可以屏蔽虚假消息)。
二、所采用的Java EE技术规范
JDBC、JSP、Servlet、XML
三、数据库设计(ER图)

注:ER图中“车”与“管理员”间无联系,“会员”与“管理员”间无联系,上图存在错误
四、主要模块功能及其实现
1、系统流程图

2、会员登录
功能:检验该用户是否存在,密码是否正确,是否被授权登录,返回相关的提示
关键代码:
if(userloginservice.checkLoginName(user_name)) {request.setAttribute("message","!请输入正确的用户名");request.getRequestDispatcher("/UserLogin.jsp").forward(request, response);}else {if(userloginservice.checkLoginNamePassword(user_name, password)) {request.setAttribute("message","!请输入正确的密码");request.getRequestDispatcher("/UserLogin.jsp").forward(request, response);}else {user = userloginservice.searchUserByNamePassword(user_name, password);if(user.getPermission()==0) {request.setAttribute("message","!您无权限进入该网站");request.getRequestDispatcher("/UserLogin.jsp").forward(request, response);}else {cars = userservice.search_AllCar();for (int i = 0; i < cars.size(); i++) {Car car = cars.get(i);SellPremission sellPremission = admirSevice.searchByC_id(car.getCar_id());if (sellPremission != null && sellPremission.getPremission()==1 && sellPremission.getReleasing()==1) {cars_re.add(car);}}request.setAttribute("cars",cars_re);request.setAttribute("user",user);request.getRequestDispatcher("/WEB-INF/views/UserHomepage.jsp").forward(request, response);}}}
3、会员注册
功能:检验该用户名是否存在,两次密码是否正确,返回相关的提示
关键代码:
String user_name = request.getParameter("username");String password = request.getParameter("password");String name = request.getParameter("name");String idcard = request.getParameter("idcard");String phone = request.getParameter("phone");String city = request.getParameter("city");String again_password = request.getParameter("again_password");UserSignupService userservice = new UserSignupService();if(!userservice.checkSignName(user_name)) {request.getRequestDispatcher("/UserSignup.jsp").forward(request, response);}else {if(!userservice.checkSignupIdcard(idcard)) {request.setAttribute("message","!该身份证号码已被注册");request.getRequestDispatcher("/UserSignup.jsp").forward(request, response);}else {if(!userservice.check_Password(password, again_password)) {request.setAttribute("message","!两次输入密码不一致");request.getRequestDispatcher("/UserSignup.jsp").forward(request, response);}else{userservice.add_User(user_name, again_password, name, idcard, phone, city);request.setAttribute("message", "注册成功!");request.getRequestDispatcher("/UserLogin.jsp").forward(request, response);}}}
4、主页
功能:列出所有处在发布状态的车,提供查询(按品牌、型号、估价、年限),排序功能
关键代码:
1、列出所有处在发布状态的车
cars = userservice.search_AllCar();for (int i = 0; i < cars.size(); i++) {Car car = cars.get(i);SellPremission sellPremission = admirSevice.searchByC_id(car.getCar_id());if (sellPremission != null && sellPremission.getPremission()==1 && sellPremission.getReleasing()==1) {cars_re.add(car);}}request.setAttribute("cars",cars_re);request.setAttribute("user",user);request.getRequestDispatcher("/WEB-INF/views/UserHomepage.jsp").forward(request, response);
2、提供查询(按品牌、型号、估价、年限),支持多个输入值查询
int user_id = Integer.parseInt(request.getParameter("user_id"));String brand = request.getParameter("brand");String model = request.getParameter("model");String lowprice_s = request.getParameter("lowprice");String heightprice_s = request.getParameter("heightprice");String years_s = request.getParameter("years");int lowprice = 0;int heightprice = 99999;if (lowprice_s != "") {lowprice = Integer.parseInt(lowprice_s);}if (heightprice_s != "") {heightprice = Integer.parseInt(heightprice_s);}List<Car> cars1 = new ArrayList<Car>();List<Car> cars2 = new ArrayList<Car>();List<Car> reslut = new ArrayList<Car>();if (brand=="") {if (model=="") {cars1 = carservice.search_CarbyPrice(lowprice, heightprice);} else {cars1 = carservice.search_CarbyModel_Price(model, lowprice, heightprice);}} else {if (model=="") {cars1 = carservice.search_CarbyBrand_Price(brand, lowprice, heightprice);}else {cars1 =carservice.search_CarbyBrand_Model_Price(brand, model, lowprice, heightprice);}}if (years_s != "") {int years = Integer.parseInt(years_s);cars2 = carservice.search_CarbyYears(years);for(Car car1:cars1) {for(Car car2:cars2) {if (car1.getCar_id() == car2.getCar_id()) {reslut.add(car1);}}}}else {reslut = cars1;}List<Car> cars_re = new ArrayList<Car>();for (int i = 0; i < reslut.size(); i++) {Car car =reslut.get(i);SellPremission sellPremission = admirSevice.searchByC_id(car.getCar_id());if (sellPremission!=null && sellPremission.getPremission()==1 && sellPremission.getReleasing()==1) {cars_re.add(car);}}User user = userservice.search_UserById(user_id);request.setAttribute("searchcarsuccessmessage", "回到主页");request.setAttribute("cars",cars_re);request.setAttribute("user",user);request.getRequestDispatcher("/WEB-INF/views/UserHomepage.jsp").forward(request, response);
3、排序功能
int user_id = Integer.parseInt(request.getParameter("user_id"));User user = userservice.search_UserById(user_id);List<Car> cars = carservice.order_CarTop();List<Car> cars_re = new ArrayList<Car>();for (int i = 0; i < cars.size(); i++) {Car car = cars.get(i);SellPremission sellPremission = admirSevice.searchByC_id(car.getCar_id());if (sellPremission != null && sellPremission.getPremission() == 1 && sellPremission.getReleasing() == 1) {cars_re.add(car);}}request.setAttribute("searchcarsuccessmessage", "回到主页");request.setAttribute("cars", cars_re);request.setAttribute("user", user);request.getRequestDispatcher("/WEB-INF/views/UserHomepage.jsp").forward(request, response);
5、查看车辆详情
1、列出相关车辆的信息、查看该车辆的所有留言
int car_id = Integer.parseInt(request.getParameter("car_id"));int user_id = Integer.parseInt(request.getParameter("user_id"));User buyer = userservice.search_UserById(user_id);Car car = carservice.search_CarbyCarId(car_id);User seller = userservice.search_UserById(car.getUser_id());List<TalkMessage> messages = new ArrayList<TalkMessage>();messages = talkservice.searchMessageByCar_id(car_id);List<TalkMessage> sub_messages = new ArrayList<TalkMessage>();for (int i = 0; i < messages.size(); i++) {TalkMessage message = null;if (messages.get(i).getContent().length() >= 15) {message = new TalkMessage(messages.get(i).getM_id(), messages.get(i).getSend_id(),messages.get(i).getGet_id(), messages.get(i).getCar_id(),messages.get(i).getContent().substring(0, 15));} else {message = messages.get(i);}sub_messages.add(message);// System.out.println(sub_messages.get(i).getContent());}request.setAttribute("messages", sub_messages);request.setAttribute("car", car);request.setAttribute("buyer", buyer);request.setAttribute("seller", seller);request.getRequestDispatcher("/WEB-INF/views/CarDetails.jsp").forward(request, response);
2、添加留言
String content = request.getParameter("content");int car_id = Integer.parseInt(request.getParameter("car_id"));int get_id = Integer.parseInt(request.getParameter("get_id"));int send_id = Integer.parseInt(request.getParameter("send_id"));if (content != "") {talkservice.addNewMessage(send_id, get_id, car_id, content);} else {request.setAttribute("waringmessage", "!留言不能为空");}List<TalkMessage> messages = new ArrayList<TalkMessage>();messages = talkservice.searchMessageByCar_id(car_id);User buyer = userservice.search_UserById(send_id);Car car = carservice.search_CarbyCarId(car_id);User seller = userservice.search_UserById(get_id);List<TalkMessage> sub_messages = new ArrayList<TalkMessage>();for (int i = 0; i < messages.size(); i++) {TalkMessage message = null;if (messages.get(i).getContent().length() >= 15) {message = new TalkMessage(messages.get(i).getM_id(), messages.get(i).getSend_id(),messages.get(i).getGet_id(), messages.get(i).getCar_id(),messages.get(i).getContent().substring(0, 15));} else {message = messages.get(i);}sub_messages.add(message);System.out.println(sub_messages.get(i).getContent());}request.setAttribute("messages", sub_messages);request.setAttribute("buyer", buyer);request.setAttribute("car", car);request.setAttribute("seller", seller);request.getRequestDispatcher("/WEB-INF/views/CarDetails.jsp").forward(request, response);
6、查看具体某一条留言
1、看本条留言的发送者用户名、该留言的所有回复
int m_id = Integer.parseInt(request.getParameter("m_id"));int flag = Integer.parseInt(request.getParameter("flag"));int user_id = Integer.parseInt(request.getParameter("user_id"));User user = userservice.search_UserById(user_id);List<BackMessage> backMessages = new ArrayList<BackMessage>();backMessages = talkservice.searchBackMessageByM_id(m_id);TalkMessage talkmessage = talkservice.searcMeeageByM_id(m_id);// 返回car类Car car = carservice.search_CarbyCarId(talkmessage.getCar_id());// 该条留言的发布者,即回复的接收者User geter = userservice.search_UserById(talkmessage.getSend_id());request.setAttribute("car", car);request.setAttribute("flag", flag);request.setAttribute("user", user);request.setAttribute("geter", geter);request.setAttribute("talkmessage", talkmessage);request.setAttribute("backMessages", backMessages);request.getRequestDispatcher("/WEB-INF/views/SeeBackMessage.jsp").forward(request, response);
2、对该留言进行评论
int m_id = Integer.parseInt(request.getParameter("m_id"));int send_id = Integer.parseInt(request.getParameter("send_id"));// 本机用户int get_id = Integer.parseInt(request.getParameter("get_id"));// 要评论的对象int flag = Integer.parseInt(request.getParameter("flag"));System.out.println(flag);String send_name = userservice.search_UserById(send_id).getUser_name();String content = request.getParameter("content");if (content == "") {request.setAttribute("waringmessage", "!留言不能为空");} else {talkservice.addBackMessage(m_id, send_id, send_name, content);}User user = userservice.search_UserById(send_id);User geter = userservice.search_UserById(get_id);TalkMessage talkmessage = talkservice.searcMeeageByM_id(m_id);List<BackMessage> backMessages = new ArrayList<BackMessage>();backMessages = talkservice.searchBackMessageByM_id(m_id);Car car = carservice.search_CarbyCarId(talkmessage.getCar_id());request.setAttribute("flag", flag);request.setAttribute("car", car);request.setAttribute("user", user);request.setAttribute("geter", geter);request.setAttribute("talkmessage", talkmessage);request.setAttribute("backMessages", backMessages);request.getRequestDispatcher("/WEB-INF/views/SeeBackMessage.jsp").forward(request, response);
3、该留言发布者为自己,则还可以删除
int send_id = Integer.parseInt(request.getParameter("send_id"));int m_id = Integer.parseInt(request.getParameter("m_id"));// int get_id = Integer.parseInt(request.getParameter("get_id"));TalkMessage talkMessage = talkservice.searcMeeageByM_id(m_id);int car_id = talkMessage.getCar_id();talkservice.deleteMessage(m_id);List<TalkMessage> messages = new ArrayList<TalkMessage>();messages = talkservice.searchMessageByCar_id(car_id);User buyer = userservice.search_UserById(send_id);Car car = carservice.search_CarbyCarId(car_id);User seller = userservice.search_UserById(car.getUser_id());List<TalkMessage> sub_messages = new ArrayList<TalkMessage>();for (int i = 0; i < messages.size(); i++) {TalkMessage message = null;if (messages.get(i).getContent().length() >= 15) {message = new TalkMessage(messages.get(i).getM_id(), messages.get(i).getSend_id(),messages.get(i).getGet_id(), messages.get(i).getCar_id(),messages.get(i).getContent().substring(0, 15));} else {message = messages.get(i);}sub_messages.add(message);}request.setAttribute("messages", sub_messages);request.setAttribute("buyer", buyer);request.setAttribute("car", car);request.setAttribute("seller", seller);request.setAttribute("succeffulmessage", "删除成功!");request.getRequestDispatcher("/WEB-INF/views/CarDetails.jsp").forward(request, response);
7、卖车
1、列出自己的所有车辆
int user_id = Integer.parseInt(request.getParameter("user_id"));List<Car> cars = carservice.search_CarbyUserId(user_id);List<SPAndUserAndCar> spaucs = new ArrayList<SPAndUserAndCar>();SPAndUserAndCar spauc = null;User user = userservice.search_UserById(user_id);if (user.getPermission() == 0) {cars = userservice.search_AllCar();request.setAttribute("cars", cars);request.setAttribute("user", user);request.setAttribute("message", "!您没有权限进行该项操作,请前往申请权限");request.getRequestDispatcher("/WEB-INF/views/UserHomepage.jsp").forward(request, response);} else {for (int i = 0; i < cars.size(); i++) {SellPremission sellPremission = admirSevice.searchByC_id(cars.get(i).getCar_id());spauc = new SPAndUserAndCar(cars.get(i), user, sellPremission);spaucs.add(spauc);}request.setAttribute("user", user);request.setAttribute("spaucs", spaucs);request.setAttribute("cars", cars);request.getRequestDispatcher("/WEB-INF/views/SellPage.jsp").forward(request, response);}
2、进行查询(查询车牌号,结果转到修改界面)
String license_plate = request.getParameter("license_plate");int user_id = Integer.parseInt(request.getParameter("user_id"));Car car = carservice.search_CarbyLicense_plate(license_plate);User user = userservice.search_UserById(user_id);if (car != null && car.getUser_id() == user_id) {request.setAttribute("car", car);request.setAttribute("user", user);request.getRequestDispatcher("/WEB-INF/views/UpdateSellCar.jsp").forward(request, response);} else {List<Car> cars = carservice.search_CarbyUserId(user_id);request.setAttribute("searchMyCarwarning", "!该车牌号码不存在");request.setAttribute("user", user);request.setAttribute("cars", cars);request.getRequestDispatcher("/WEB-INF/views/SellPage.jsp").forward(request, response);}
8、添加新车
根据自己输入的信息(车辆信息包括图片,进行车辆添加,同时检验该车牌号码是否存在)
int user_id = Integer.parseInt(request.getParameter("user_id"));//*****************************List<String> list= new ArrayList<String>();String filename = PhotoDaoImpl.getPhotoNewName();ServletContext servletContext = null;servletContext = request.getSession().getServletContext();List<FileItem> items = PhotoDaoImpl.getRequsetFileItems(request, servletContext);// System.out.println(user_id);boolean isLoadToSQL = false;for (FileItem item : items) {if (!item.isFormField()) {if (PhotoDaoImpl.isGif(item)) {isLoadToSQL = PhotoDaoImpl.saveFile(item, filename);} else {System.out.print("后缀格式有误,保存文件失败");}} else {list.add(item.getString("UTF-8"));}}// System.out.println(list);String finalPhotoName = "imgs/" + filename;// *****************************String license_plate = list.get(0);String brand = list.get(1);String model = list.get(2);String years_s = list.get(3);String evaluation_s = list.get(4);User user = userservice.search_UserById(user_id);if (evaluation_s == "") {request.setAttribute("message", "!输入估价为空");request.setAttribute("user", user);request.getRequestDispatcher("/WEB-INF/views/AddSellCar.jsp").forward(request, response);} else {if (years_s == "") {request.setAttribute("message", "!输入年限为空");request.setAttribute("user", user);request.getRequestDispatcher("/WEB-INF/views/AddSellCar.jsp").forward(request, response);} else {if (!carservice.check_license_plate(license_plate)) {request.setAttribute("message", "!该车牌号已存在,请填写正确的车牌号码");request.setAttribute("user", user);request.getRequestDispatcher("/WEB-INF/views/AddSellCar.jsp").forward(request, response);} else {Integer evaluation = Integer.parseInt(evaluation_s);Integer years = Integer.parseInt(years_s);carservice.add_NewCar(user_id, license_plate, brand, model, years, evaluation, finalPhotoName);List<SPAndUserAndCar> spaucs = new ArrayList<SPAndUserAndCar>();List<Car> cars = carservice.search_CarbyUserId(user_id);Car car = carservice.search_CarbyLicense_plate(license_plate);admirSevice.addNewPremission(car.getCar_id(), user_id);for (int i = 0; i < cars.size(); i++) {SellPremission sellPremission = admirSevice.searchByC_id(cars.get(i).getCar_id());SPAndUserAndCar spauc = new SPAndUserAndCar(cars.get(i), user, sellPremission);spaucs.add(spauc);}request.setAttribute("cars", cars);request.setAttribute("spaucs", spaucs);request.setAttribute("user", user);request.setAttribute("successfulmessage", "!添加车辆成功");request.getRequestDispatcher("/WEB-INF/views/SellPage.jsp").forward(request, response);}}
9、修改车辆信息
主要功能:根据自己输入的要修改的信息(车辆信息包括图片,进行车辆添加,同时检验该车牌号码是否存在),且判断是否是发布状态,若发布,则不能修改。
int user_id = Integer.parseInt(request.getParameter("user_id"));int car_id = Integer.parseInt(request.getParameter("car_id"));int flag = Integer.parseInt(request.getParameter("flag"));SellPremission sellPremission_u = admirSevice.searchByC_id(car_id);sellPremission_u.setReleasing(flag);admirSevice.updatePremission(sellPremission_u);List<Car> cars = carservice.search_CarbyUserId(user_id);List<SPAndUserAndCar> spaucs = new ArrayList<SPAndUserAndCar>();User user = userservice.search_UserById(user_id);if (user.getPermission() == 0) {cars = userservice.search_AllCar();request.setAttribute("cars", cars);request.setAttribute("user", user);request.setAttribute("message", "!您没有权限进行该项操作,请前往申请权限");request.getRequestDispatcher("/WEB-INF/views/UserHomepage.jsp").forward(request, response);} else {for (int i = 0; i < cars.size(); i++) {SellPremission sellPremission = admirSevice.searchByC_id(cars.get(i).getCar_id());SPAndUserAndCar spauc = new SPAndUserAndCar(cars.get(i), user, sellPremission);spaucs.add(spauc);}request.setAttribute("user", user);request.setAttribute("spaucs", spaucs);request.setAttribute("cars", cars);request.getRequestDispatcher("/WEB-INF/views/SellPage.jsp").forward(request, response);}}// 进入修改车辆信息界面public void editCar(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {int user_id = Integer.parseInt(request.getParameter("user_id"));int car_id = Integer.parseInt(request.getParameter("car_id"));Car car = carservice.search_CarbyCarId(car_id);User user = userservice.search_UserById(user_id);request.setAttribute("car", car);request.setAttribute("user", user);request.getRequestDispatcher("/WEB-INF/views/UpdateSellCar.jsp").forward(request, response);}// 修改车辆信息public void updateCar(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {int car_id = Integer.parseInt(request.getParameter("car_id"));int user_id = Integer.parseInt(request.getParameter("user_id"));List<String> list = new ArrayList<String>();String filename = PhotoDaoImpl.getPhotoNewName();ServletContext servletContext = null;servletContext = request.getSession().getServletContext();List<FileItem> items = PhotoDaoImpl.getRequsetFileItems(request, servletContext);System.out.println(user_id);System.out.println(car_id);boolean isLoadToSQL = false;for (FileItem item : items) {if (!item.isFormField()) {if (PhotoDaoImpl.isGif(item)) {isLoadToSQL = PhotoDaoImpl.saveFile(item, filename);} else {//System.out.print("后缀格式有误,保存文件失败");}} else {list.add(item.getString("UTF-8"));}}//System.out.println(list);String finalPhotoName = "imgs/" + filename;String license_plate = list.get(0);String brand = list.get(1);String model = list.get(2);String years_s = list.get(3);String evaluation_s = list.get(4);Integer years = Integer.parseInt(years_s);Integer evaluation = Integer.parseInt(evaluation_s);Car car = carservice.search_CarbyCarId(car_id);User user = userservice.search_UserById(user_id);if (admirSevice.searchByC_id(car_id).getReleasing() == 1&& admirSevice.searchByC_id(car_id).getPremission() == 1) {request.setAttribute("warningmessage", "!该车辆已经发布,无法修改,请取消发布后再进行修改");request.setAttribute("car", car);request.setAttribute("user", user);request.getRequestDispatcher("/WEB-INF/views/UpdateSellCar.jsp").forward(request, response);} else {if ((!carservice.check_license_plate(license_plate))&& (!carservice.search_CarbyCarId(car_id).getLicense_plate().equals(license_plate))) {request.setAttribute("car", car);request.setAttribute("user", user);request.setAttribute("warningmessage", "!您要修改的车牌号已经存在");request.getRequestDispatcher("/WEB-INF/views/UpdateSellCar.jsp").forward(request, response);}else {carservice.update_Car(car_id, license_plate, brand, model, years, evaluation,finalPhotoName);List<Car> cars = carservice.search_CarbyUserId(user_id);List<SPAndUserAndCar> spaucs = new ArrayList<SPAndUserAndCar>();for (int i = 0; i < cars.size(); i++) {SellPremission sellPremission = admirSevice.searchByC_id(cars.get(i).getCar_id());SPAndUserAndCar spauc = new SPAndUserAndCar(cars.get(i),user,sellPremission);spaucs.add(spauc);}request.setAttribute("user", user);request.setAttribute("spaucs", spaucs);request.setAttribute("cars", cars);request.getRequestDispatcher("/WEB-INF/views/SellPage.jsp").forward(request, response);}}
10、删除车辆信息
主要功能:根据自己的用户名、密码然后再确认密码后可以删除该辆车
int car_id = Integer.parseInt(request.getParameter("car_id"));int user_id = Integer.parseInt(request.getParameter("user_id"));User user = userservice.search_UserById(user_id);String user_name = request.getParameter("username");String password = request.getParameter("password");String again_password = request.getParameter("again_password");if ((!user.getPassword().equals(password)) || (!user.getUser_name().equals(user_name))|| (!password.equals(again_password))) {Car car = carservice.search_CarbyCarId(car_id);request.setAttribute("message", "!用户密码或账号输入有误");request.setAttribute("car", car);request.setAttribute("user", user);request.getRequestDispatcher("/WEB-INF/views/DeleteSellCar.jsp").forward(request, response);} else {admirSevice.deletePremission(car_id);talkservice.deleteMessageByCar_id(car_id);carservice.delete_Car(car_id);// List cars = carservice.search_CarbyUserId(user_id); List<SPAndUserAndCar> spaucs = new ArrayList<SPAndUserAndCar>();List<Car> cars = carservice.search_CarbyUserId(user_id);for (int i = 0; i < cars.size(); i++) {SellPremission sellPremission = admirSevice.searchByC_id(cars.get(i).getCar_id());SPAndUserAndCar spauc = new SPAndUserAndCar(cars.get(i), user, sellPremission);spaucs.add(spauc);}request.setAttribute("user", user);request.setAttribute("spaucs", spaucs);request.setAttribute("cars", cars);request.getRequestDispatcher("/WEB-INF/views/SellPage.jsp").forward(request, response);
11、查看自己车辆的所有评论
主要功能:列出自己所有车辆的评论,留言功能同(模块5、查看具体某一条留言)
int user_id = Integer.parseInt(request.getParameter("user_id"));int car_id = Integer.parseInt(request.getParameter("car_id"));Car car = carservice.search_CarbyCarId(car_id);List<TalkMessage> messages = talkservice.searchMessageByCar_id(car_id);User user = userservice.search_UserById(user_id);List<TalkMessage> sub_messages = new ArrayList<TalkMessage>();for (int i = 0; i < messages.size(); i++) {TalkMessage message = null;if (messages.get(i).getContent().length() >= 15) {message = new TalkMessage(messages.get(i).getM_id(), messages.get(i).getSend_id(),messages.get(i).getGet_id(), messages.get(i).getCar_id(),messages.get(i).getContent().substring(0, 15));} else {message = messages.get(i);}sub_messages.add(message);// System.out.println(sub_messages.get(i).getContent());}request.setAttribute("messages", sub_messages);request.setAttribute("car", car);request.setAttribute("user", user);request.getRequestDispatcher("/WEB-INF/views/SeeMyCar.jsp").forward(request, response);
12、本车发布状态管理
主要功能:调整授权车辆的发布状态,是否进行发布
int user_id = Integer.parseInt(request.getParameter("user_id"));int car_id = Integer.parseInt(request.getParameter("car_id"));int flag = Integer.parseInt(request.getParameter("flag"));SellPremission sellPremission_u = admirSevice.searchByC_id(car_id);sellPremission_u.setReleasing(flag);admirSevice.updatePremission(sellPremission_u);List<Car> cars = carservice.search_CarbyUserId(user_id);List<SPAndUserAndCar> spaucs = new ArrayList<SPAndUserAndCar>();User user = userservice.search_UserById(user_id);if (user.getPermission() == 0) {cars = userservice.search_AllCar();request.setAttribute("cars", cars);request.setAttribute("user", user);request.setAttribute("message", "!您没有权限进行该项操作,请前往申请权限");request.getRequestDispatcher("/WEB-INF/views/UserHomepage.jsp").forward(request, response);} else {for (int i = 0; i < cars.size(); i++) {SellPremission sellPremission = admirSevice.searchByC_id(cars.get(i).getCar_id());SPAndUserAndCar spauc = new SPAndUserAndCar(cars.get(i), user, sellPremission);spaucs.add(spauc);}request.setAttribute("user", user);request.setAttribute("spaucs", spaucs);request.setAttribute("cars", cars);request.getRequestDispatcher("/WEB-INF/views/SellPage.jsp").forward(request, response);}
13、个人信息修改
int user_id = Integer.parseInt(request.getParameter("user_id"));String user_name = request.getParameter("username");String password = request.getParameter("password");String phone = request.getParameter("phone");String city = request.getParameter("city");User user = userservice.search_UserById(user_id);if (!userloginservice.checkLoginName(user_name) && !user.getUser_name().equals(user_name)) {request.setAttribute("user", user);request.setAttribute("message", "!该用户名已存在");request.getRequestDispatcher("/WEB-INF/views/UserUpdate.jsp").forward(request, response);} else {List<Car> cars = new ArrayList<Car>();userservice.update_User(user_id, user_name, password, phone, city);cars = userservice.search_AllCar();request.setAttribute("cars", cars);request.setAttribute("user", user);request.getRequestDispatcher("/WEB-INF/views/UserHomepage.jsp").forward(request, response);}
14、查看自己的所有留言
主要功能:查看自己所有留言,可进行删
1、查看自己所有留言及评论
int user_id = Integer.parseInt(request.getParameter("user_id"));User user = userservice.search_UserById(user_id);List<TalkMessage> talkMessages = talkservice.searchMessageBySendId(user_id);List<BackAndGetMessage> backAndGetMessages = new ArrayList<BackAndGetMessage>();for (int i = 0; i < talkMessages.size(); i++) {List<BackMessage> backMessages = talkservice.searchBackMessageByM_id(talkMessages.get(i).getM_id());Car car = carservice.search_CarbyCarId(talkMessages.get(i).getCar_id());BackAndGetMessage backAndGetMessage = new BackAndGetMessage(backMessages,talkMessages.get(i),car);backAndGetMessages.add(backAndGetMessage);}request.setAttribute("allmessages", backAndGetMessages);request.setAttribute("user", user);request.getRequestDispatcher("/WEB-INF/views/SeeMyMessage.jsp").forward(request, response);}
2、删除
int user_id = Integer.parseInt(request.getParameter("user_id"));int m_id = Integer.parseInt(request.getParameter("m_id"));talkservice.deleteMessage(m_id);User user = userservice.search_UserById(user_id);List<TalkMessage> talkMessages = talkservice.searchMessageBySendId(user_id);List<BackAndGetMessage> backAndGetMessages = new ArrayList<BackAndGetMessage>();for (int i = 0; i < talkMessages.size(); i++) {List<BackMessage> backMessages = talkservice.searchBackMessageByM_id(talkMessages.get(i).getM_id());Car car = carservice.search_CarbyCarId(talkMessages.get(i).getCar_id());BackAndGetMessage backAndGetMessage = new BackAndGetMessage(backMessages,talkMessages.get(i),car);backAndGetMessages.add(backAndGetMessage);}request.setAttribute("allmessages", backAndGetMessages);request.setAttribute("user", user);request.getRequestDispatcher("/WEB-INF/views/SeeMyMessage.jsp").forward(request, response);
15、管理员登录
主要功能:检验该用户是否存在,密码是否正确。
String name = request.getParameter("admirname");String password = request.getParameter("password");if (!admirSevice.checkAdnmirName(name)) {request.setAttribute("message", "!请输入正确的管理员账号");request.getRequestDispatcher("/AdmirLogin.jsp").forward(request, response);} else {if (!admirSevice.checkAdnmirPassword(name, password)) {request.setAttribute("message", "!请输入正确的密码");request.getRequestDispatcher("/AdmirLogin.jsp").forward(request, response);} else {List<User> users = userservice.search_AllUser();request.setAttribute("users", users);request.getRequestDispatcher("/WEB-INF/views/AdmirUser.jsp").forward(request, response);}}
16、管理员管理会员
主要功能:管理会员是否有资格登录进网站
Integer user_id = Integer.parseInt(request.getParameter("user_id"));Integer flag = Integer.parseInt(request.getParameter("flag"));User user = userservice.search_UserById(user_id);user.setPermission(flag);// System.out.println(user);userservice.updateUser(user);List<User> users = userservice.search_AllUser();request.setAttribute("users", users);request.getRequestDispatcher("/WEB-INF/views/AdmirUser.jsp").forward(request, response);
17、管理员管理出售信息
主要功能:授权或取消授权
Integer s_id = Integer.parseInt(request.getParameter("s_id"));Integer flag = Integer.parseInt(request.getParameter("flag"));SellPremission sellPremission = admirSevice.searchByS_id(s_id);sellPremission.setPremission(flag);// 授权的时候默认发布状态为0if (flag == 1) {sellPremission.setReleasing(0);}admirSevice.updatePremission(sellPremission);User user = userservice.search_UserById(sellPremission.getUser_id());List<SellPremission> spremissions = admirSevice.getAllSellMessage();List<SPAndUserAndCar> spucs = new ArrayList<SPAndUserAndCar>();for (int i = 0; i < spremissions.size(); i++) {SellPremission spremission = spremissions.get(i);Car car = carservice.search_CarbyCarId(spremission.getCar_id());SPAndUserAndCar spuc = new SPAndUserAndCar(car, user, spremission);spucs.add(spuc);}request.setAttribute("spucs", spucs);request.getRequestDispatcher("/WEB-INF/views/AdmirRelease.jsp").forward(request, response);
18、管理员管理车辆信息
主要功能:下架有不良信息的车辆
int car_id = Integer.parseInt(request.getParameter("car_id"));SellPremission sellPremission = admirSevice.searchByC_id(car_id);sellPremission.setPremission(0);admirSevice.updatePremission(sellPremission);List<Car> cars = carservice.search_AllCar();List<CarAndUser> carAndUsers = new ArrayList<CarAndUser>();for (int i = 0; i < cars.size(); i++) {Car car = cars.get(i);// 已发布的信息if (admirSevice.searchByC_id(car.getCar_id()).getReleasing() == 1&& admirSevice.searchByC_id(car.getCar_id()).getPremission() == 1) {User user = userservice.search_UserById(car.getUser_id());CarAndUser carAndUser = new CarAndUser(user, car);carAndUsers.add(carAndUser);}}request.setAttribute("cars", carAndUsers);request.getRequestDispatcher("/WEB-INF/views/CarMessageAdmir.jsp").forward(request, response);
五、程序运行时的输入数据/输出结果
模块1:会员登录模块:
(1)键入用户名:kkk(该用户不存在于数据库中)

(2)键入用户名:uzi(该用户存在于数据库中),密码:233(该密码错误)

(3)键入用户名:ld(该用户存在于数据库中),密码:666(该密码正确),但该用户无授权进入

(4)键入用户名:uzi(该用户存在于数据库中),密码:2200(该密码正确),进入主页:

模块2:会员注册模块:
(1)注册用户名:ld(存在):

(2)注册用户名:lddd(不存在),身份证号码:(存在)

(4)两次密码不相同:
第一次为:2222
第二次为:666666

(4)注册成功返回登录界面

模块3:主页模块:(买车模块)
(1)列出所有处在发布状态的车

(2)提供查询(按品牌、型号、估价、年限)
查询框“品牌”输入:红旗,点击查询

查询框“型号”输入:H9,点击查询

查询框“价格”输入:40、150,点击查询

查询框输入多个值:红旗、H9,100,150

(3)排序功能
按价格升序排序

按价格降序排序

(4)返回主页
点击返回主页可以返回主页。

模块4、查看车辆详情模块
(1)列出相关车辆的信息,查看该车辆的所有留言
点击“查看详情”,进入车辆详情页面,展示车辆的图片、各类信息、该车所有留言、车主地址、姓名等。


(2)进行留言
在留言区输入自己的留言,并点击提交,会刷新页面,将自己的发言显示在留言区

模块5、查看具体某一条留言
(1)查看本条留言的发送者用户名、该留言的所有回复
点击该条留言,可以对留言信息进行查看


(2)可以对该留言进行评论

(3)若该留言发布者为自己,则还可以删除

模块6、卖车模块
(1)列出自己的所有车辆
点击“我要卖车”,进入卖车界面

(2)可进行查询(查询车牌号,结果转到修改界面)
键入车牌号码,可以进入该车修改界面:


模块7、添加新车模块
根据自己输入的信息(车辆信息包括图片,进行车辆添加,同时检验该车牌号码是否存在)


模块8、修改车辆信息模块
根据自己输入的要修改的信息(车辆信息包括图片,进行车辆添加,同时检验该车牌号码是否存在,这个过程中必须再次上传图片)且判断是否是发布状态,若发布,则不能修改
修改估价为46,但该车已经发布:

修改未发布的车辆


模块9、删除车辆信息模块
主要功能:根据自己的用户名、密码然后再确认密码后可以删除该辆车

模块10、查看自己车辆的所有评论
列出自己所有车辆的评论

模块11、本车发布状态管理
主要功能:调整授权车辆的发布状态,是否进行发布
点击“取消发布”后,主页就见不到该车的信息


模块12、个人信息修改
修改个人信息,根据输入个人信息进行修改

模块13、查看自己的所有留言
查看自己所有留言,可进行删除

模块14、管理员登录
主要功能:检验该用户是否存在,密码是否正确

模块14、管理员管理会员
管理会员是否有资格登录进网站

模块16、管理员管理车辆信息
下架有不良信息的车辆

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
