显示下一条  |  关闭

专注Java,专注互联网!专注电子商务!

疯子和天才只一步之差,奋起直追,提升自我,坚持不懈,永不言弃!

 
 
 
 
 
 

cookies 概念

2012-1-26 12:26:39 阅读11 评论0 262012/01 Jan26

        Cookies的格式实际上是一段纯文本信息, 由服务器随着网页一起发送到客户端,并保存在客户端硬盘中指定的目录的。大家都传说Cookies会造成严重的安全威胁什么的,其实不是这么回事情。服务器读取Cookies的时候,只能够读取到这个服务器相关的信息。而且,浏览器一般只允许存放300个Cookies,每个站点最多存放20个, 而且, 每个Cookies的大小现在在4K,根本不会占用多少空间。并且,Cookies是有时效性质的。例如,设置了Cookies的存活时间为1分钟,则一分钟后这个Cookies就会被浏览器删除。

一个域名下可以有多少个cookies:

firefox 3.6可以存150个cookies

ie6最多有50个cookies

当超过cookies最大个数时,浏览器如何响应:

firefox 3.6 剔除最老的设置新的

ie6 剔除最老的设置新的

一个cookies最大字符数

firefox 3.6 4097字节,包括name、等于号、value

ie6 4096字节,包括name、等于号、value

一个cookies的value超过字符限制,浏览器如何处理:

firefox 3.6 超过字符限制就不设置

ie6 超过字符限制也会设置,但取不到值

cookies使用总结:

1、 尽量让cookies的权限范围小,能子域可见domain绝不设为主域。

作者  | 2012-1-26 12:26:39 | 阅读(11) |评论(0) | 阅读全文>>

Java API 设计准则

2012-1-23 10:33:47 阅读16 评论0 232012/01 Jan23

在Java API设计中有着许多的各种规则与折衷考量,和其他所有复杂任务一样,它考验着我们的记忆力及脑力。这里我找到了一个对正在设计Java API的软件开发人员而言非常不错的准则列表,其中介绍的一些准则可能是很明显的,又或者不那么显眼,但确实非常不错,希望你会喜欢。

这里摘录了一些:

优先将API与其实现置于不同的包中。

    优先将API放入高层包中,实现则可放在低层包。

    考虑将大型API拆分成若干包。

    考虑将API与其实现包归置到不同的Java文档中。

    避免对API中实现类的内部依赖。

    避免出现不必要的API碎裂(fragmentation)情况。

    不要将公共实现类放在API包中。

    不要在调用及实现类间创建依赖。

    不要将不相关的API放在同一个包中。

    不要将API与SPI(Service Provider Interface,服务提供者接口)放在同一个包中。

    不要移动及重命名已发布的公共API包。

完整的准则列表点击这里查看。

作者  | 2012-1-23 10:33:47 | 阅读(16) |评论(0) | 阅读全文>>

passport 通行证设计思路

2011-12-26 13:56:18 阅读31 评论0 262011/12 Dec26

      写写关于 passport 通行证的设计与架构思路。

      用户中心与其他app的桥梁,也是网站业务的核心之一。

      传课核心业务分析。chuanke,其用户中心可投射到技术类、文职类等等。

作者  | 2011-12-26 13:56:18 | 阅读(31) |评论(0) | 阅读全文>>

获取新增主键的查询语句

2011-12-22 13:57:54 阅读26 评论0 222011/12 Dec22

数据库

获取新增主键的查询语句

DB2

IDENTITY_VAL_LOCAL()

Informix

SELECT dbinfo('sqlca.sqlerrd1') FROM <TABLE>

Sybase

SELECT @@IDENTITY

SqlServer

SELECT SCOPE_IDENTITY()或SELECT @@IDENTITY

MySql

SELECT LAST_INSERT_ID()

HsqlDB

CALL IDENTITY()

Cloudscape

IDENTITY_VAL_LOCAL()

Derby

IDENTITY_VAL_LOCAL()

PostgreSQL

SELECT nextval('<TABLE>_SEQ')

Oracle

获取序列号

select area_seq.nextVal from dual

作者  | 2011-12-22 13:57:54 | 阅读(26) |评论(0) | 阅读全文>>

分享网站群发站内信数据库表设计

2011-12-15 17:38:17 阅读37 评论0 152011/12 Dec15

“站内信”不同于电子邮件,电子邮件通过专门的邮件服务器发送、保存。而“站内信”是系统内的消息,说白了,“站内信”的实现,就是通过数据库插入记录来实现的。

   “站内信”有两个基本功能。一:点到点的消息传送。用户给用户发送站内信;管理员给用户发送站内信。二:点到面的消息传送。管理员给用户(指定满足某一 条件的用户群)群发消息。点到点的消息传送很容易实现,本文不再详述。下面将根据不同的情况,来说说“站内信”的群发是如何实现的。

  第一种情况,站内的用户是少量级别的。(几十到上百)

  这种情况,由于用户的数量非常少,因此,没有必要过多的考虑数据库的优化,采用简单的表格,对系统的设计也来的简单,后期也比较容易维护,是典型的用空间换时间的做法。

  数据库的设计如下:表名:Message

  ID:编号;SendID:发送者编号;RecID:接受者编号(如为0,则接受者为所有人);Message:站内信内容;Statue:站内信的查看状态;PDate:站内信发送时间;

  如果,某一个管理员要给所有人发站内信,则先遍历用户表,再按照用户表中的所有用户依次将站内信插入到Message表中。这样,如果有56个用户,则群发一条站内信要执行56个插入操作。这个理解上比较简单,比较耗损空间。

  某一个用户登陆后,查看站内信的语句则为:

  Select * FROM Message Where RecID=‘ID' OR RecID=0

  第二种情况,站内的用户中量级别的(上千到上万)。

作者  | 2011-12-15 17:38:17 | 阅读(37) |评论(0) | 阅读全文>>

BigPipe学习研究与思考

2011-12-15 17:28:40 阅读21 评论0 152011/12 Dec15

BigPipe,加速你的页面加载 1. 技术背景—FaceBook页面加载技术

  试想这样一个场景,一个经常访问的网站,每次打开它的页面都要要花费6秒;同时另外一个网站提供了相似的服务,但响应时间只需3 秒,那么你会如何选择呢?数据表明,如果用户打开一个网站,等待3~4 秒还没有任何反应,他们会变得急躁,焦虑,抱怨,甚至关闭网页并且不再访问,这是非常糟糕的情况。所以,网页加载的速度十分重要,尤其对于拥有遍布全球的 5亿用户的Facebook(全球最大的社交服务网站)这样的大型网站,有着大量并发请求、海量数据等客观情况,速度就成了必须攻克的难题之一。

  2010年初的时候,Facebook 的前端性能研究小组开始了他们的优化项目,经过了六个月的努力,成功的将个人空间主页面加载耗时由原来的5 秒减少为现在的2.5 秒。这是一个非常了不起的成就,也给用户来带来了很好的体验。在优化项目中,工程师提出了一种新的页面加载技术,称之为Bigpipe。目前淘宝和 Facebook面临的问题非常相似:海量数据和页面过大,如果可以在详情页、列表页中使用bigpipe,或者在webx中集成bigpipe,将会带 来明显的页面加载速度提升。

作者  | 2011-12-15 17:28:40 | 阅读(21) |评论(0) | 阅读全文>>

软件系统开发合同

2011-12-15 10:57:22 阅读18 评论0 152011/12 Dec15

目 录

一、定义

二、甲方所需软件系统及描述

三、乙方所提供软件系统描述

四、软件系统的开发、进度与管理

五、交付、领受与验收

六、所有权、知识产权和使用权

七、价格与付款方式

八、保密与非竞争

九、项目培训与服务

十、系统保证和维护

十一、项目变更

十二、违约与赔偿责任

十三、不可抗力

十四、其它

十五、争议解决

十六、合同的生效、解除

附件-1

附件-2

需求说明书

系统设计说明书

软件系统开发合同

合同双方当事人:

甲方(委托方):

法定代表人:

地址:

联系电话:

乙方(开发方):

法定代表人:

地址:

联系电话:

鉴于甲方有意为其企业管理(采购、仓库管理等)业务建立电脑信息化管理,乙方愿意为甲方开发提供所需的管理系统软件。甲乙双方特依据《中华人民共和国合同法》及相关的法律法规之规定,在自愿、平等、互利互惠、协商一致的基础上,达成如下协议:

一、定义

1、电脑信息化系统、系统、软件系统、项目等词除另有指明外,均指本合同项下由甲方投资,乙方开发承建的软件系统。

2、里程碑

里程碑是指乙方在软件系统开发中,在技术上和项目过程中相对独立的阶段性工作。

作者  | 2011-12-15 10:57:22 | 阅读(18) |评论(0) | 阅读全文>>

多Web服务器之间共享Session的解决方案

2011-12-15 9:11:40 阅读32 评论0 152011/12 Dec15

参考资料:

一、提出问题:

为了满足足够大的应用,满足更多的客户,于是我们架设了N台Web服务器(N>=2),在多台Web服务器的情况下,我们会涉及到一个问题:用户登陆一台服务器以后,如果在跨越到另一台服务器的时候能够继续使用客户的Session?

二、解决方案:

1. 写客户端Cookie的方式

       当用户登陆成功以后,把网站域名、用户名、密码、token、 session有效时间全部采用cookie的形式写入到客户端的cookie里面,如果用户从一台Web服务器跨越到另一台服务器的时候,我们的程序主动去检测客户端的cookie信息,进行判断,然后提供对应的服务,当然,如果cookie过期,或者无效,自然就不让用户继续服务了。当然,这种方法的弊端就不言而喻了,比如客户端禁用了cookie或者cookie被黑客窃取了呢?这些都可以解决,目前淘宝session框架就是基于client cookie做开发,不见得他们就出了很大的问题?也许是最可行的方式,可以配合memcached来实现。

2. 服务器之间Session数据同步的方式

       假设Web服务器A是所有用户登陆的服务器,那么当用户验证登陆一下,session数据就会写到A服务器里,那么就可以自己写脚本或者守护进程来自动把session数据同步到其他Web服务器,那么当用户跳转到其他服务器的时候

作者  | 2011-12-15 9:11:40 | 阅读(32) |评论(0) | 阅读全文>>

解决用户信息的存储问题的思考

2011-12-14 17:25:47 阅读30 评论0 142011/12 Dec14

解决大型互联网应用用户信息的存储问题,可以通过以下思路进行:

应用无状态

      俗话说,一个应用的伸缩性的好坏取决于该应用的状态如何管理。

      为什么这么说呢?试想一下,假如我们在session中保存了大量与客户端的状态信息的话,那么当保存状态信息的server宕机的时候,我们怎么办?通常来说,我们都是通过集群来解决这个问题,而通常所说的集群,不仅有负载均衡,更重要的是要有失效恢复failover,比如tomcat采用的集群节点广播复制,jboss采用的配对复制等session状态复制策略,但是集群中的状态恢复也有其缺点,那就是严重影响了系统的伸缩性,系统不能通过增加更多的机器来达到良好的水平伸缩,因为集群节点间session的通信会随着节点的增多而开销增大,因此要想做到应用本身的伸缩性,我们需要保证应用的无状态性,这样集群中的各个节点来说都是相同的,从而是的系统更好的水平伸缩。

      既然大家知道了无状态的重要性,那么具体应该如何去实现无状态呢?

      1、我们可以参考淘宝的session框架,淘宝的session框架采用的是client cookies来实现,主要是将状态保存到了cookies里面,这样就使得应用节点本身不需要保存任何状态信息,这样在系统用户变多的时候,就可以通过增加

作者  | 2011-12-14 17:25:47 | 阅读(30) |评论(0) | 阅读全文>>

mysql性能tip

2011-12-13 10:13:33 阅读28 评论0 132011/12 Dec13

数据类型选择方面的几个原则:

1,更小通常更好,选择能正确表示数据的最小类型。

2,简单就好,用简单类型优于用复杂类型。

3,避免NULL,尽量定义字段为not null。性能提升很小。

字符串的选型:

当最大长度远远大于平均长度时,并很少发生更新时,选择VARCHAR。

CHAR适合保存用户密码的MD5哈希值。

MySql存储的最小时间单位是秒,但是可以用毫秒进行临时计算。

InnoDB有一个特别功能叫做自适应哈希索引,当InnoDB注意到一些索引值被很频繁的访问的时候,它就会在BTree的顶端为这些值建立内存索引。

索引包含了来自于表中的一列或者多列的值,如果索引了多列数据,列的顺序非常重要,因为Mysql只能高效的搜索所以你的最左前缀。

聚集索引:不是一种单独的索引类型,而是一种存储数据的方式。当表有聚集索引的时候,它的数据行实际保存在索引的叶子页中。每个表只能有一个聚集索引。

使用时注意设置前缀索引。索引选择要注意不重复的索引值。

索引策略总结:

检查最常用的查询,不要不调查就随便建索引。为了找到建索引的平衡,应该测试和剖析。第一检查的就是响应时间,要为耗时很长的查询添加索引;然后就是检查导致最大负载的查询,添加索引;最好要把系统的cpu、内存和磁盘瓶颈考虑进去。

在任何可能的地方,都要试着扩展索引,而不是新增索引。通常维护一个多列索引要比维护多个单列索引容易。如果不知道查询的分布,就要尽可能的使索引变得更有选择性,因为高选择性的索引通常更有好处。

作者  | 2011-12-13 10:13:33 | 阅读(28) |评论(0) | 阅读全文>>

spring声明性事务管理实现技术剖析

2011-12-13 9:50:00 阅读42 评论0 132011/12 Dec13

本文章会通过连载的方式来深入了解和学习Spring相关核心技术和实现原理。包括Spring的Bean生命周期管理,声明性事务管理,AOP管理,注解应用实现,以及在其上面进行扩展的相关应用。

本篇技术文章将介绍Spring声明式事务管理实现技术细节的剖析。

首先看一下Spring基于XML方式的声明式事务配置方法。(基于注解的也是相同,下篇在介绍Spring注解应用扩展实现时,会再介绍基于注解的Spring声明式事务的实现细节)

首先配置 BeanNameAutoProxyCreator 实现基于Bean 名称规则匹配的AOP拦截

示例代码如下:

从上面的配置示例中,可以发现Spring的声明式事务由一个叫TransactionInterceptor 的AOP拦截器实现, 我们代码的整体分析过程也是从这个类开始

TransacionInterceptor的类描述如下,其实现了MethodInterceptor接口

代码主体逻辑都是invoke方法里

下面是invoke方法的主要逻辑说明

首先获得拦载的方法名和类名,根据在xml文件的匹配规则,找出事务的配置规则,创建TransactionAttribute对象(如事务的读写属性,传播属性,事务隔离级别等)

如果匹配事务规则,则调用 createTransactionIfNecessary方法创建事务

整理创建事务的过程,则会调用Spring的PlatformTransactionManager的接口实现类,示例中配置的是HibernateTransactionManager

作者  | 2011-12-13 9:50:00 | 阅读(42) |评论(0) | 阅读全文>>

Spring声明式事务配置详解

2011-12-13 9:47:59 阅读32 评论0 132011/12 Dec13

Spring声明式事务功能应该是大家应用Spring中使用的最多的功能之一了,的确该功能极大的简化了大家对数据库操作的。目前Spring支持的声明式事务有两个配置方式,一种是XML配置方式,另一种是注解方式

针对配置这块,XML配置同学们会觉得比较麻烦,特别是针对事务属性的配置,所以补充一下本块配置说明,特分享给大家,希望对大家有帮助。

下面是Spring的XML配置事务比较常用的方式,也是我们这边事务XML配置事务的使用方式,本文以该种配置为例,进行说明。

<bean id="transactionInterceptor"

        class="org.springframework.transaction.interceptor.TransactionInterceptor">

        <property name="transactionManager" ref="transactionManager" />

        <property name="transactionAttributes">

  

作者  | 2011-12-13 9:47:59 | 阅读(32) |评论(0) | 阅读全文>>

查看所有日志>>

 
 
 
 
 
 
 
 

广东省 深圳市 处女座

 发消息  写留言

 
疯子和天才只一步之差,奋起直追,提升自我,坚持不懈,永不言弃!坚持,专心方能专注,专注方能成功!专注才能更专业!
 
近期心愿2010年7月份,我希望在深圳找到适合自己的一份工作。驾照(2010年9月份实现了一个) 2011年,我希望在深圳找到一份比当前工作好的一份工作,以及驾照拿取。(2011年4月份实现了第一个愿望) 2011年下半年,我希望在深圳找到一份更好的工作,在下半年能够参与驾照培训,争取最迟明年年初拿到驾照。(2011年8月实现了第一个愿望) 2012年上半年,找到一份更好的工作,以及实现自己买车的愿望和拿到驾照。
POPO  daihaixiang@163.com
QQ54339729
MSNcnhaixiang@hotmail.com
博客等级加载中...
今日访问加载中...
总访问量加载中...
最后登录加载中...
 
 
 
 
 

天气

 
 
模块内容加载中...
 
 
 
 
 
 
 
心情随笔列表加载中...
 
 
 
 
 
 
 
模块内容加载中...
 
 
 
 
 
 
 
模块内容加载中...
 
 
 
 
 
 
 
博友列表加载中...
 
 
 
 
 
 
 
圈子列表加载中...
 
 
 
 
 
 
 
模块内容加载中...
 
 
 
 
 
 
 
列表加载中...
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2012

   
创建博客 登录  
 关注