当前位置: 首页 > 编程日记 > 正文

Java项目:在线淘房系统(租房、购房)(java+SpringBoot+Redis+MySQL+Vue+SpringSecurity+JWT+ElasticSearch+WebSocket)

源码获取:博客首页 "资源" 里下载!

该系统有三个角色,分别是:普通用户、房屋中介、管理员普通用户的功能:浏览房屋信息、预约看房、和中介聊天、申请成为中介等等。房屋中介的功能:发布房屋信息、和用户聊天、回复预约信息等等。管理员的功能:管理所有用户信息、管理权限信息、管理所有房屋信息、管理所有预约信息等等。

应用技术:SpringBoot + Redis + MySQL + Vue + SpringSecurity + JWT + ElasticSearch + WebSocket + FreeMarker + MyBatis-Plus等等

运行环境:Eclipse/IntelliJ IDEA + MySQL5.7 + Maven3.6.3(项目压缩包中自带) + JDK1.8 + Redis5.0.5(项目压缩包中自带)+ ElasticSearch6.8.0

个人中心控制器:

/*** 个人中心控制器* * @author yy**/
@Controller
@RequestMapping("/personacentermvc")
public class PersonacenterController {@Resourceprivate RentwithdrawnService rentwithdrawnService;@Resourceprivate UserlistService userlistService;@Resourceprivate LeaseinformationService leaseinformationService;@Resourceprivate CheckoutapplicationService checkoutapplicationService;@Resourceprivate RentcollectionService rentcollectionService;@Resourceprivate FaultService faultService;@Resourceprivate HeadPortraitImgService headPortraitImgService;/*** 个人信息切换页面*/@RequestMapping("/personal_switch")public void temp(String txt, HttpServletResponse response) throws IOException {response.setCharacterEncoding("UTF-8");switch (txt) {case "租赁信息":response.getWriter().print("/jsp/personalInformation/information.jsp");break;case "我的申请":response.getWriter().print("/jsp/personalInformation/myapplication.jsp");break;case "代缴租金":response.getWriter().print("/jsp/personalInformation/rentpayment.jsp");break;case "报障模块":response.getWriter().print("/jsp/personalInformation/faultreportingmodule.jsp");break;case "其他操作":response.getWriter().print("/jsp/personalInformation/otheroperations.jsp");break;}}/*** 我的租赁分页查询*/@RequestMapping("/myRentalList")@ResponseBodypublic Msg myRentalList(@RequestParam(value = "pn") Integer pn, HttpSession session) {// 查询所有数据userlist user = userlistService.selectUserCall((String) session.getAttribute("user"));// 设置分页传输PageHelper.startPage(pn, 8);List<userlist> leaseuser = userlistService.selectUserNameWith(user.getUsername());// 使用PageInFo封装查询结果PageInfo<userlist> pageInfo = new PageInfo<userlist>(leaseuser, 3);return Msg.success().add("pageInfo", pageInfo);}/*** 已退租赁记录分页查询*/@RequestMapping("/refundedLeaseList")@ResponseBodypublic Msg refundedLeaseList(@RequestParam(value = "pn") Integer pn, HttpSession session) {// 查询所有数据userlist user = userlistService.selectUserCall((String) session.getAttribute("user"));// 设置分页传输PageHelper.startPage(pn, 8);List<rentwithdrawn> list = rentwithdrawnService.queryAllStateName("已退租", "", user.getUsername());// 使用PageInFo封装查询结果PageInfo<rentwithdrawn> pageInfo = new PageInfo<rentwithdrawn>(list, 3);return Msg.success().add("pageInfo", pageInfo);}/*** 申请状态记录分页查询*/@RequestMapping("/applicationAtatusList")@ResponseBodypublic Msg applicationAtatusList(@RequestParam(value = "pn") Integer pn, boolean flag, HttpSession session) {List<checkoutapplication> list = null;userlist user = userlistService.selectUserCall((String) session.getAttribute("user"));// 设置分页传输PageHelper.startPage(pn, 8);// 查询所有数据if (flag) {list = checkoutapplicationService.selectStateAll("看房申请中", "退房申请中", "", user.getUsername());} else {list = checkoutapplicationService.selectStateAll("已拒绝", "已同意", "已取消", user.getUsername());}// 使用PageInFo封装查询结果PageInfo<checkoutapplication> pageInfo = new PageInfo<checkoutapplication>(list, 3);return Msg.success().add("pageInfo", pageInfo);}/*** 代缴租金分页查询*/@RequestMapping("/rentpaymentList")@ResponseBodypublic Msg rentpaymentList(@RequestParam(value = "pn") Integer pn, String state, HttpSession session) {userlist user = userlistService.selectUserCall((String) session.getAttribute("user"));// 设置分页传输PageHelper.startPage(pn, 8);List<rentcollection> list = rentcollectionService.queryPaidStateAll(state, user.getUsername());// 使用PageInFo封装查询结果PageInfo<rentcollection> pageInfo = new PageInfo<rentcollection>(list, 3);return Msg.success().add("pageInfo", pageInfo);}/*** 缴纳租金*/@RequestMapping("/payrentmvc")public ModelAndView payrentmvc(String rchousemoney,Integer rcid,String token,HttpServletRequest request,HttpSession session) {ModelAndView mav = new ModelAndView("personacenter");//令牌验证if(!new Koken().kokenid(request, session)) {return mav;	}Warning news = rentcollectionService.updateState(rcid);System.out.println(news.getWarningContent());// 放入转发参数mav.addObject("news", news);return mav;}/*** 已缴纳租金删除记录*/@RequestMapping("/paidrent")public ModelAndView paidrent(Integer rcid,HttpServletRequest request,HttpSession session) {ModelAndView mav = new ModelAndView("personacenter");//令牌验证if(!new Koken().kokenid(request, session)) {return mav;	}Warning news = rentcollectionService.deleteByPrimaryKey(rcid);System.out.println(news.getWarningContent());// 放入转发参数mav.addObject("news", news);return mav;}/*** 共缴费费用*/@RequestMapping("/copaymentfee")@ResponseBodypublic Msg copaymentfee(String state, HttpSession session) {userlist user = userlistService.selectUserCall((String) session.getAttribute("user"));List<rentcollection> list = rentcollectionService.queryPaidStateAll(state, user.getUsername());int num = 0;for (rentcollection temp : list) {num += Float.parseFloat(temp.getRchousemoney());}return Msg.success().add("num", num);}/*** 报障分页查询*/@RequestMapping("/repairList")@ResponseBodypublic Msg repairList(@RequestParam(value = "pn") Integer pn, String str, HttpSession session) {// 使用PageInFo封装查询结果userlist user = userlistService.selectUserCall((String) session.getAttribute("user"));// 设置分页传输PageHelper.startPage(pn, 8);if (str.equals("我要报障")) {List<userlist> leaseuser = userlistService.selectUserNameWith(user.getUsername());PageInfo<userlist> pageInfo = new PageInfo<userlist>(leaseuser, 3);return Msg.success().add("pageInfo", pageInfo);}List<fault> list = faultService.queryAllState(str, user.getUsername());PageInfo<fault> pageInfo = new PageInfo<fault>(list, 3);return Msg.success().add("pageInfo", pageInfo);}/*** 报障提交内容* * @throws ParseException*/@RequestMapping("/contentofthereport")public ModelAndView contentofthereport(String date, String housecall, String contentofthe,String token,HttpServletRequest request,HttpSession session) throws ParseException {ModelAndView mav = new ModelAndView("personacenter");//令牌验证if(!new Koken().kokenid(request, session)) {return mav;	}userlist user = userlistService.selectUserCallWith(housecall);fault fault = new fault();fault.setFhouseid(housecall);fault.setFhouseaddress(user.getLeaseinformation().getHouseaddress());fault.setFprice(Double.parseDouble(user.getLeaseinformation().getHousemoney()));SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");Date t1 = sdf.parse(date);fault.setFdate(t1);fault.setFdatetemp(date);fault.setFcontent(contentofthe);fault.setFusername(user.getUsername());fault.setFuserid(user.getUserid());fault.setFuserphone(user.getUserphone());fault.setFstate("未处理");Warning news = faultService.insert(fault);System.out.println(news.getWarningContent());// 放入转发参数mav.addObject("news", news);return mav;}/*** 报障删除记录*/@RequestMapping("/deleterepair")public ModelAndView deleterepair(Integer fid,String token,HttpServletRequest request,HttpSession session) {ModelAndView mav = new ModelAndView("personacenter");//令牌验证if(!new Koken().kokenid(request, session)) {return mav;	}Warning news = faultService.deleteByPrimaryKey(fid);System.out.println(news.getWarningContent());// 放入转发参数mav.addObject("news", news);return mav;}/*** 头像上传 用户真实姓名,身份证号,手机号上传* * @throws FileNotFoundException*/@RequestMapping("/file")public ModelAndView file(String username,String userid,String userphone,HttpServletRequest request,HttpSession session,@RequestParam MultipartFile file) throws Exception {System.out.println(username);ModelAndView mav = new ModelAndView("personacenter");userlist usere=userlistService.selectUserName(username);if (usere==null) {session.setAttribute("modifyerro",null);System.out.println("可修改");}else {Warning news=new Warning(2, "修改失败!该姓名用户已注册");mav.addObject("news", news);return mav;}//令牌验证if(!new Koken().kokenid(request, session)) {return mav;	}// 获取文件的名称String fName = file.getOriginalFilename();System.out.println(fName);if (!fName.equals("")) {// 保存图片的目录String path = "C://Users/Rain/Desktop/ssm_leaseOfHouses/WebContent/headPortraitImg";File filepath = new File(path);// 如果目录不存在,创建if (!filepath.exists()) {filepath.mkdir();}File f = new File(path, fName);// 更改用户头像headportraitimg headportraitimg = new headportraitimg();String user = (String) session.getAttribute("user");headportraitimg.setHeadportraitimgusername(user);headportraitimg.setHeadportraitimgaddress(fName);// 图片路径上传到数据库headPortraitImgService.updatauserimg(headportraitimg);// 更换头像session.setAttribute("headportraitimg", headportraitimg.getHeadportraitimgaddress());// 上传文件file.transferTo(f);}userlist user = userlistService.selectUserCall((String) session.getAttribute("user"));//暂时储存需要修改的真实姓名String rcusernametemp=user.getUsername();//判断,如有真实姓名联表修改,则添加if(user.getUsername()==null||"".equals(user.getUsername())) {// 上传真实姓名,身份证,手机号userlist userlist = new userlist();userlist.setUsercall((String) session.getAttribute("user"));userlist.setUsername(username);userlist.setUserid(userid);userlist.setUserphone(userphone);Warning news = userlistService.updateByPrimaryCall(userlist);System.out.println(news.getWarningContent());// 放入转发参数mav.addObject("news", news);}else {// 修改真实姓名,身份证,手机号userlist userlist = new userlist();userlist.setUsername(username);userlist.setUserid(userid);userlist.setUserphone(userphone);userlist.setUsernametemp(user.getUsername());Warning news = userlistService.updateJointTableName(userlist);//修改租金真实姓名System.out.println(rentcollectionService.updateUserName(username,rcusernametemp));System.out.println(news.getWarningContent());// 放入转发参数mav.addObject("news", news);}return mav;}/*** 删除已退租记录*/@RequestMapping("/deleterentrefund")public ModelAndView deleterentrefund(Integer rwid,String token,HttpServletRequest request,HttpSession session) {ModelAndView mav = new ModelAndView("personacenter");//令牌验证if(!new Koken().kokenid(request, session)) {return mav;	}Warning news = rentwithdrawnService.deleteByPrimaryKey(rwid);System.out.println(news.getWarningContent());// 放入转发参数mav.addObject("news", news);return mav;}/*** 查看合同*/@RequestMapping("/viewcontract")public ModelAndView viewcontract(String username, String userid, String houseaddress, String housestartingdatetemp,String houseclosingdatetemp, String housemoney, String userphone, String houseid,HttpServletRequest request,HttpSession session) {ModelAndView mav = new ModelAndView("personacenter");String arraytemp[] = { username, userid, houseaddress, housestartingdatetemp, houseclosingdatetemp, housemoney,userphone, houseid };String temp = (arraytemp[0]+arraytemp[7]) + "pdf.pdf";File filetemp = new File("C://Users/Rain/Desktop/ssm_leaseOfHouses/WebContent/contract/pdf/" + temp);if (!filetemp.exists()) {
//			System.out.println(new DocumentConversion().DocumentGeneration(arraytemp));new DocumentConversion().PdfGeneration((arraytemp[0]+arraytemp[7]));filetemp = new File("C://Users/Rain/Desktop/ssm_leaseOfHouses/WebContent/contract/pdf/" + temp);}String pdf = filetemp.getName();// 放入转发参数mav.addObject("pdftemp", pdf);return mav;}/*** 终止合同*/@RequestMapping("/termination")public ModelAndView termination(String call,String token,HttpServletRequest request,HttpSession session) {ModelAndView mav = new ModelAndView("personacenter");//令牌验证if(!new Koken().kokenid(request, session)) {return mav;	}userlist leaseuser = userlistService.selectUserCallWith(call);Warning news = checkoutapplicationService.insert(leaseuser);// 放入转发参数mav.addObject("news", news);return mav;}/*** 终止申请*/@RequestMapping("/stopapplying")public ModelAndView stopapplying(String call,String token,HttpServletRequest request,HttpSession session) {ModelAndView mav = new ModelAndView("personacenter");//令牌验证if(!new Koken().kokenid(request, session)) {return mav;	}Warning news = checkoutapplicationService.updateCallState("已取消", call);System.out.println(news.getWarningContent());// 放入转发参数mav.addObject("news", news);return mav;}/*** 删除申请记录*/@RequestMapping("/deleterecord")public ModelAndView deleterecord(Integer coaid,String token,HttpServletRequest request,HttpSession session) {ModelAndView mav = new ModelAndView("personacenter");//令牌验证if(!new Koken().kokenid(request, session)) {return mav;	}Warning news = checkoutapplicationService.deleteByPrimaryKey(coaid);System.out.println(news.getWarningContent());// 放入转发参数mav.addObject("news", news);return mav;}
}

房屋信息控制器:

/*** 房屋信息控制器* @author yy**/@Controller
@RequestMapping("/leaseinformationmvc")
public class LeaseinformationController {@AutowiredLeaseinformationService leaseinformationService;@RequestMapping("/details")public ModelAndView listCategory(@RequestParam int id){ModelAndView mav = new ModelAndView("details");List<leaseinformation> cs= leaseinformationService.allANDimg1(id);for (leaseinformation leaseinformation : cs) {System.out.println(leaseinformation.getLeaseimg().getImgroute());}// 放入转发参数mav.addObject("cs", cs);return mav;}}

用户控制器:

/*** 用户控制器* * @author yy**/
@Controller
@RequestMapping("/userlistmvc")
public class UserListController {private static final long serialVersionUID = -884689940866074733L;@Resourceprivate UserlistService userlistService;@Resourceprivate AdminListService adminListService;@Resourceprivate HeadPortraitImgService headPortraitImgService;@Resourceprivate CheckoutapplicationService checkoutapplicationService;/*** 登录*/@RequestMapping("/userpwd")public String userpwd(String username, String pwd, String[] identity, HttpServletRequest request) {HttpSession session = request.getSession();if (username.equals("") || pwd.equals("")) {request.setAttribute("erorr", "输入账号密码不能为空!");return "login";}String tempstr = null;try {if (identity[0].equals("user")) {userlist temp = new userlist();temp.setUsercall(username);temp.setUserpwd(pwd);userlist userlist = userlistService.queryAllUserPwd(temp);try {tempstr = userlist.getUsercall();if (tempstr != null) {session.setAttribute("user", tempstr);headportraitimg headportraitimg = headPortraitImgService.selectheadportrait(tempstr);if (headportraitimg.getHeadportraitimgaddress() != null) {session.setAttribute("headportraitimg", headportraitimg.getHeadportraitimgaddress());}return "official";}} catch (NullPointerException e) {if (tempstr == null) {request.setAttribute("erorr", "输入账号密码有误!");return "login";} else {return "official";}}}if (identity[0].equals("admin")) {adminlist temp = new adminlist();temp.setAdminname(username);temp.setAdminpwd(pwd);adminlist adminlist = adminListService.findAllAdminPwd(temp);try {tempstr = adminlist.getAdminname();if (tempstr != null) {session.setAttribute("admin", tempstr);return "BackgroundHome";}} catch (NullPointerException e) {request.setAttribute("erorr", "输入账号密码有误!");return "login";}}} catch (NullPointerException e) {request.setAttribute("erorr", "选择登录方式!");e.printStackTrace();return "login";}return "login";}/*** 注册*/@RequestMapping("/register")public String register(String usercall, String userpwd, String userphone, HttpServletRequest request) {if (usercall.equals("") || userpwd.equals("") || userphone.equals("")) {request.setAttribute("erorr", "输入账号密码不能为空!");return "register";}userlist user = new userlist();user.setUsercall(usercall);user.setUserphone(userphone);user.setUserpwd(userpwd);userlistService.insert(user);headportraitimg userimg = new headportraitimg();userimg.setHeadportraitimgusername(usercall);headPortraitImgService.insertuserimg(userimg);return "login";}/*** 获取手机验证码**/@RequestMapping("/getcode")public void getcode(String userphone, HttpServletResponse response, HttpServletRequest request) {response.setCharacterEncoding("UTF-8");try {HttpSession session = request.getSession();String code = "123456";
//			String code = Code.getNum(userphone);System.out.println(code);session.setAttribute("code", code);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}/*** 判断验证码输入后登陆**/@RequestMapping("/phonecod")public String phonecod(String userphone, String code, HttpServletRequest request) {HttpSession session = request.getSession();if (userphone.equals("") || code.equals("")) {request.setAttribute("erorr", "手机号或者验证码为空!");return "login";}System.out.println(code);if (code.equals(session.getAttribute("code"))) {userlist user = userlistService.selectUserPhone(userphone);if (user != null) {String tempstr = null;userlist userlist = userlistService.selectUserPhone(userphone);tempstr = userlist.getUsercall();if (tempstr != null) {session.setAttribute("user", tempstr);headportraitimg headportraitimg = headPortraitImgService.selectheadportrait(tempstr);if (headportraitimg.getHeadportraitimgaddress() != null) {session.setAttribute("headportraitimg", headportraitimg.getHeadportraitimgaddress());}return "official";}} else {request.setAttribute("erorr", "该手机号未注册!");return "login";}} else {request.setAttribute("erorr", "验证码错误!");return "login";}return "login";}/*** 修改密码*/@RequestMapping("/updatepwd")public String updatepwd(String code, String userphone, String userpwd, HttpServletRequest request) {if (code.equals("") || userphone.equals("") || userpwd.equals("")) {request.setAttribute("erorr", "手机号,验证码,新密码不能为空!");return "updatepwd";}HttpSession session = request.getSession();if (code.equals(session.getAttribute("code"))) {userlist userlist = userlistService.selectUserPhone(userphone);userlist.setUserpwd(userpwd);userlistService.updatepwd(userlist);return "login";}return userpwd;}/*** 注销*/@RequestMapping("/cancellation")public String cancellation(HttpServletRequest request) {HttpSession session = request.getSession();session.removeAttribute("user");System.out.println("注销成功");return "official";}/*** 申请看房*/@RequestMapping("/apply")@ResponseBodypublic ModelAndView apply(HttpSession session, HttpServletRequest request, String housemoney, String housecall,String houseaddress,String housesize) {ModelAndView mav = new ModelAndView("official");//令牌验证if(!new Koken().kokenid(request, session)) {return mav;	}mav.addObject("news", "official");if ((String) session.getAttribute("user") == null) {mav.addObject("apply", "请先登录!");return mav;}// 查询所有数据userlist user = userlistService.selectUserCall((String) session.getAttribute("user"));if (user.getUsername() == null) {// 判断真实姓名是否为空mav.addObject("apply", "请绑定真实姓名后再租赁房屋!");return mav;} else {checkoutapplication coa = new checkoutapplication();coa.setCoausername(user.getUsername());coa.setCoauserid(user.getUserid());coa.setCoauserphone(user.getUserphone());coa.setCoahouseid(housecall);coa.setCoahouseaddress(houseaddress);coa.setCoahouseprice(Double.parseDouble(housemoney));coa.setCoahousesize(Double.parseDouble(housesize));coa.setCoastate("看房申请中");String temp=checkoutapplicationService.insertApply(coa);mav.addObject("apply", temp);}return mav;}}

源码获取:博客首页 "资源" 里下载!

相关文章:

Be a person

做人不能太实诚 尤其是干我们这行的 多久时间能做完 你自己心里要有个估算 然后把时间再往后延 别他妈给自己找罪受 转载于:https://www.cnblogs.com/wskgjmhh/p/4644840.html

Solr配置文件分析与验证

前面一篇开始学习solr的时候&#xff0c;做了个入门的示例http://6738767.blog.51cto.com/6728767/1401865。虽然可以检索出内容&#xff0c;但总和想象的结果有差异——比如&#xff0c;检索“天龙”两个字&#xff0c;按常规理解&#xff0c;就应该只出来《天龙八部》才对&am…

oracle启用归档日志

一、开启归档 1、查看归档信息 SQL> archive log list Database log mode No Archive Mode Automatic archival Disabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 244 Current log sequence …

C++派生类与基类构造函数调用次序

本文用来测试C基类和派生类构造函数&#xff0c;析构函数&#xff0c;和拷贝构造函数的调用次序。运行环境&#xff1a;SUSE Linux Enterprise Server 11 SP2 (x86_64) #include <iostream>using namespace std;class Base{public:Base(){cout << "Base Cons…

Java项目:在线点餐系统(java+Springboot+Maven+mybatis+Vue+mysql+Redis)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 项目描述&#xff1a; 这是一个基于SpringBootVue框架开发的在线点餐系统。首先&#xff0c;这是一个前后端分离的项目。具有一个在线点餐系统该有的所有功能。 项目功能&#xff1a; 此项目分为两个角色&…

js 打开窗口window.open

js改变原有的地址 window.open(webPath/index?codecode,_self); 转载于:https://www.cnblogs.com/hwaggLee/p/4645680.html

中兴SDH原理介绍及中兴E300网管介绍

姓名苟忠兴培训课程中兴SDH原理介绍及中兴E300网管介绍培训心得1、 SDH概念&#xff1a;SDH&#xff08;Synchronous Digital Hierarchy&#xff0c;同步数字体系&#xff09;是一种将复接、线路传输及交换功能融为一体、并由统一网管系统操作的综合信息传送网络。2、 PDH缺点&…

bootstrap 冻结表格,冻结表头

需要的文件下载&#xff1a; bootstrap-table:https://github.com/wenzhixin/bootstrap-table bootstrap-table-fiex-column:https://github.com/wenzhixin/bootstrap-table-fixed-columns 参考来源&#xff1a;https://www.cnblogs.com/Kyaya/p/9004237.html 1.引入文件 2. bo…

Linux多线程与同步

作者&#xff1a;Vamei 出处&#xff1a;http://www.cnblogs.com/vamei 欢迎转载&#xff0c;也请保留这段声明。谢谢&#xff01; 典型的UNIX系统都支持一个进程创建多个线程(thread)。在Linux进程基础中提到&#xff0c;Linux以进程为单位组织操作&#xff0c;Linux中的线程也…

Java项目:校园外卖点餐系统(java+SSM+JSP+maven+mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 环境配置&#xff1a; Jdk1.8 Tomcat8.5 mysql Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09; 项目技术&#xff1a; JSP Spring SpringMVC MyBatis cs…

基于css3 transform实现散乱的照片排列

分享一款基于css3 transform实现散乱的照片排列。这是一款简单零散的css3相册排列特效下载。效果图如下&#xff1a; 在线预览 源码下载 实现的代码。 html代码&#xff1a; <div class"main"><div class"pic pic1"><img src"1.jpg…

C++利用二级指针做函数形参来进行修改实参的实例分析

在学C/C的时候&#xff0c;我们都会了解到一级指针&#xff0c;int* i NULL; 和二级指针int ** pp NULL; 但是具体的一些应用我们可能很难理解&#xff0c;如果我们要取int*的地址&#xff0c;我们就需要int**&#xff0c;这是因为指针传递本质上还是值传递,本质很难理解&a…

SpringBoot 优雅实现超大文件上传,通用方案

通俗的说,你把要上传的东西上传,服务器会先做MD5校验,如果服务器上有一样的东西,它就直接给你个新地址,其实你下载的都是服务器上的同一个文件,想要不秒传,其实只要让MD5改变,就是对文件本身做一下修改(改名字不行),例如一个文本文件,你多加几个字,MD5就变了,就不会秒传了。分片上传,就是将所要上传的文件,按照一定的大小,将整个文件分隔成多个数据块(我们称之为Part)来进行分别上传,上传完之后再由服务端对所有上传的文件进行汇总整合成原始的文件。

robotframework - 运行报错提示 No keyword with name 'Open Browser' found.

用下面的例子为例&#xff1a; 1、输入以上robot脚本提示&#xff1a; 2、经查阅资料&#xff0c;大部分都使用的是selenium2 版本&#xff0c;无法解该的问题&#xff0c;目前小编使用的是selenium3&#xff0c;不知道selenium是哪个版本的话&#xff0c;用pip show selenium…

Linux从程序到进程

作者&#xff1a;Vamei 出处&#xff1a;http://www.cnblogs.com/vamei 欢迎转载&#xff0c;也请保留这段声明。谢谢&#xff01; 计算机如何执行进程呢&#xff1f;这可以说是计算机运行的核心问题。即使我们已经编写好程序&#xff0c;但程序是死的文本&#xff0c;只有成为…

struct stat结构体的详解和用法

[cpp] view plaincopy//! 需要包含de头文件 #include <sys/types.h> #include <sys/stat.h> S_ISLNK(st_mode)&#xff1a;是否是一个连接.S_ISREG(st_mode)&#xff1a;是否是一个常规文件.S_ISDIR(st_mode)&#xff1a;是否是一个目录S_ISCHR(st_mode)&a…

反射setaccessible_反射技术

反射机制作用动态的加载类、动态的获取类的信息(属性&#xff0c;方法&#xff0c;构造器)动态构造对象动态调用类和对象的任意方法、构造器动态调用和处理属性获取泛型信息处理注解获取Class对象的方式有哪些&#xff1f;1. Class clazz Class.forName(全限定类名);2. 类名.c…

pthread_cond_wait()函数的详解

http://hi.baidu.com/tjuer/item/253cc6d66b921317d90e4483 了解 pthread_cond_wait() 的作用非常重要 -- 它是 POSIX 线程信号发送系统的核心&#xff0c;也是最难以理解的部分。 首先&#xff0c;让我们考虑以下情况&#xff1a;线程为查看已链接列表而锁定了互斥对象&#x…

CentOS7下python虚拟环境

搭建python虚拟环境 1.我们先创建一个隐藏目录 .virtualenvs&#xff0c;所有的虚拟环境都放在此目录下 &#xff1a;mkdir /root/.virtualenvs 2.安装虚拟环境 确认pip&#xff1a;whereis pip3 pip3 install virtualenv 安装virtualenvwrapper&#xff0c;为避免超时错误&…

WCDMA中的URA和LA/RA

1、关于URA的概念&#xff1a;URA&#xff08;UTRAN Registration Area&#xff09;是UTRAN内部区域的划分适用于UE处于RRC连接状态的情形&#xff0c;而且只能在UTRAN端使用&#xff08;比如由UTRAN发起的寻呼&#xff09;。一 个URA包含了一个或多个Cell&#xff0c;具体由决…

背景音乐的实现

通过利用Service来实现该功能将要播放的歌曲放入raw文件夹中[html] view plaincopy <strong>新建一个AudioService 类&#xff0c;<span style"font-family: Arial, Helvetica, sans-serif;">AudioService 类</span><span style"font-fami…

打牌软件可以控制吗_使用crm软件真的可以帮助企业省钱吗

使用crm软件真的可以帮助企业省钱吗大多数企业管理者认为&#xff1a;“客户关系系统有什么用?真的可以帮助企业发展吗?自己做一套excel版本不就行了”其实&#xff0c;不以为然&#xff0c;当我们去寻找用户时或者管理用户需要工作人员做一些繁琐的事情会极大的降低员工的工…

MS_SQL_获取字符串最后出现的字符串及位置

一&#xff0e;如&#xff1a;6.7.8.2.3.4.x得到最后一个.后面的字符串&#xff1a; declare str1 varchar(50) set str16.7.8.2.3.4.x select REVERSE(SUBSTRING(REVERSE(str1),1,CHARINDEX(.,REVERSE(str1))-1)) -------- string:x-- --------------------------------------…

redis(3)-redis基本类型

在redis安装目录下存在redis自带的客户端&#xff0c;启动即可使用。如果设置了密码&#xff0c;需要输入auth 123456进行验证。123456为密码。 redis的基本数据类型&#xff1a; 1.字符串类型(String)    redis 127.0.0.1:6379> SET mykey "redis" OK redis 1…

虚函数与虚继承寻踪

封装、继承、多态是面向对象语言的三大特性&#xff0c;熟悉C的人对此应该不会有太多异议。C语言提供的struct&#xff0c;顶多算得上对数据的简单封装&#xff0c;而C的引入把struct“升级”为class&#xff0c;使得面向对象的概念更加强大。继承机制解决了对象复用的问题&…

信息记录拉取失败_天猫入驻为什么失败?猫店侠做详细解读

天猫入驻为什么失败&#xff1f;这是很多商家都想要知道的一件事情&#xff0c;猫店侠想说其实这也很正常&#xff0c;只要不是一味盲目的入驻&#xff0c;就还有机会。首先失败商家要看看失败的反馈内容&#xff0c;看看是哪方面不达标&#xff0c;再着重进行补充&#xff0c;…

Linux查看目录挂载点

用命令 df 即可 # df /var/lib/ Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda3 135979984 66905292 62055896 52% /加上-kh更容易看些&#xff1a; # df /var/lib/ -kh Filesystem Size Used Avail Use% Mounted o…

Android:你好,androidX!再见,android.support

190325 补充&#xff1a;莫名问题的解决 181106 补充&#xff1a;修改未迁移成功的三方库 1、AndroidX简介 点击查看Android文档中对androidx的简介 按照官方文档说明 androidx 是对 android.support.xxx 包的整理后产物。由于之前的support包过于混乱&#xff0c;所以&#xf…

设计模式:简单工厂、工厂方法、抽象工厂之小结与区别

简单工厂&#xff0c;工厂方法&#xff0c;抽象工厂都属于设计模式中的创建型模式。其主要功能都是帮助我们把对象的实例化部分抽取了出来&#xff0c;优化了系统的架构&#xff0c;并且增强了系统的扩展性。 本文是本人对这三种模式学习后的一个小结以及对他们之间的区别的理解…

云计算和大数据时代网络技术揭秘(八)数据中心存储FCoE

数据中心存储演化——FCoE数据中心三大基础&#xff1a;主机 网络 存储在云计算推动下&#xff0c;存储基础架构在发生演变传统存储结构DAS、SAN在发展中遇到了布线复杂、能耗增多的缺点&#xff08;原生性&#xff09;&#xff0c;需要对架构做根本的改变。FCoE是业界无可争议…