JavaWeb高性能开发(一)
今日要闻:
淘宝删差评产业链
在你给出“差评”“中评”后不久,有人会偷偷登录你的淘宝账户,把你之前给过的评价删除或改成“好评”。而这种人就是“职业修改差评师”
案发前,李骏杰在杭州市滨江区一家科技公司上班。5 人当中,他主要负责通过 QQ 在网上联系需要修改“中评”和“差评”的淘宝卖家,改一个评价收费 260 元。
李骏杰把这些信息传给他的下线,即在广东打工的黄福权、王凤昭,黄、王二人再把信息反馈给在江西某市公安系统工作的胡榕,由他利用自己的职务便利查明买家的身份证信息,之后把信息以每条 15 元至 25 元不等的价格卖给黄、王二人。
收到胡榕给的买家身份证信息后,黄、王二人以每条 15 元的价格让河北石家庄人董伟“PS”出身份证复印件,再把复印件以每件 45 元的价格转卖给李骏杰。有了买家的身份证复印件,李骏杰就可以利用技术手段,冒充淘宝买家身份骗取该买家的淘宝账号并重置密码,最后非法登录淘宝评价系统删除或修改“中评”“差评”。
“追求‘好评’固然好,但 100% 的‘好评’大多是不符合事实的。”一位“资深”淘宝用户对记者说,“即便是买家出于个人意愿给出‘差评’,卖家也会要求对方改成‘好评’,或以返利来诱惑,或用谩骂、威胁等卑劣手段。说到底,是淘宝卖家对买家‘差评’的过度在意催生了‘职业修改差评师’和‘恶意差评师’的存在。”这位淘宝用户总结分析说。
今日英文:
http://docs.oracle.com/cd/E11882_01/java.112/e16548/apxref.htm#JJDBC28913
Oracle jdbc 转义语法(SQL92):
关闭转义可以提高性能 stmt.setEscapeProcessing(false);
日期字面量 {d '1995-10-22'} 会自动转为数据库类型
时间字面量 {t '05:10:45'} 或 {t '14:20:50'} 自动转24小时制
或 {ts '1982-01-23 12:00:00'}
一般来说 Oracle类型oracle.sql.DATE会自动映射为java.sql.Timestamp 这是正确的,不要修改
设置mapDateToTimestamp=true 可以映射为java.sql.Date 但会有精度下降
特殊的,如果这个Date列恰好有个索引,要用特殊的setObject,无论setDate还是setTimestamp结果都不正确(略)
对’_’和’%’转义:
WHERE ename LIKE '&_%' {ESCAPE '&'} 表示以下划线开头的任意字串
WHERE ename LIKE '\\_%' {escape '\\'} 同上
Oracle不支持转义Outer Join写法,
如 FROM {OJ dept LEFT OUTER JOIN emp ON dept.deptno = emp.deptno
应写为 FROM emp b, dept a WHERE a.deptno = b.deptno(+)
调用存储过程 { call procedure_name (argument1, argument2,...) }
调用函数 { ? = call procedure_name (argument1, argument2,...) }
driver.processSqlEscapes("{ts '1998-10-22 16:22:34'}")
将输出 TO_TIMESTAMP ('1998-10-22 16:22:34', 'YYYY-MM-DD HH24:MI:SS.FF')
Oracle存储过程不支持Boolean类型的参数和返回值,通常要自己转为int或其他来判断
Oracle不支持java.sql.SQLWarning,应该用java.sql.SQLException
DDL语句应该用Statement执行,如果用preSta或callSta则只会在首次执行
SELECT name FROM emp WHERE id = :EmpId 命名参数可以用setXXXAtName
技术区:
JavaWeb高性能开发(一)
事实证明,与其消耗大量时间在服务器端,在前端进行的优化更易获得用户的肯定。
前端的高性能部分,主要是指减少请求数、减少传输的数据以及提高用户体验,在这个部分,图片的优化显得至关重要。
1.减少图片的大小,可以明显的提高性能,而对于已有图片,要想减少图片的大小,只能改变图片的格式,这里推荐的是 PNG8 的格式
2.CSS Sprites 是一个吸引人的技术,它其实就是把网页中一些背景图片整合到一张图片文件中,再利用 CSS 的“background-image”,“background- repeat”,“background-position”的组合进行背景定位,background-position 可以用数字能精确的定位出背景图片的位置。
很好地减少网页的 HTTP 请求,从而大大的提高了页面的性能
由于图像合并后基本信息不用重复,那么多张图片合并成 1 张图片的字节往往总是小于这些图片的字节总和。
只需对一张集合的图片上命名就可以了,不需要对每一个小元素进行命名,从而提高了网页的制作效率
只需要在一张或少张图片上修改图片的颜色或样式,整个网页的风格就可以改变
图片的请求数就被缩减到 1 个。其他的请求都可以用到本地缓存
3.有时候,图片数据太多,一些公司的解决方法是将图片数据分到多个域名的服务器上
一方面是将服务器的请求压力分到多个硬件服务器上
另一方面,是利用了浏览器的特性。一般来说,浏览器对于相同域名的图片,最多用 2-4 个线程并行下载。不同浏览器的并发下载数,都是不同的
多域名的下载固然很好,但是太多域名并不太好,一般在 2-3 个域名下载就差不多
4.要是图片的下载不用向服务器发出请求,而可以随着 HTML 的下载同时下载到本地那就太好了
而目前,浏览器已经支持了该特性,我们可以将图片数据编码成 BASE64 的字符串,使用该字符串代替图像地址
从现实我们接触的角度看,如一些在线 HTML 编辑器,里面的小图标,如笑脸等,都使用到了 BASE64 编码,因为它们非常小,数量多,BASE64 可以帮助网页减少图标的请求数,提高效率
5.压缩是一个不错的选择,而 HTTP 协议支持 GZIP 的压缩格式,服务器响应的报头包含 Content-Encoding: gzip
<Connector port ="80" maxHttpHeaderSize ="8192"
maxThreads ="150" minSpareThreads ="25" maxSpareThreads ="75"
enableLookups ="false" redirectPort ="8443" acceptCount ="100"
connectionTimeout ="20000" disableUploadTimeout ="true" URIEncoding ="utf-8"
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml" />
在高并发的情况,多个 Tomcat 服务器之前,需要采用反向代理的技术,提高并发度,而目前比较火的反向代理是 Nginx
gzip on;
gzip_min_length 1000;
gzip_buffers 4 8k;
gzip_types text/plain application/x-javascript text/css text/html application/xml;
6.预加载原理是在用户查看一张图片时,就将下一张图片先下载到本地
而懒加载则是在用户需要的时候再加载。当一个网页中可能同时有上百张图片,而大部分情况下,用户只看其中的一部分
Lazy Load Plugin for jQuery 是基于 JQuery 的懒加载组件
非技术:
如何把技术讲得通俗易懂:
1.先做市场分析。想明白以下问题:
- 你的受众是谁?
- 他们具备怎样的知识储备?
- 你要兜售的技术解决了他们的什么问题?(向老板解释技术问题也算一种兜售)
- 有没有现成的技术方案解决类似的问题?
- 如果没有现成的同类方案,为什么没有?是因为你对问题定义不清晰,还是不存在这种需求?
- 如果有现成的同类方案,那你兜售的技术和已有解决方案相比较,优缺点如何?
2.包装你的「产品」。可选的方法有很多,
比如假设你文学造诣不错,且你对受众的心理有相对精准的把握,大可以讲个漂亮的故事
文字功底一般,其实也不要紧,那咱就不讲故事,讲道理。把核心的概念按照合适的方式组织起来,用通俗易懂的语言去描述
3.分清主次。判断哪些部分是重要的,应当着重讲;哪些部分是次要的,时间有限或者为了减少复杂度可以忽略不讲
4.条理清晰、层次分明。能否从错综复杂的关系和概念网络中划清边界取决于你自己的抽象能力。
就好像写程序一样,有的人写一个方法/函数四五屏都不够用,而大牛的写法常常是分解为若干不相关的子方法/函数。
5.还得根据实际情况时不时抖个机灵、讲个笑话,把出窍的灵魂给捉回来
6.多用简单短句,少用复杂长句
7.多用比喻。我觉得,无论是否技术,这都能得到不错的效果。
JavaWeb高性能开发(一)的更多相关文章
- javaweb的开发模式
SUN公司推出JSP技术后,同时也推荐了两种web应用程序的开发模式,一种是JSP+JavaBean模式,一种是Servlet+JSP+JavaBean模式. 一.JSP+JavaBean开发模式 1 ...
- Java Web高性能开发(三)
今日要闻: Clarifai:可识别视频中物体 最近几年,得益于深度学习技术的发展,谷歌和Facebook等企业的研究人员在图形识别软件领域取得了重大突破.现在,一家名为Clarifai的创业公司则提 ...
- Java Web高性能开发(二)
今日要闻: 性价比是个骗局: 对某个产品学上三五天个把月,然后就要花最少的钱买最多最好的东西占最大的便宜. 感谢万能的互联网,他顺利得手,顺便享受了智商上的无上满足以及居高临下的优越感--你们一千块买 ...
- Java Web 高性能开发,第 3 部分: 网站优化实战
这个系列的前两篇,介绍了前端的优化技术,这些技术秉承了前人至高无上的智慧,我只是负责吸收和传播.然而,这些技术一般也都是某某大型网站的技术经验,我们大部分人或许只能接触到相对小规模的网站,小规模的网站 ...
- .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)——转载
原文链接:https://blog.walterlv.com/post/dotnet-high-performance-reflection-suggestions.html ***** 大家都说反射 ...
- JavaScript高性能开发的十条建议
JavaScript高性能开发的十条建议 文/开发部 Dimmacro 编者按:javascript开发大部分程序员都做过,写出来的代码质量也千差万别,现在浏览器内嵌的解释器虽然效率已经很高了,但在客 ...
- Java Web 高性能开发,前端的高性能
Java Web 高性能开发,第 2 部分: 前端的高性能 Web 发展的速度让许多人叹为观止,层出不穷的组件.技术,只需要合理的组合.恰当的设置,就可以让 Web 程序性能不断飞跃.Web 的思想是 ...
- 2017.11.6 JavaWeb-----第七章 JavaWeb常用开发模式与案例
JavaWeb-----第七章 JavaWeb常用开发模式与案例 (1)单纯的JSP页面开发模式 通过在JSP中的脚本标记,直接在JSP页面中实现各种功能.称为"单纯的JSP页面编程模式&q ...
- JavaWeb:前端开发基础
JavaWeb:前端开发基础 内联元素和块级元素 说明: 联元素和块级元素都是html中的范畴,块元素和内联元素的主要差异是块元素是从新的一行开始.而内联元素一般显示在一行上.但是可以通过css的di ...
随机推荐
- 数组工具类 - ArrayUtil.java
数组工具类,提供数组.对象之间转换的方法. 源码如下:(点击下载 - ArrayUtil.java .commons-lang-2.6.jar) import java.lang.reflect.Ar ...
- 推荐个Java代码质量检测的利器 —— FindBugs
一.下载 插件的下载地址(sourceforge):FindBugs-Eclipse插件 二.安装 Eclipse插件的安装,就不多说了. 三.使用 1.找一个Project,选中它(也可以针对某个P ...
- windows服务删除后,在次安装时无法安装启动。
当我在windows的cmd下卸载evtsys evtsys -u 再次安装时evtsys.exe -i -h 192.168.32.12 -p 514 提示“指定的服务已标记为删除”,进入服务管理 ...
- 一个国内的 android 在线帮助网站
只支持到 api 19 http://cs.szpt.edu.cn/android/develop/index.html
- mongodb添加用户和认证
Mongodb默认启动是不带认证,也没有账号,只要能连接上服务就可以对数据库进行各种操作,这样可不行.现在,我们得一步步开启使用用户和认证. 第一步,我们得定位到mongodb的安装目录.我本机的是C ...
- Machine Learning for hackers读书笔记(九)MDS:可视化地研究参议员相似性
library('foreign') library('ggplot2') data.dir <- file.path('G:\\dataguru\\ML_for_Hackers\\ML_for ...
- UVa 11134 (区间上的贪心) Fabled Rooks
这道题真是WA得我心力交瘁,好讨厌的感觉啊! 简直木有写题解的心情了 题意: n×n的棋盘里,放置n个车,使得任意两车不同行且不同列,且第i个车必须放在给定的第i个矩形范围内.输出一种方案,即每个车的 ...
- 浅谈网络爬虫爬js动态加载网页(三)
上一篇讨论了web driver对动态网页的抓取与分析,可以很清楚的看出这是一种集中式处理方式,简单说,就是利用服务器,打开一个真正的brower,然后将需要解析的地址交给浏览器,浏览器去解析,然后将 ...
- codeforces 432 B Football Kit
题意:给出n支球队,主场的衣服的颜色x[i],客场的衣服的颜色y[i],每只队伍会打n-1次主场,n-1次客场,当这只队伍打客场的衣服颜色和对手一样的时候,那么他们要穿上主场的衣服 问每个球队主场球服 ...
- ui/ue设计师应该了解的原型设计软件
前段实践整理过一些原型设计用的软件,这里分享一下,喜欢对更多的PM战线的童鞋有所裨益.(因为交互原型工具Axure ui设计师都很常用了,文中就不专门介绍了) 首先分下类: •1.交互原型(产品能做什 ...