java初探(1)之秒杀的安全】的更多相关文章

前言 终于,java初探系列的学习,要告一阶段了,java初探系列在我的计划中是从头学java中的第一个阶段,知识主要涉及java的基础知识,所以在笔记上实在花了不少的功夫.虽然是在第一阶段上面花费了大量的时间,但切实将这些知识学习到了,而不再是囫囵吞枣似的,似懂非懂.接下来我会根据个人的学习体会,将这个阶段的知识大致从新整理一下,给大家提供参考,也当是自己对这个阶段的总结,准备投入到下一个阶段你的学习了. 先后顺序将以适合学习的顺序归纳总结. 初学java时应当了解到的一些基本知识 [知识向]…
前言 在我们的日常开发过程中,我们会经常性的使用到数字类型的数据,同时,也会有众多的对数字处理的需求,针对这个方面的问题,在JAVA语言中.提供解决方法的类就是数字处理类 java中的数字处理类包括: DecimalFormat类,用于格式化数字 Math类,为各种数学计算提供了工具方法 Random类,为java处理随机数问题提供了各种方法 BigInteger类与BigDecimal类,为java处理大数字提供了相应的数学运算操作方法. DecimalFormat类 数字的格式化在解决实际问…
在开始总结之前,先记录一个刚看到的博客,编程规约.该博客记录了一些java开发上的规范,可以在编码的时候引入这些规范. 无论流行框架一直怎么改变,web开发中的三层架构一直属于理论的基础存在. 表现层 -> 业务层 -> 持久层 箭头所指的方向就是层之间调用的方向,在SSM框架中,利用springmvc来实现表现层,利用spring来实现业务层,用mybatis来实现持久层. 简单来说,一个web网站的开发,首先明确需求以后,要先设计与需求有关的各种数据表,针对秒杀案例,用户登录网站,查看秒杀…
在秒杀的场景中还存在着很多的安全问题 暴露秒杀地址 秒杀请求可以很频繁 接口流量大,恶意刷接口 隐藏秒杀接口 为什么需要隐藏,事实上,页面上的所有东西都能被客户端拿到,包括js代码,因此,分析商品详情页面就可以知道秒杀的地址所在,如果提前知道秒杀地址,就可以使用提前设置一些代码去刷这个请求接口,造成安全问题.因此需要在点击秒杀按钮的那一刻才知道秒杀地址.这样就没办法提前准备. 因此,在秒杀按钮上,绑定获取秒杀接口的方法,然后通过ajax请求,请求服务器返回一个随机的秒杀地址. function…
rabbitMQ 消息队列,通过一定的通信协议,生产者和消费者在应用程序内传递通信. 主要的作用,提高负载,减耦合. 场景描述:当点击秒杀按钮的那个时刻,有很高的并发量,客户端发出请求之后,会判断库存,如果库存大于0,就判断是否已经下单,如果没有下单,就执行秒杀逻辑,对于秒杀逻辑,分两个步骤,一是减库存,二是创建订单. 以上就是不使用rabbitMQ的场景描述. 利用消息队列,我们可以在执行秒杀逻辑之前,将用户和待秒杀的商品进行入队(rabbitMQ的生产者类),然后将秒杀逻辑放在出队上(rab…
前言 秒杀的业务场景广泛存在于电商当中,即有一个倒计时的时间限制,当倒计时为0时,秒杀开始,秒杀之后持续很小的一段时间,而且秒杀的商品很少,因此会有大量的顾客进行购买,会产生很大的并发量,从而创造技术难点 本章将编写一个不涉及并发操作的秒杀逻辑实现,包括商品页面,详情页面,以及订单页面. 首先,当用户登录之后,跳转到商品页面,罗列了所有可以秒杀的商品. @Autowired private GoodsService goodsService; @RequestMapping("/to_list&…
最近碰见一个java中一个native关键字,不知道是干什么的,如下: public native String FileName(String strURL);     static{         System.loadLibrary("fill-jni");     } 上网查了下,在众多的参考资料中,下面这个链接写的还是蛮不错的: http://blog.csdn.net/xw13106209/article/details/6989415 以下为转载,其中部分有备注(红色字…
登录总结 前几章总结了登录各个步骤中遇到的问题,现在完成的做一个登录的案例,其难点不在于实现功能,而在于抽象各种功能模块,提高复用性,较低耦合度. 前端页面: 对于前端页面来说,不是后端程序员要考虑的事,但为了有备无患,需要了解一些基本的东西,即看的懂即可,原则是,可以不去管css的样式,但js代码还是要多了解. 比如,对于登录页面来说,一般是不会使用表单直接提交,因为有大量的验证工作,因此,需要使用ajax请求技术来完成登录的请求.在请求之前,势必要先对表单上输入的一些内容进行验证,比如,输入…
import java.io.*; import java.util.Arrays; public class WriteText { public static void main(String[] args) throws Exception { FileReader fr=new FileReader("./part-00001"); BufferedReader br=new BufferedReader(fr); String[] info = null; String li…
正则表达式通常用于判断语句之中,用来检测一段字符串是否满足某一个格式.在日常生活中被广泛的用于各种用户输入信息的检测上. 而正则表达式实际上是一些具有特殊意义的字符序列.通过这些特殊字符构成的特殊序列,可以形成各种检测字符串的条件. 其中需要注意到的是:"."代表了任意字符,那么想要表示"."符号,就需要使用转义符\.; 另外需要注意到的一点就是,我们可以通过[]来代表一个元字符.如5[abcd],那么可以和它匹配的就是5a,5b,5c,5d.或是[1-9]代表了1…