Energy of Love  
日历
<2024年4月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011
统计
  • 随笔 - 70
  • 文章 - 0
  • 评论 - 80
  • 引用 - 0

导航

常用链接

留言簿

随笔分类

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

 

  1. oracle   
  2.   
  3. select   *   from   table   where   rownum<20      
  4.   minus      
  5.   select   *   from   table   where   rownum<10      
  6.   
  7. //但这种查询的效率更高于前者 (556436条数据,测试结果)   
  8. select * from (select rownum r,a.* from blog a where rownum<=20) where r>=10;   
  9.   
  10.   
  11.   
  12. mysql> SELECT * FROM table LIMIT 5,10;  // 检索记录行 6-15   
  13.   
  14. //为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1:    
  15. mysql> SELECT * FROM table LIMIT 95,-1// 检索记录行 96-last.   
  16.   
  17. //如果只给定一个参数,它表示返回最大的记录行数目:    
  18. mysql> SELECT * FROM table LIMIT 5;     //检索前 5 个记录行   
  19.   
  20. //换句话说,LIMIT n 等价于 LIMIT 0,n   
  21.   
  22.   
  23.   
  24. mysql limit查询优化[转载],由于limit经常用到,却没有注意,因为平时做的项目都比较小,所以也没有考虑去怎么优化,今天看了一篇关于mysql limit优化的文章,感觉很好 于是转载过来   
  25.   
  26. 原文地址在这里   
  27. http://www.phpobject.net/blog/read.php?119   
  28.   
  29. MYSQL的优化是非常重要的。其他最常用也最需要优化的就是limit。mysql的limit给分页带来了极大的方便,但数据量一大的时候,limit的性能就急剧下降。   
  30.        同样是取10条数据   
  31.   
  32. select * from yanxue8_visit limit 10000,10        和   
  33.   
  34.     
  35.   
  36. select * from yanxue8_visit limit 0,10    
  37.   
  38.   
  39. 就不是一个数量级别的。   
  40.   
  41.     网上也很多关于limit的五条优化准则,都是翻译自mysql手册,虽然正确但不实用。今天发现一篇文章写了些关于limit优化的,很不错。原文地址:http://www.zhenhua.org/article.asp?id=200   
  42.   
  43.     文中不是直接使用limit,而是首先获取到offset的id然后直接使用limit size来获取数据。根据他的数据,明显要好于直接使用limit。这里我具体使用数据分两种情况进行测试。(测试环境win2033+p4双核 (3GHZ) +4G内存 mysql 5.0.19)   
  44.   
  45. 1、offset比较小的时候。   
  46.   
  47. select * from yanxue8_visit limit 10,10    
  48.   
  49.   
  50.    多次运行,时间保持在0.0004-0.0005之间   
  51.   
  52. Select * From yanxue8_visit Where vid >=(   
  53.   
  54. Select vid From yanxue8_visit Order By vid limit 10,1  
  55.   
  56. ) limit 10    
  57.   
  58.   
  59.   多次运行,时间保持在0.0005-0.0006之间,主要是0.0006  
  60.  结论:偏移offset较小的时候,直接使用limit较优。这个显然是子查询的原因。   
  61.   
  62.   
  63. 2、offset大的时候。   
  64.   
  65. select * from yanxue8_visit limit 10000,10    
  66.   
  67.   
  68.    多次运行,时间保持在0.0187左右   
  69.   
  70. Select * From yanxue8_visit Where vid >=(   
  71.   
  72. Select vid From yanxue8_visit Order By vid limit 10000,1  
  73.   
  74. ) limit 10    
  75.   
  76.   
  77. 多次运行,时间保持在0.0061左右,只有前者的1/3。可以预计offset越大,后者越优。   
  78.   
  79. 以后要注意改正自己的limit语句,优化一下mysql了  
posted @ 2009-06-05 19:34 不高兴 阅读(5347) | 评论 (0)编辑 收藏
 

原文地址:http://www.csna.cn/viewthread.php?tid=569&sid=FbE5VS

一、        邮件传输协议简介
1.        邮件传输概念
邮件服务是Internet上最常用的服务之一,它提供了与操作系统平台无关的通信服务,使用邮件服务,用户可通过电子邮件在网络之间交换数据信息。邮件传输包括将邮件从发送者客户端发往邮件服务器,以及接收者从邮件服务器将邮件取回到接收者客户端。
2.        SMTP和POP3
在TCP/IP协议簇中,一般使用SMTP协议发送邮件,POP3协议接收邮件。
SMTP,全称Simple Message Transfer Protocol,中文名为简单邮件传输协议,工作在TCP/IP层次的应用层。SMTP采用Client/Server工作模式,默认使用TCP 25端口,提供可靠的邮件发送服务。
POP3,全称Post Office Protocol 3,中文名为第三版邮局协议,工作在TCP/IP层次的应用层。POP3采用Client/Server工作模式,默认使用TCP 110端口,提供可靠的邮件接收服务。
3.        SMTP和POP3的工作原理
发送和接收邮件都需要以下两个组件:用户代理(UA,常用的是Foxmail或Outlook)和SMTP/POP3服务器。
SMTP工作原理:
1)        客户端使用TCP协议连接SMTP服务器的25端口;
2)        客户端发送HELO报文将自己的域地址告诉给SMTP服务器;
3)        SMTP服务器接受连接请求,向客户端发送请求账号密码的报文;
4)        客户端向SMTP服务器传送账号和密码,如果验证成功,向客户端发送一个OK命令,表示可以开始报文传输;
5)        客户端使用MAIL命令将邮件发送者的名称发送给SMTP服务器;
6)        SMTP服务器发送OK命令做出响应;
7)        客户端使用RCPT命令发送邮件接收者地址,如果SMTP服务器能识别这个地址,就向客户端发送OK命令,否则拒绝这个请求;
8)        收到SMTP服务器的OK命令后,客户端使用DATA命令发送邮件的数据。
9)        客户端发送QUIT命令终止连接。
POP3工作原理:
1)        客户端使用TCP协议连接邮件服务器的110端口;
2)        客户端使用USER命令将邮箱的账号传给POP3服务器;
3)        客户端使用PASS命令将邮箱的账号传给POP3服务器;
4)        完成用户认证后,客户端使用STAT命令请求服务器返回邮箱的统计资料;
5)        客户端使用LIST命令列出服务器里邮件数量;
6)        客户端使用RETR命令接收邮件,接收一封后便使用DELE命令将邮件服务器中的邮件置为删除状态;
7)        客户端发送QUIT命令,邮件服务器将将置为删除标志的邮件删除,连接结束。
(注:客户端UA可以设定将邮件在邮件服务器上保留备份,而不将其删除。)

二、        跟踪分析Email电子邮件通讯过程
1.        分析Email的具体流程
1)        发送邮件
我们使用科来网络分析系统5.0捕获并分析一个使用SMTP协议的发送邮件过程,客户端主机名为“wangym”,客户端用户代理使用Foxmail 5.0 beta2,邮件发送者test1@colasoft.com,邮件接收者test2@colasoft.com。
在客户端主机上打开科来网络分析系统5.0。为避免数据干扰,设定一个过滤器,只捕获本机的数据通讯。
打开客户端主机上的Foxmail 5.0 beta2,新建两个邮件账户,test1@colasoft.com和test2@colasoft.com,设置好账户的SMTP/POP3服务器地址、用户名、密码等信息并测试成功。
在科来网络分析系统5.0中开始数据捕获,在Foxmail中使用test1@colasoft.com向test2@colasoft.com发送一封邮件,邮件原始信息如图1所示。发送完成后即可在科来网络分析系统5.0对刚才的邮件发送操作进行分析(为避免数据包干扰,分析时可停止捕获。)。
注意:此文里提到的发送邮件均指使用TCP 25端口的标准SMTP通信,对于非25端口的邮件发送,用户可在“工程->高级分析模块->邮件分析模块->SMTP设置->SMTP端口”处进行更改,系统默认为25,当SMTP服务器有多个端口时,多个端口之间用分号分隔,如25;125。


科来网络分析系统5.0对上面发送邮件操作的报文跟踪,详细信息如下:
A.        第1、2、3个数据包是TCP连接的三次握手数据包,连接的双方是本机与域名ns1.colasoft.com对应的IP地址;
B.        从第4个数据包开始,客户端开始通过TCP协议连接SMTP服务器,并与SMTP服务器进行命令的交互,及邮件的发送,具体的交互过程详见图3以及对图3的分析。
[attach]604[/attach]    

 

科来网络分析系统5.0对上面发送邮件操作的TCP原始数据流重组信息。具体分析数据流重组信息,可以得到上面发送邮件操作的详细过程如下:
A.        客户端使用EHLO(或HELO)命令向SMTP服务器发送HELO报文,启动邮件传输过程,并同时将客户端地址发送SMTP服务器端,此处为wangym;
B.        SMTP服务器接受了客户端的连接请求,并请求输入账号和密码进行认证;
C.        客户端向服务器端传送账号和密码;
D.        SMTP服务器通过验证,客户端使用MAIL命令将邮件发送者的名称传送给SMTP服务器;
E.        客户端使用RCPT命令将邮件接收者的名称传送给SMTP服务器;
F.        客户端使用DATA命令传送邮件数据给SMTP服务器;
G.        数据传送完毕后,客户端发送QUIT命令关闭连接。
注意:
        SMTP传输使用的是base64编码,图4中AUTH LOGIN下的“dGVzdDFAY29sYXNvZnQuY29t”是当前使用账号对应的base64编码;
        图3所示的SMTP数据流中,客户端向SMTP服务器传送了两次发件人名称和收件人名称,可能的原因有两种:
a.        网络的延迟较大,客户端在规定时间内未收到SMTP服务器的响应,认为传送发件人名称和收件人名称的数据包丢失而进行的重传;
b.        客户端主机上的防病毒软件在邮件发送前对邮件进行的检测,如Norton Antivirus就会进行这种检测,禁用此检测功能即可避免此种情况的发生。


2)        接收邮件
我们再使用科来网络分析系统5.0捕获并分析一个使用POP3协议的接收邮件过程,客户端主机名为“wangym”,客户端用户代理使用Foxmail 5.0 beta2,邮件接收者test2@colasoft.com。
在客户端主机上打开科来网络分析系统5.0。与上面相同,设定一个过滤器,只捕获本机的数据通讯,选择高级分析模块,在邮件分析模块的常规设置中,将保存邮件选择为“是”,并选择好邮件的保存位置,如图1所示。
在科来网络分析系统5.0中开始数据捕获,同时在Foxmail中选中test2@colasoft.com,并收取邮件。接收完成后即可在科来网络分析系统5.0对刚才的邮件接收操作进行分析(为避免数据包干扰,分析时可停止捕获。)。
注意:此文里提到的接收邮件均指使用TCP 110端口的标准POP3通信,对于非110端口的邮件发送,用户可在“工程->高级分析模块->邮件分析模块->SMTP设置->POP3端口”处进行更改,系统默认为110,当SMTP服务器有多个端口时,多个端口之间用分号分隔,如110;1110。

科来网络分析系统5.0对上面接收邮件操作的报文跟踪。 
A.        1、2、3数据包是TCP连接的三次握手数据包,连接的双方是本机与域名ns1.colasoft.com对应的IP地址;
B.        从第4个数据包开始,客户端开始通过TCP协议连接POP3服务器,并与POP3服务器进行命令的交互,及邮件的接收,具体的交互过程详见图4以及对图4的分析。


科来网络分析系统5.0对上面接收邮件操作的TCP原始数据流重组信息。具体分析其数据流重组信息,可以得到上面接收邮件操作的详细过程:
A.        客户端使用USER命令向POP3服务器传送用户账号test2@colasoft.com;
B.        客户端使用PASS命令向POP3服务器传送用户密码1234567890;
C.        POP3服务器通过验证,向客户端发送一个OK报文;
D.        客户端使用STAT命令请求POP3服务器返回邮箱的统计资料信息,POP3服务器返回当前有一封邮件;
E.        客户端使用LIST命令列出POP3服务器里的邮件数量,当前为1封邮件;
F.        客户端使用RETR命令接收邮件,接收后使用DELE命令将邮件POP3服务器中的邮件置为删除状态;
G.        客户端发送QUIT命令,邮件服务器将将置为删除标志的邮件删除,连接结束。
注意:
        POP3直接使用明文传输;
        直接重组出了接收到的邮件内容,此信息不经过任何编码或加密处理,直接为明文方式,与图1所示的邮件原始信息一致。


3)        SMTP/POP3命令码
通过SMTP/POP3协议进行邮件收发操作时,均通过不同的命令码进行不同的操作,现将其命令码总结如下:
SMTP命令如表1所示:
命令        作用
HELO        客户端发送此命令与SMTP服务器建立连接,将发送者邮件地址发送给SMTP服务器
MAIL        客户端将邮件发送者的名称传送给SMTP服务器
RCPT        客户端将邮件接收者的名称传送给SMTP服务器
DATA        客户端将邮件报文内容传送给SMTP服务器
SEND        用于向指定用户传送邮件
SAML/SOML        用于发送邮件
RSET        取消客户端与SMTP服务器间的当前事务,释放与当前事务相关的内存
EXPN        标识邮件接收者列表
QUIT        终止客户端与SMTP服务器间的连接


POP3命令如表2所示:
命令        作用
USER        客户端向POP3服务器传送账号
PASS        客户端向POP3服务器传送密码
STAT        客户端请求POP3服务器返回邮箱的统计信息
UIDL        客户端请求POP3服务器返回邮件的唯一标识符
LIST        客户端请求POP3服务器返回邮件数量和每封邮件的大小
RETR        客户端请求POP3服务器返回由参数标识的邮件的全部文本
DELE        POP3服务器将由参数标识的邮件标记为删除
RSET        POP3服务器重置所有标记为删除的邮件,用于撤消DELE命令
NOOP        POP3服务器返回一个肯定的响应
QUIT        终止客户端POP3服务器间的连接


三、        总结
以上简单介绍了SMTP和POP3协议,并使用科来网络分析分析系统5.0跟踪分析了一个基于SMTP/POP3协议的邮件收发操作。据此,用户在遇到不能正常收发邮件(使用SMTP/POP3协议)的问题时,即可结合上述的SMTP/POP3相关知识,使用网络检测分析软件(这儿是科来网络分析系统5.0)对邮件接收和邮件发送的报文进行跟踪分析,以完成对此类故障的快速排查。


 

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hyde82/archive/2007/06/13/1650581.aspx

posted @ 2009-06-05 09:42 不高兴 阅读(439) | 评论 (0)编辑 收藏
 

1.网页内容获取
java.io.inputstream in;
java.net.url url = new java.net.url(www.xyz.com/content.html);
java.net.httpurlconnection connection = (java.net.httpurlconnection)
url.openconnection();
connection = (java.net.httpurlconnection) url.openconnection();
//模拟成ie
connection.setrequestproperty("user-agent","mozilla/4.0 (compatible; msie 6.0; windows 2000)");
connection.connect();
in = connection.getinputstream();
java.io.bufferedreader breader =
new bufferedreader(new inputstreamreader(in , "gbk"));
string str=breader.readline());
while(st != null){
system.out.println(str);
str=breader.readline());
}
2.cookie管理

1.直接的方式
取得cookie:
httpurlconnection huc= (httpurlconnection) url.openconnection();
inputstream is = huc.getinputstream();
// 取得sessionid.
string cookieval = hc.getheaderfield("set-cookie");
string sessionid;
if(cookieval != null)
{
sessionid = cookieval.substring(0, cookieval.indexof(";"));
}

发送设置cookie:
httpurlconnection huc= (httpurlconnection) url.openconnection();
if(sessionid != null)
{
huc.setrequestproperty("cookie", sessionid);
}
inputstream is = huc.getinputstream();

 

2.利用的jcookie包(http://jcookie.sourceforge.net/ )
获取cookie:
url url = new url("http://www.site.com/");
httpurlconnection huc = (httpurlconnection) url.openconnection();
huc.connect();
inputstream is = huc.getinputstream();
client client = new client();
cookiejar cj = client.getcookies(huc);


新的请求,利用上面获取的cookie:

url = new url("http://www.site.com/");
huc = (httpurlconnection) url.openconnection();
client.setcookies(huc, cj);


3.post方式的模拟
url url = new url("www.xyz.com");
httpurlconnection huc = (httpurlconnection) url.openconnection();
//设置允许output
huc.setdooutput(true);
//设置为post方式
huc.setrequestmethod("post");
huc.setrequestproperty("user-agent","mozilla/4.7 [en] (win98; i)");
stringbuffer sb = new stringbuffer();
sb.append("username="+usernme);
sb.append("&password="+password);

//post信息
outputstream os = huc.getoutputstream();
os.write(sb.tostring().getbytes("gbk"));
os.close();

bufferedreader br = new bufferedreader(new inputstreamreader(huc.getinputstream()))


huc.connect();

string line = br.readline();

while(line != null){

l

system.out.printli(line);


line = br.readline();

}


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/hyde82/archive/2007/06/06/1640817.aspx

posted @ 2009-06-05 09:33 不高兴 阅读(1615) | 评论 (0)编辑 收藏
 

<HTML>
<HEAD>
<meta http-equiv="Content-Language" content="zh-cn">
<TITLE>中国设计秀www.cnwebshow.com-----让网页上的超链接失效,不能点击</TITLE>
<style>
a {poorfish:expression(this.onclick=function kill(){return false})}
</style>
</HEAD>
<BODY>
<p><a target="_blank" href="http://www.cnwebshow.com">中国设计秀</a></p>
<p><a href="http://www.163.com">www.163.com</a></p>
<p><a href="http://www.sohu.com">www.sohu.com</a></p>
<p> </p>
</BODY>
</HTML>

 

posted @ 2009-05-31 09:59 不高兴 阅读(313) | 评论 (0)编辑 收藏
 
如:select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mm:ss') from dual;

原因是SQL中不区分大小写,MM和mm被认为是相同的格式代码,所以Oracle的SQL采用了mi代替分钟。

select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from dual;

二、另要以24小时的形式显示出来要用HH24
select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual;//mi是分钟
select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual;//mm会显示月份
posted @ 2009-05-26 11:26 不高兴 阅读(3039) | 评论 (1)编辑 收藏
 

Project」菜单

「项目」菜单可以对工作台中的项目执行动作(建置或编译)。

名称

功能

Open Project(开启专案)

显示对话框,可以选取开启已关闭的项目

Close Project(关闭专案)

关闭目前所选取的项目

Build All(全部建置)

这个指令会对工作台中的所有项目执行增量(incremental)编译。也就是说,它会编译(编译)自从前次增量编译后,工作台中受到任何资源变更所影响的所有资源。自动编译关闭时,才可使用这个指令。

Build Project(编译专案)

这个指令会对目前选取的项目执行增量(incremental)编译。也就是说,它会编译(编译)自从前次编译后,受到任何资源变更所影响的项目中的所有资源。自动编译关闭时,才可使用这个指令。

Build Workings Set(重新编译工作集)

这个菜单可以在工作集上执行增量(incremental)编译。也就是说,它会编译(编译)前次编译之后,受到任何资源变更所影响之工作集中的所有资源。自动编译关闭时,才可使用这个指令。

Clean(清除)

这个指令会舍弃先前的所有编译结果。如果自动编译是开启的,这会呼叫完整的编译。

Build Automatically(自动编译)

自动编译工作区中的所有项目。这个指令可以切换自动编译喜好设定。

 

 

 

eclipse出现不编译工程的现象。怎么刷新classes目录下也是空的.
具体都操作了:
打开project->build automatically   试后不行,还是不编译.
打开project --> build automatically 另外 clean一下就可能会编译了,结果还不行.
eclipse默认是选自动编译。即使取消自动编译,手动build工程,也不能编译。

 

出现这种情况一般有以下三种原因:
1.如果项目里引了某个不用的jar包,而那个包又被你删了,就会出现不报错但怎么也编译不出来class文件的情况,可以把所有包都删除,然后一个一个的再引入(需要的),不要一下子把所有包都引入来,没用的可能会引起不良后果.
2.想删掉某个class文件重新生成,删除class文件后,但classes目录下的文件夹被其它程序打开,比如Total Commander。此时编译也不会通过,在problems下可能会提示“con't delete classes ……”。关掉其它程序重新编译即可。

3.还有种情况是remove掉 JRE System Library,重新导入即可编译。但是什么原因导致的还不清楚。


4.这是最重要的一点,有problems视图中查看有没有关于本项目的错误信息,一般都会有这样的话:
      The project cannot be built until build path errors are resolved

然后下面提示unbound classpath, 一般在.classpath中删除这些path就可以了

 打开.classpath文件see see.

posted @ 2009-05-21 18:30 不高兴 阅读(24670) | 评论 (6)编辑 收藏
 

看了一篇文章:用CSS/JS优化HTML页面加载速度后,我觉得可以将我所知道的一些优化技巧与原则告诉大家,一起分享。
这样,也许你也能够创造出属于你自己的一些优化心得与技巧。
本文是针对网页设计的,不涉及程序以及系统。
一、基于减少HTTP连接数的优化
像刚才这篇文章,就是基于减少并发HTTP连接数的优化。由于IE每次在一个域上并发连接数默认为8个,这意味着超过8个文件的时候,需要等待前8个文件之一传输结束。
我们可以:
1、将图片,尤其是大图片放到另外一个域名中。大站可以用另一个服务器来专门用于图片的传输。对于虚拟主机可以绑定另外一个域名。
这在大网站中很常见。
2、合并CSS和JS文件。以及在可能的时候合并图片。
3、预加载技术。最近很常见的,就是先用js显示缩略图,然后setTimeout延时加载大图片。
二、基于减少体积的优化
减少体积意味着减少带宽,能够很直接地减少硬件与带宽的开支。由于网站每日接待成千上万的访客,就是一个字节的优化也可以带来显著的效果。
1、减小CSS、JS和HTML的体积。
用简写的方法来写CSS。推荐用dreamweaver cs4来写CSS,因为代码提示默认就是简写的。#ffffff可以简写成#fff,margin:上 右 下 左,等等…
删除注释。除了保留版权声明,其他注释可以删除。删除不必要的空格和换行,就像google做的一样。用JS压缩工具来压缩JS。体积上的变化很明显。有的JS压缩工具会导致JS发生错误。推荐用JQuery也使用的压缩工具。很稳定,效果也很好。
推荐DIV+CSS布局,这是老生常谈。然而对于开发速度上效率的降低,可以用研究栅格系统、研究重用方案来解决。
不要滥用div、H1~H6等标签。除了速度,更是SEO上的考虑。
一手良好的div+css不是一夕一朝就能练成的。
2、减小图片的体积
在PS里“储存于WEB和设备所用格式”可以减少不少体积。对于图片质量要求不高的图片,可以储存为gif格式。此外在gif格式下,只要增加一点点损耗就可以带来明显的体积变化。如果用“储存”菜单来保存用于WEB的图片,最好选择索引模式,可以至少减少三分之一的体积。
三、基于运算速度的优化
运算速度更多的是WEB后端的事情,但是并不意味着脱得了前端的干系。
JS运算速度的优化。典型就是循环操作DOM,不要直接操作DOM,而是先createElement到一个变量,在这个变量中增加DOM,然后再附加到文档树上。此外,不要以为内存泄漏只是C++们的事情。JS也会导致内存泄漏。这个话题比较复杂,推荐大伙儿们阅读'ajax in action'。制作一个成熟的ajax应用需要注意的事项全部都有,与后台语言无关。阅读算法的书。可能让一个前端开发师阅读算法的书有些搞笑,但是,有些极端场合还是会出现因为JS执行耗时过多,浏览器要终止JS的运行。
四、其他优化。
可以是基于浏览器的特性、基于用户的体验进行优化。大家可以天马行空地发挥!
IE在加载CSS之前会出现瞬时的无CSS状态的页面。可以通过加入一个空的<script type="text/javascript"></script>来解决。
不要在文档里加入空的js,IE的BUG会导致这样比较慢。
标明图像的高度和宽度,有利于网页在加载过程中结构保持一致。
当一个链接是一个目录的时候,比如svnhost.cn/article,要这样:svnhost.cn/article/,因为没有/,服务器会回应一个301到有/的地址。
实在没有办法优化了?那么还可以基于用户体验进行优化,或者咨询  虽然实质上是增加服务器压力、减慢反应的。但是,用户心理的优化,才是真正的优化!加个loading会让用户感觉等待的时间减少,比优化几个KB实在多了。

posted @ 2009-05-21 12:28 不高兴 阅读(1291) | 评论 (1)编辑 收藏
 
Java代码

   1. <% 
   2. response.setHeader("Pragma","No-cache");  
   3. response.setHeader("Cache-Control","no-cache");  
   4. response.setDateHeader("Expires", -10); 
   5. %> 

<%
response.setHeader("Pragma","No-cache");
response.setHeader("Cache-Control","no-cache");
response.setDateHeader("Expires", -10);
%>

在登陆页面和登陆后页面均加入这段代码即可
注意,一定要在登陆页面(或类似功能的页面使session无效)

客户端方法:

meta是用来在HTML文档中模拟HTTP协议的响应头报文。meta 标签用于网页的<head>与</head>中,meta 标签的用处很多。meta 的属性有两种:name和http-equiv。name属性主要用于描述网页,对应于content(网页内容),以便于搜索引擎机器人查找、分类(目前几乎所有的搜索引擎都使用网上机器人自动查找meta值来给网页分类)。这其中最重要的是description(站点在搜索引擎上的描述)和 keywords(分类关键词),所以应该给每页加一个meta值。比较常用的有以下几个:
name 属性

1、<meta name="Generator" contect="">用以说明生成工具(如Microsoft FrontPage 4.0)等;

2、<meta name="KEYWords" contect="">向搜索引擎说明你的网页的关键词;

3、<meta name="DEscription" contect="">告诉搜索引擎你的站点的主要内容;

4、<meta name="Author" contect="你的姓名">告诉搜索引擎你的站点的制作的作者;

5、<meta name="Robots" contect=

"all|none|index|noindex|follow|nofollow">

其中的属性说明如下:

设定为all:文件将被检索,且页面上的链接可以被查询;

设定为none:文件将不被检索,且页面上的链接不可以被查询;

设定为index:文件将被检索;

设定为follow:页面上的链接可以被查询;

设定为noindex:文件将不被检索,但页面上的链接可以被查询;

设定为nofollow:文件将不被检索,页面上的链接可以被查询。

http-equiv属性

1、<meta http-equiv="Content-Type" contect="text/html";charset=gb_2312-80">

和 <meta http-equiv="Content-Language" contect="zh-CN">用以说明主页制作所使用的文字以及语言;

又如英文是ISO-8859-1字符集,还有BIG5、utf-8、shift-Jis、Euc、Koi8-2等字符集;

2、<meta http-equiv="Refresh" contect="n;url=http://yourlink">定时让网页在指定的时间n内,跳转到页面http;//yourlink;

3、<meta http-equiv="Expires" contect="Mon,12 May 2001 00:20:00 GMT">可以用于设定网页的到期时间,一旦过期则必须到服务器上重新调用。需要注意的是必须使用GMT时间格式;

4、<meta http-equiv="Pragma" contect="no-cache">是用于设定禁止浏览器从本地机的缓存中调阅页面内容,设定后一旦离开网页就无法从Cache中再调出;

5、<meta http-equiv="set-cookie" contect="Mon,12 May 2001 00:20:00 GMT">cookie设定,如果网页过期,存盘的cookie将被删除。需要注意的也是必须使用GMT时间格式;

6、<meta http-equiv="Pics-label" contect="">网页等级评定,在IE的internet选项中有一项内容设置,可以防止浏览一些受限制的网站,而网站的限制级别就是通过meta属性来设置的;

7、<meta http-equiv="windows-Target" contect="_top">强制页面在当前窗口中以独立页面显示,可以防止自己的网页被别人当作一个frame页调用;

8、<meta http-equiv="Page-Enter" contect="revealTrans(duration=10,transtion=

50)">和<meta http-equiv="Page-Exit"

contect="revealTrans(duration=20,transtion

=6)">设定进入和离开页面时的特殊效果,这个功能即FrontPage中的“格式/网页过渡”,不过所加的页面不能够是一个frame页面
posted @ 2009-05-19 16:05 不高兴 阅读(1239) | 评论 (1)编辑 收藏
 

public class SimpleDateFormat extends DateFormat
SimpleDateFormat 是一个以国别敏感的方式格式化和分析数据的具体类。 它允许格式化 (date -> text)、语法分析 (text -> date)和标准化。

SimpleDateFormat 允许以为日期-时间格式化选择任何用户指定的方式启动。 但是,希望用 DateFormat 中的 getTimeInstance、 getDateInstance 或 getDateTimeInstance 创建一个日期-时间格式化程序。 每个类方法返回一个以缺省格式化方式初始化的日期/时间格式化程序。 可以根据需要用 applyPattern 方法修改格式化方式。

SimpleDateFormat函数的继承关系:
java.lang.Object
    |
    +----java.text.Format
            |
            +----java.text.DateFormat
                    |
                    +----java.text.SimpleDateFormat
下面是个小例子:
import java.text.*;
import java.util.Date;

/**
   SimpleDateFormat函数语法:
 
   G 年代标志符
   y 年
   M 月
   d 日
   h 时 在上午或下午 (1~12)
   H 时 在一天中 (0~23)
   m 分
   s 秒
   S 毫秒
   E 星期
   D 一年中的第几天
   F 一月中第几个星期几
   w 一年中第几个星期
   W 一月中第几个星期
   a 上午 / 下午 标记符
   k 时 在一天中 (1~24)
   K 时 在上午或下午 (0~11)
   z 时区
*/
public class FormatDateTime {

     public static void main(String[] args) {
         SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
         SimpleDateFormat myFmt1=new SimpleDateFormat("yy/MM/dd HH:mm");
         SimpleDateFormat myFmt2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//等价于now.toLocaleString()
         SimpleDateFormat myFmt3=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");
         SimpleDateFormat myFmt4=new SimpleDateFormat(
                 "一年中的第 D 天 一年中第w个星期 一月中第W个星期 在一天中k时 z时区");
         Date now=new Date();
         System.out.println(myFmt.format(now));
         System.out.println(myFmt1.format(now));
         System.out.println(myFmt2.format(now));
         System.out.println(myFmt3.format(now));
         System.out.println(myFmt4.format(now));
         System.out.println(now.toGMTString());
         System.out.println(now.toLocaleString());
         System.out.println(now.toString());
     }   
   
}

效果:
2004年12月16日 17时24分27秒
04/12/16 17:24
2004-12-16 17:24:27
2004年12月16日 17时24分27秒 星期四
一年中的第 351 天 一年中第51个星期 一月中第3个星期 在一天中17时 CST时区
16 Dec 2004 09:24:27 GMT
2004-12-16 17:24:27
Thu Dec 16 17:24:27 CST 2004

下面是个JavaBean:
public class FormatDateTime {
   
     public static String toLongDateString(Date dt){
         SimpleDateFormat myFmt=new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E ");       
         return myFmt.format(dt);
     }
   
     public static String toShortDateString(Date dt){
         SimpleDateFormat myFmt=new SimpleDateFormat("yy年MM月dd日 HH时mm分");       
         return myFmt.format(dt);
     }   
   
     public static String toLongTimeString(Date dt){
         SimpleDateFormat myFmt=new SimpleDateFormat("HH mm ss SSSS");       
         return myFmt.format(dt);
     }
     public static String toShortTimeString(Date dt){
         SimpleDateFormat myFmt=new SimpleDateFormat("yy/MM/dd HH:mm");       
         return myFmt.format(dt);
     }
   
     public static void main(String[] args) {

         Date now=new Date();

         System.out.println(FormatDateTime.toLongDateString(now));
         System.out.println(FormatDateTime.toShortDateString(now));
         System.out.println(FormatDateTime.toLongTimeString(now));
         System.out.println(FormatDateTime.toShortTimeString(now));
     }   
   
}
调用的main 测试结果:
2004年12月16日 17时38分26秒 星期四
04年12月16日 17时38分
17 38 26 0965
04/12/16 17:38

 

 


在java中取得当前的系统时间并且转化成自己想要的格式
     需要引进 java.util.Calendar 和 java.text.SimpleDateFormat 这两个类:

        Calendar rightNow = Calendar.getInstance();
         SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMddhhmmss");
         String sysDatetime = fmt.format(rightNow.getTime());  

    可以对 new SimpleDateFormat("yyyyMMddhhmmss") 中引号里面的格式进行编辑,转换成自己相要的格式,比如还可以转
    换成    new    SimpleDateFormat("yyyy/MM/dd    hh:mm:ss    ") 的格式。

 
文章出处:DIY部落(http://www.diybl.com/course/3_program/java/javajs/20090302/156356.html)

posted @ 2009-05-19 12:47 不高兴 阅读(191) | 评论 (0)编辑 收藏
 

Java代码
int width = 0 ;     
int height = 0 ;     
width = Toolkit.getDefaultToolkit().getScreenSize().width ;     
height = Toolkit.getDefaultToolkit().getScreenSize().height ; 


Js代码
var  Width   =   window.screen.availWidth;    
var  Height   =   window.screen.availHeight;

posted @ 2009-05-15 09:05 不高兴 阅读(663) | 评论 (0)编辑 收藏
仅列出标题
共7页: 上一页 1 2 3 4 5 6 7 
 
Copyright © 不高兴 Powered by: 博客园 模板提供:沪江博客