Java项目:校园二手市场系统(java+SSM+mysql+maven+tomcat)
源码获取:博客首页 "资源" 里下载!
一、项目简述( +IW文档)
功能:本系统分用户前台和管理员后台。 本系统用例模型有三种,分别是游客、注册用户和系统管 理员。下面分别对这三个角色的功能进行描述: 1) 诞 游客是未注册的用户,他们可以浏览物物品,可以搜索物 品,如需购买物品,必须先注册成为网站用户。游客主要 功触吓: a.浏览物品 b.搜索物品 c.注册成为网站用户 2) 注册用户 注册用户是经过网站合法认证的用户,登录网站后可以浏 览物品、搜索物品、发布物品、关注物品、购买物品和查 看个人中心。 3) 系统管理员 系统管理员主要负责系统的后台管理工作,主要功能如 下: 用户管理,商品管理等等。
二、项目运行
环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe ( IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)
项目技术: JSP +Spring + SpringMVC + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等。
管理员控制层:
@Controller
@RequestMapping(value = "admin")
public class AdminController {private final UserService userService;private final GoodService goodService;private final TypeService typeService;private final OrderService orderService;@Autowiredpublic AdminController(UserService userService, GoodService goodService, TypeService typeService, OrderService orderService) {this.userService = userService;this.goodService = goodService;this.typeService = typeService;this.orderService = orderService;}@RequestMapping(value = "/adminLogin", method = RequestMethod.GET)public String getAdminLogin(){return "admin/adminLogin";}@RequestMapping(value = "/adminLogin", method = RequestMethod.POST)public String postAdminLogin(ModelMap model,@RequestParam(value = "email", required = false) String email,@RequestParam(value = "password", required = false) String password,HttpSession session) {User admin = userService.getUserByEmail(email);String message;if (admin != null){String mdsPass = DigestUtils.md5DigestAsHex((password + admin.getCode()).getBytes());
// if (!mdsPass .equals(admin.getPassword())){
// message = "用户密码错误!";
// }if (!password .equals(admin.getPassword())){message = "用户密码错误!";} else if (admin.getRoleId() != 101){message = "用户没有权限访问!";} else {session.setAttribute("admin",admin);return "redirect:/admin/adminPage";}} else {message = "用户不存在!";}model.addAttribute("message", message);return "admin/adminLogin";}@RequestMapping(value = "/adminLogout", method = RequestMethod.GET)public String adminLogout(@RequestParam(required = false, defaultValue = "false" )String adminLogout, HttpSession session){if (adminLogout.equals("true")){session.removeAttribute("admin");}
// adminLogout = "false";return "redirect:/";}@RequestMapping(value = "/adminPage", method = RequestMethod.GET)public String getAdminPage(ModelMap model,HttpSession session){User admin = (User) session.getAttribute("admin");if (admin == null){return "redirect:/admin/adminLogin";}List<Good> goodList = goodService.getAllGoodList();for (Good good : goodList) {good.setGoodUser(userService.getUserById(good.getUserId()));good.setGoodSecondType(typeService.getSecondTypeById(good.getSecondTypeId()));}List<User> userList = userService.getAllUser();List<FirstType> firstTypeList = typeService.getAllFirstType();List<Order> orderList = orderService.getOrderList();model.addAttribute("goodList", goodList);model.addAttribute("userList", userList);model.addAttribute("firstTypeList", firstTypeList);model.addAttribute("orderList", orderList);return "admin/adminPage";}@RequestMapping(value = "/user/update/status/{statusId}&{userId}", method = RequestMethod.GET)public ResponseEntity updateUserStatus(@PathVariable Integer statusId,@PathVariable Integer userId){Boolean success = userService.updateUserStatus(statusId, userId);if (success){List<User> userList = userService.getAllUser();return ResponseEntity.ok(userList);}return ResponseEntity.ok(success);}@RequestMapping(value = "/user/delete/{userId}", method = RequestMethod.GET)public ResponseEntity deleteUser(@PathVariable Integer userId){Boolean success = userService.deleteUser(userId);if (success){List<User> userList = userService.getAllUser();return ResponseEntity.ok(userList);}return ResponseEntity.ok(success);}}
商品控制层:
@Controller
public class GoodController {private final GoodService goodService;private final TypeService typeService;private final ReviewService reviewService;private final UserService userService;private final ImageService imageService;private final CollectService collectService;private static String message = "";@Autowiredpublic GoodController(GoodService goodService, TypeService typeService,ReviewService reviewService, UserService userService,ImageService imageService, CollectService collectService) {this.goodService = goodService;this.typeService = typeService;this.reviewService = reviewService;this.userService = userService;this.imageService = imageService;this.collectService = collectService;}@RequestMapping(value = "/", method = RequestMethod.GET)public String getHomeGoods(ModelMap model,@RequestParam(required = false, defaultValue = "") String searchText,@RequestParam(required = false) Integer secondTypeId,@RequestParam(required = false, defaultValue = "0") int offset,@RequestParam(required = false, defaultValue = "40") int limit) {List<Good> goods = goodService.getGoodsBySearchAndType(searchText,secondTypeId, offset, limit);double goodsNum = goodService.getGoodsBySearchAndTypeCount(searchText,secondTypeId);List<FirstType> firstTypes = typeService.getAllFirstType();for (FirstType firstType : firstTypes) {firstType.setSecondType(typeService.getSecondTypeByFirstTypeId(firstType.getId()));}model.addAttribute("firstTypes", firstTypes);model.addAttribute("goods", goods);model.addAttribute("pages", Math.ceil(goodsNum / limit));model.addAttribute("goodsNum", goodsNum);model.addAttribute("offset", offset);model.addAttribute("limit", limit);return "home/homeGoods";}@RequestMapping(value = "/goods/goodInfo", method = RequestMethod.GET)public String getGoodInfo(ModelMap model, HttpSession httpSession,@RequestParam(required = false) Integer goodId) {Good goodInfo = goodService.getGoodById(goodId);if (goodInfo == null) {return "goods/error";}Integer collect = 1;User user = (User) httpSession.getAttribute("user");if (user == null) {collect = 0;} else {if (collectService.getCollect(goodId, user.getId())) {collect = 2;}}List<Image> images = imageService.getImageByGoodId(goodId);User goodUser = userService.getUserById(goodInfo.getUserId());goodInfo.setGoodUser(userService.getUserById(goodInfo.getUserId()));goodInfo.setGoodSecondType(typeService.getSecondTypeById(goodInfo.getSecondTypeId()));List<Review> reviews = reviewService.gerReviewByGoodId(goodId);for (Review review : reviews) {review.setReplys(reviewService.gerReplyByReviewId(review.getId()));}List<Good> goods = goodService.getRECGoods(goodInfo.getSecondTypeId(),goodInfo.getId());model.addAttribute("message", message);model.addAttribute("reviews", reviews);model.addAttribute("goodInfo", goodInfo);model.addAttribute("images", images);model.addAttribute("goodUser", goodUser);model.addAttribute("goods", goods);model.addAttribute("collect", collect);message = "";return "goods/goodInfo";}@RequestMapping(value = "/goods/goodInfo", method = RequestMethod.POST)public String putReview(@RequestParam(value = "goodId", required = false) Integer goodId,@RequestParam(value = "reviewId", required = false) Integer reviewId,@RequestParam(value = "fromUserId", required = false) Integer fromUserId,@RequestParam(value = "toUserId", required = false) Integer toUserId,@RequestParam(value = "fromUser", required = false) String fromUser,@RequestParam(value = "toUser", required = false) String toUser,@RequestParam(value = "replyText", required = false, defaultValue = "") String replyText,@RequestParam(value = "reviewText", required = false, defaultValue = "") String reviewText) {if (reviewText.equals("")) {if (replyText.equals("")) {message = "内容不能为空!";return "redirect:/goods/goodInfo?goodId=" + goodId;} else {Reply reply = new Reply();reply.setReviewId(reviewId);reply.setFromUser(fromUser);reply.setFromUserId(fromUserId);reply.setToUser(toUser);reply.setToUserId(toUserId);reply.setText(replyText);if (reviewService.insertReply(reply) == 1) {message = "回复成功!";return "redirect:/goods/goodInfo?goodId=" + goodId;} else {message = "回复失败!";return "redirect:/goods/goodInfo?goodId=" + goodId;}}} else {Review review = new Review();review.setGoodId(goodId);review.setFromUser(fromUser);review.setFromUserId(fromUserId);review.setToUserId(toUserId);review.setText(reviewText);if (reviewService.insertReview(review) == 1) {message = "评论成功!";return "redirect:/goods/goodInfo?goodId=" + goodId;} else {message = "评论失败!";return "redirect:/goods/goodInfo?goodId=" + goodId;}}}@RequestMapping(value = "/goods/publishGood", method = RequestMethod.GET)public String getPublishGood(ModelMap model, HttpSession session) {User user = (User) session.getAttribute("user");if (user == null) {return "redirect:/";}Good good = new Good();List<FirstType> firstTypes = typeService.getAllFirstType();List<Good> goods = goodService.getAllGoods(0, 5);model.addAttribute("goods", goods);model.addAttribute("good", good);model.addAttribute("firstTypes", firstTypes);return "goods/publishGood";}@RequestMapping(value = "/goods/publishGood", method = RequestMethod.POST)public String getGoodId(ModelMap model, HttpSession session,@Valid Good good) {List<FirstType> firstTypes = typeService.getAllFirstType();User user = (User) session.getAttribute("user");List<Good> goods = goodService.getAllGoods(0, 5);good.setUserId(user.getId());good.setPhotoUrl("/statics/image/goods/default/nophoto.png");if (goodService.insertGood(good) != 1) {System.out.println("插入物品失败!");}model.addAttribute("goods", goods);model.addAttribute("good", good);model.addAttribute("firstTypes", firstTypes);return "goods/publishGood";}@RequestMapping(value = "/goods/publishGood/uploadImage", method = RequestMethod.POST)public String uploadImage(HttpSession session,@RequestParam(value = "goodId", required = false) Integer goodId,@RequestParam(value = "mainFile", required = false) MultipartFile mainFile,@RequestParam(value = "file", required = false) MultipartFile[] file)throws IOException {User user = (User) session.getAttribute("user");FileCheck fileCheck = new FileCheck();RandomString randomString = new RandomString();String filePath = "/statics/image/goods/" + user.getId() + "/" + goodId;String pathRoot = fileCheck.checkGoodFolderExist(filePath);String name;if (!mainFile.isEmpty()) {String fileName = goodId + randomString.getRandomString(10);String contentType = mainFile.getContentType();String imageName = contentType.substring(contentType.indexOf("/") + 1);name = fileName + "." + imageName;mainFile.transferTo(new File(pathRoot + name));String photoUrl = filePath + "/" + name;goodService.updateGoodPhotoUrl(photoUrl, goodId);}for (MultipartFile mf : file) {if (!mf.isEmpty()) {// 生成uuid作为文件名称String fileName = goodId + randomString.getRandomString(10);// 获得文件类型(可以判断如果不是图片,禁止上传)String contentType = mf.getContentType();// 获得文件后缀名称String imageName = contentType.substring(contentType.indexOf("/") + 1);name = fileName + "." + imageName;System.out.println("name:" + name);mf.transferTo(new File(pathRoot + name));Image image = new Image();image.setGoodId(goodId);image.setName(name);image.setUrl(filePath + "/" + name);imageService.insertImage(image);} else {System.out.println("文件为空!");}}return "redirect:/goods/goodInfo?goodId=" + goodId;}@RequestMapping(value = "/goods/userGoods", method = RequestMethod.GET)public String getUserGoods(ModelMap model,@RequestParam(value = "userId", required = false) Integer userId) {User user = userService.getUserById(userId);List<Good> userGoods = goodService.getGoodStatusByUserId(userId);List<Good> goods = goodService.getAllGoods(0, 4);model.addAttribute("user", user);model.addAttribute("userGoods", userGoods);model.addAttribute("goods", goods);return "goods/userGood";}@RequestMapping(value = "/goods/userGoodEdit", method = RequestMethod.GET)public String getUserGoodEdit(ModelMap model,@RequestParam(value = "goodId", required = false) Integer goodId,HttpSession session) {User user = (User) session.getAttribute("user");if (user == null) {return "redirect:/";}Good good = goodService.getGoodById(goodId);List<FirstType> firstTypes = typeService.getAllFirstType();List<Good> goods = goodService.getAllGoods(0, 5);List<Image> goodImages = imageService.getImageByGoodId(goodId);model.addAttribute("goods", goods);model.addAttribute("good", good);model.addAttribute("goodImages", goodImages);model.addAttribute("firstTypes", firstTypes);return "goods/userGoodEdit";}@RequestMapping(value = "/goods/userGoodEdit", method = RequestMethod.POST)public String postGoodEdit(ModelMap model, HttpSession session,@Valid Good good) {List<FirstType> firstTypes = typeService.getAllFirstType();User user = (User) session.getAttribute("user");if (user == null) {return "redirect:/";}List<Good> goods = goodService.getAllGoods(0, 5);if (!(goodService.updateGood(good) > 0)) {System.out.println("修改物品失败!");}List<Image> goodImages = imageService.getImageByGoodId(good.getId());model.addAttribute("goods", goods);model.addAttribute("good", good);model.addAttribute("goodImages", goodImages);model.addAttribute("firstTypes", firstTypes);return "goods/userGoodEdit";}@RequestMapping(value = "/goods/userGoodEdit/updateImage", method = RequestMethod.POST)public String updateImage(HttpSession session,@RequestParam(value = "goodId", required = false) Integer goodId,@RequestParam(value = "mainFile", required = false) MultipartFile mainFile,@RequestParam(value = "file", required = false) MultipartFile[] file)throws IOException {User user = (User) session.getAttribute("user");FileCheck fileCheck = new FileCheck();imageService.deleteImage(goodId);RandomString randomString = new RandomString();String filePath = "/statics/image/goods/" + user.getId() + "/" + goodId;String pathRoot = fileCheck.checkGoodFolderExist(filePath);String name;if (!mainFile.isEmpty()) {String contentType = mainFile.getContentType();String fileName = goodId + randomString.getRandomString(10);String imageName = contentType.substring(contentType.indexOf("/") + 1);name = fileName + "." + imageName;mainFile.transferTo(new File(pathRoot + name));String photoUrl = filePath + "/" + name;goodService.updateGoodPhotoUrl(photoUrl, goodId);}for (MultipartFile mf : file) {if (!mf.isEmpty()) {String contentType = mf.getContentType();String fileName = goodId + randomString.getRandomString(10);String imageName = contentType.substring(contentType.indexOf("/") + 1);name = fileName + "." + imageName;System.out.println("name:" + name);mf.transferTo(new File(pathRoot + name));Image image = new Image();image.setGoodId(goodId);image.setName(name);image.setUrl(filePath + "/" + name);imageService.insertImage(image);}}return "redirect:/goods/goodInfo?goodId=" + goodId;}@RequestMapping(value = "/goods/userGoodEdit/delete/{goodId}", method = RequestMethod.GET)public ResponseEntity deleteGood(@PathVariable Integer goodId) {Boolean success;success = goodService.deleteGood(goodId) > 0;return ResponseEntity.ok(success);}@RequestMapping(value = "/goods/userGoodEdit/updateGoodStatus/{goodId}", method = RequestMethod.GET)public ResponseEntity updateGoodStatus(@PathVariable Integer goodId) {Boolean success;success = goodService.updateGoodStatusId(0, goodId) > 0;return ResponseEntity.ok(success);}@RequestMapping(value = "/admin/goods/allGoods", method = RequestMethod.GET)public ResponseEntity adminGetAllGoods() {List<Good> goodList = goodService.getAllGoodList();for (Good good : goodList) {good.setGoodUser(userService.getUserById(good.getUserId()));good.setGoodSecondType(typeService.getSecondTypeById(good.getSecondTypeId()));}return ResponseEntity.ok(goodList);}
}
订单控制层:
@Controller
public class OrderController {private final GoodService goodService;private final OrderService orderService;@Autowiredpublic OrderController(GoodService goodService, OrderService orderService) {this.goodService = goodService;this.orderService = orderService;}@RequestMapping(value = "/user/orderInfo", method = RequestMethod.GET)public String getOrderInfo(ModelMap model,@RequestParam(value = "orderId", required = false) Integer orderId,HttpSession session) {User sessionUser = (User) session.getAttribute("user");if (sessionUser == null) {return "redirect:/";}Order orderInfo = orderService.getOrderById(orderId);List<Order> orders = orderService.getOtherOrderByCustomerId(sessionUser.getId(), orderId);model.addAttribute("orderInfo", orderInfo);model.addAttribute("orders", orders);return "user/orderInfo";}@RequestMapping(value = "/user/sellerInfo", method = RequestMethod.GET)public String getSellerInfo(ModelMap model,@RequestParam(value = "orderId", required = false) Integer orderId,HttpSession session) {User sessionUser = (User) session.getAttribute("user");if (sessionUser == null) {return "redirect:/";}Order orderInfo = orderService.getOrderById(orderId);List<Order> orders = orderService.getOtherOrderBySellerId(sessionUser.getId(), orderId);model.addAttribute("orderInfo", orderInfo);model.addAttribute("orders", orders);System.out.println("sellerInfo.size:" + orders.size());return "user/sellerInfo";}@RequestMapping(value = "/user/order/delete/{orderId}", method = RequestMethod.GET)public ResponseEntity deleteOrderById(@PathVariable Integer orderId) {Boolean success;success = orderService.deleteOrderById(orderId) > 0;return ResponseEntity.ok(success);}@RequestMapping(value = "/user/sellerOrder/delete/{orderId}&{goodId}", method = RequestMethod.GET)public ResponseEntity deleteSellerOrderById(@PathVariable Integer orderId,@PathVariable Integer goodId) {Boolean success;success = goodService.updateGoodStatusId(1, goodId) > 0;if (success) {success = orderService.deleteOrderById(orderId) > 0;}return ResponseEntity.ok(success);}@RequestMapping(value = "/user/order/update/status/{orderId}&{statusId}", method = RequestMethod.GET)public ResponseEntity updateOrderStatus(@PathVariable Integer orderId,@PathVariable Integer statusId) {Boolean success = orderService.updateStatus(statusId, orderId) > 0;if (success) {Order order = orderService.getOrderById(orderId);return ResponseEntity.ok(order);}return ResponseEntity.ok(success);}@RequestMapping(value = "/user/order/create", method = RequestMethod.POST)public ResponseEntity createOrder(@RequestBody Order order) {Boolean success = orderService.insertOrder(order) > 0;if (success) {success = goodService.updateGoodStatusId(0, order.getGoodId()) > 0;if (success) {return ResponseEntity.ok(order.getId());} else {orderService.deleteOrderById(order.getId());return ResponseEntity.ok(success);}}return ResponseEntity.ok(success);}@RequestMapping(value = "/user/order/allOrder", method = RequestMethod.GET)public ResponseEntity getAllOrders() {List<Order> orderList = orderService.getOrderList();return ResponseEntity.ok(orderList);}
}
源码获取:博客首页 "资源" 里下载!
相关文章:

php中$_REQUEST、$_POST、$_GET的区别和联系小结
php中$_REQUEST、$_POST、$_GET的区别和联系小结 作者: 字体:[增加 减小] 类型:转载php中有$_request与$_post、$_get用于接受表单数据,当时他们有何种区别,什么时候用那种最好。1. $_REQUEST php中$_REQUEST可以获取以…

uva 315 (poj 1144 求割点)
题意:给你一张无向图,求割点的个数。 思路:输入稍微处理一下接着直接套模版。 1 #include <iostream>2 #include <cstdio>3 #include <cstring>4 #include <cstdlib>5 #include <cmath>6 #include <algorit…

SQL学习之计算字段的用法与解析
一、计算字段 1、存储在数据库表中的数据一般不是应用程序所需要的格式。大多数情况下,数据表中的数据都需要进行二次处理。下面举几个例子。 (1)、我们需要一个字段同时显示公司名和公司地址,但这两个信息存储在不同表的列中。 (2)、省份、城市、邮政编码存储在不同…

手把手教你 用C++实现一个 可持久化 的http_server
前言 本文介绍一个有趣的 通过C实现的 持久化的http_server demo,这样我们通过http通信之后的数据可以持久化存储,即使server挂了,数据也不会丢失。我们的http_sever 也就能够真正得作为一个后端server了。 本身持久化这个能力是数据库提供…

【SVN多用户开发】代码冲突解决办法
SVN是一款集中式的代码存储工具,可以帮助多个用户协同开发同一应用程序。 但是SVN不能完全代替人工操作,有时也需要程序员自己进行沟通确认有效的代码。 下面就简单的看一下,常见的代码冲突以及解决方法。 总结起来,无非是&#x…

Java项目:在线宠物商店系统(java+SSM+mysql+maven+tomcat)
源码获取:博客首页 "资源" 里下载! 一、项目简述 功能:本系统分用户前台和管理员后台。 系统包括用户的注册登录,狗狗的展示购物车添加以及下 单支付购买,后台有管理员用户,可以操作狗狗的品种&…

字符串中的数字排序
2019独角兽企业重金招聘Python工程师标准>>> public static String getBusiScope(String busiScope){ String regex "\\d{1,2}"; String busiStr""; Pattern pattern Pattern.compile(regex); Matcher matcher pattern.matcher(busiScope…

oo第二单元总结
第二单元总结 第一次作业 一、设计策略 本次作业采用FAFS算法,可直接用输入线程与电梯线程交互,调度器暂时不需要参与,故一共设计三个类三线程:Main类、elevator类及input类,main线程、elevator线程及input线程。main线…

Rocksdb iterator 的 Forward-scan 和 Reverse-scan 的性能差异
前言 最近在读 MyRocks 存储引擎2020年的论文,因为这个存储引擎是在Rocksdb之上进行封装的,并且作为Facebook 内部MySQL的底层引擎,用来解决Innodb的空间利用率低下 和 压缩效率低下的问题。而且MyRocks 在接入他们UDB 之后成功达成了他们的…

Java知多少(29)覆盖和重载
在类继承中,子类可以修改从父类继承来的方法,也就是说子类能创建一个与父类方法有不同功能的方法,但具有相同的名称、返回值类型、参数列表。如果在新类中定义一个方法,其名称、返回值类型和参数列表正好与父类中的相同࿰…

Java项目:清新论坛系统(java+SSM+mysql+maven+tomcat)
源码获取:博客首页 "资源" 里下载! 一、项目简述 功能:本系统分用户前台和管理员后台。 用户前台主要功能有: 用户注册 用户登录 浏览帖子 回复帖子 修改个人资料 管理员后台的功能有: 管理论坛版块 用户管…

JUnit4.11 理论机制 @Theory 完整解读
最近在研究JUnit4,大部分基础技术都是通过百度和JUnit的官方wiki学习的,目前最新的发布版本是4.11,结合代码实践,发现官方wiki的内容或多或少没有更新,Theory理论机制章节情况尤为严重,不知道这章wiki对应的…

树链剖分——线段树区间合并bzoj染色
线段树区间合并就挺麻烦了,再套个树链就更加鬼畜,不过除了代码量大就没什么其他的了。。 一些细节:线段树每个结点用结构体保存,pushup等合并函数改成返回一个结构体,这样好写一些 struct Seg{int lc,rc,tot;Seg(){lcr…

MyRocks: 为facebool 的社交图谱服务的LSM-tree存储引擎
文章目录概览1. UDB 架构2. UDB 表格式3. Rocksdb:针对flash存储优化过的第三方库3.1 Rocksdb架构3.2 为什么选择Rocksdb4. MyRocks / Rocksdb 开发历程4.1 设计目标4.2 性能挑战4.2.1 降低CPU的消耗4.2.2 降低range-scan 的延时消耗4.2.3 磁盘空间和Compaction 的一…

Java项目:精品酒店管理系统(java+SSM+mysql+maven+tomcat)
源码获取:博客首页 "资源" 里下载! 一、项目简述 功能:主要功能主要功能会员管理,住客管理,房间管 理,系统管理,以及一些重要数据的展示导出维护等等; 二、项目运行 环境配置&…

iOS自动布局一
Align: Pin: 转载于:https://www.cnblogs.com/123qw/p/4404167.html

C#实现路由器断开连接,更改公网ip
publicstaticvoidDisconnect(){stringurl "断 线"; stringuri "http://192.168.1.1/userRpm/StatusRpm.htm?Disconnect"System.Web.HttpUtility.UrlEncode(url, System.Text.Encoding.GetEncoding("gb2312")) "&wan1"; str…

Go中的iota
当时在学习Iota这个知识点的时候仅仅是一笔掠过,比如这种 const(aiotab c) 一眼看出他怎么使用的时候就觉得自己已经懂得了 再到后来看到这样的例子 const(a 5*iotab c )以及 const(a 1<<(10*iota)bc ) 第一…

从 SSLTLS 的底层实现来看 网络安全的庞大复杂体系
文章目录前言1. HTTP协议通信的问题1.1 tcpdump 抓取http 请求包1.2 报文分析1.3 HTTP 协议问题2. SSL & TLS 协议的基本介绍和历史演进3. TLS 1.2 实现加密传输的过程3.1 TLS HandShake 协议概览3.2 第一次握手:ClientHello3.3 第二次握手:从Server…

UICollectionView
UICollectionView 多列的UITableView,最简单的形式,类似于iBooks中书架的布局,书架中放着你下载的和购买的电子书。 最简单的UICollectionView是一个GridView,可以多列的方式进行展示。 包含三部分,都是UIView的子类: …

Java项目:课程资源管理+在线考试平台(java+SSH+mysql+maven+tomcat)
源码获取:博客首页 "资源" 里下载! 一、项目简述 功能包括: 管理员可以增删改查教材、教材商、入库教材、用户(用 户包括学生和教师)可以对教材商、教材进行。xcel的导入 导出操作。教师可以领取入库的教材,可以退还教…

python twisted 笔记
2019独角兽企业重金招聘Python工程师标准>>> 1.Twisted框架构建简单的C/S 要写一个基于twisted框架的服务器,你要实现事件处理器,它处理诸如一个新的客户端连接、新的数据到达和客户端连接中断等情况。 在Twisted中,你的事件处理器定义在一个…

决策树J48算法
1. J48原理 2. 举例 3. 总结 1. J48原理 基于从上到下的策略,递归的分治策略,选择某个属性放置在根节点,为每个可能的属性值产生一个分支,将实例分成多个子集,每个子集对应一个根节点的分支,然后在每个分支…

分布式系统 一致性模型的介绍 以及 zookeeper的 “线性一致性“ 讨论
文章目录1. 一致性 概览1.1 分布式系统的 “正确性”1.2 线性一致性(Linearizability)1.3 顺序一致性(Sequential consistency)1.4 因果一致性(Casual consistency)1.5 最终一致性(Eventual consistency)2. Zookeeper 的 “线性一致性” 问题3. 参考一致性算是分布式系统的定位…

Java项目:(小程序)全套商城系统(spring+spring mvc+mybatis+layui+微信小程)
源码获取:博客首页 "资源" 里下载! 一、项目简述 本系统功能包括: 商品模块: 商品添加、规格设置,商品上下架等 订单模块: 下单、购物车、支付,发货、收货、评 退款等 营销模块: 积分、优惠券、分销、砍价、拼团、秒 多…

【转】[退役]纪念我的ACM——headacher@XDU
转自:http://hi.baidu.com/headacher/item/5a2ce1d50609091b20e25022 退役了,是时候总结一下我ACM的生涯了。虽然很舍不得,但这段回忆很值得纪念。ACM生涯虽然结束,但是新生活总要继续,还有很多东西需要我去学习&#…

VMware扩大硬盘后修改Linux逻辑卷大小
一、背景随着业务的不断成熟,数据库积累的数据也越来越多了。前些天发现服务器的磁盘将要满了。因此向虚拟化管理员申请增加磁盘空间。由于这个系统是建立在威睿的vSphere平台上的,因此虚拟化管理员只简单地通过 VMware vSphere Client 扩大了磁盘空间&a…

axios与ajax区别
1.jQuery ajax $.ajax({ type: POST, url: url, data: data, dataType: dataType, success: function () {}, error: function () {}});优缺点: 本身是针对MVC的编程,不符合现在前端MVVM的浪潮基于原生的XHR开发,XHR本身的架构不清晰,已经有…

单机 “5千万以上“ 工业级 LRU cache 实现
文章目录前言工业级 LRU Cache1. 基本架构2. 基本操作2.1 insert 操作2.2 高并发下 insert 的一致性/性能 保证2.3 Lookup操作2.4 shard 对 cache Lookup 性能的影响2.4 Erase 操作2.5 内存维护3. 优化前言 近期做了很多 Cache 优化相关的事情,因为对存储引擎较为熟…

Java项目:校园人力人事资源管理系统(java+Springboot+ssm+mysql+jsp+maven)
源码获取:博客首页 "资源" 里下载! 校园人力资源管理系统:学校部门管理,教室管理,学历信息管理,职务,教师职称,奖励,学历,社会关系,工作…