2006-11-24

在Java中处理一些路径相关的问题的时候,如要取出ie浏览器上传文件的文件名,由于ie会把整个文件路径都作为文件名上传,需要用java.lang.String中的replaceAll或者split来处理。如:

上传文件路径为:C:\Documents and Settings\collin\My Documents\111-lazyloading.gif,欲取出文件名:111-lazyloading.gif。可以

String temp[] = name.split(”\\\\”);
if (temp.length > 1) {
name = temp[temp.length - 1];
}

regex为\\\\,因为在java中\\表示一个\,而regex中\\也表示\,所以当\\\\解析成regex的时候为\\。

由于unix中file.separator为斜杠”/”,下面这段代码可以处理windows和unix下的所有情况:

String temp[] = name.replaceAll(”\\\\”,”/”).split(”/”);
if (temp.length > 1) {
name = temp[temp.length - 1];
}

2006-11-20

当Apache既要支持tomcat又要支持php,同时如果tomcat下默认编码为UTF-8,而php的默认编码为根本312,这个时候如果 http.conf中AddDefaultCharset utf-8,则所有的php页面将显示为乱码,如果改为改为gb2312,则跑在tomcat下的应用可能会出现乱码。有两种解决的办法:

1. 给tomcat中的所有的应用都加上encoding filter,强行给response加上你需要的编码,这样,当tomcat返回的response经过apache返回到用户浏览器的过程 中,AddDefaultCharset将不会起作用。然后在把AddDefaultCharset改成php需要的编码就可以了。这种方法有一定的缺 陷,需要修改tomcat下的应用,而且如果php应用有两种不同的编码,还是会出现乱码的情况。

2. 修改http.conf中的AddDefaultCharset为AddDefaultCharset off,关闭apache默认编码,这样php的应用和tomcat下的应用都分别采用各自的编码,apache不会强行修改这些应用返回的 response的http头中的charset。

Tags: ,.
2006-11-03

对于像聊天室、在线IM这类应用,如果只是用ajax,还是有一定的缺陷,因为这些应用要求实时性很高,而传统的web应用都是基于请求-响应模式,所以需要不断的去定时刷新页面才能保准与服务器段状态的一致性,显然,对于这类应用来说,采用刷新的方式明显是在浪费资源。

有人提出了一种叫Comet的 概念,就是保持客户端与server端的http链接,这样服务器端有任何更新可以马上通过response推给客户端,可以通过设置http协议中的 keep-alive头来实现,已经有利用push技术实现的项目,如gmail中新增的在线gtalk,具体其是怎么实现还未有文档参考。

comet存在的一个问题是当在线人数太多,需要保持太多的http链接,这在性能上会带来很大问题,而且现在主流的web server都没有专门正对http push进行优化。

dojo据说已经支持comet,dwr也将在下一个版本支持。

参考资料:

Tags: ,.
2006-11-01

RoR热已经有一段时间了,还在持续,越来越多的开发人员开始关注RoR,一部分人Java开发人员已经加入RoR的队伍,开始用RoR做具体项目了。

Sun的新CEO放出话来“Java的核心部分将在3个月内开源”,可能会是Java C和Hotspot JVM部分。

未来的技术发展中,基于脚本语言的轻量级web开发框架将会继续飞速发展,互联网web2.0概念的继续深化,越来越需要能够灵活面对需求变化以及快速开发的框架和语言,RoR真是在这样的环境中催生并在短时间内在全球技术圈内吸引大量眼球和追捧。大型且需求相对复杂的系统现阶段的架构首选还是基于Java 的,毕竟Java开源社区有太多有价值的framework和library了。但面对RoR的继续发热,Java在一些领域会慢慢丢失用户,开发人员大规模转投或者开始疯狂的学习RoR的情形已经出现。Java需要有所变化,可以看到,Sun已经在这方面做出了一些努力,把JRuby团队拉入旗下,以便促进JRuby的进一步发展,包括这次决心把Java开源,也是为了更好的利用用户和社区的力量,来促进Java的发展,就如当初IBM把Eclipse开源了,看看用户和社区为Eclipse贡献的插件,如果没有这些插件,Eclipse根本不可能有今天的地位,也就不会有Borland放弃JBuilder原先的平台,而转投Eclipse平台,一心开发商业插件了。 Java开源的前景到底如何,谁也看不准,估计Sun这次也是下了很大的决心,有一点是可以看到的,有那么多Java开发人员和社区做支持,Java至少会比掌控在Sun一人手里发展的更快。

几年后的Java平台上,我们可能能够直接在上面跑PHP、python、ruby,相互之间可以在语言的层面上互相调用等,期待…

Tags: ,.
2006-10-28

用ajax方式来提交form,不能用document.forms[0].name.value这样的方式取到input radio的值。提供一个用javascript取radio值的function:

/** 输入input radio对应的name值,返回选中的radio的value */
function getRadioValue(name)
{
var l=document.getElementsByName(name)
for(i=0;i
{
if(l[i].checked) return l[i].value;
}
}

需要注意的一点是在同一个document中不要出现与input radio相同的name,否则可能带来一些问题。

Tags: .
2006-10-27

网站头像,一般显示在地址栏和tab中。如:

200610270106321

如果用一个域名的根目录就可以直接访问到你的网站,如dev.collin.cn直接可以访问这个blog,而不用通过二级目录如dev.collin.cn/blog来访问,只要把favicon.ico文件放在网站根目录下即可。

如果需要通过二级目录访问或者说想指定一个特殊路径的文件,可以通过在html文件中的head中加入一行:

<link rel=”shortcut icon” href=”${favicon_url}” type=”image/x-icon” />

${favicon_url}是favicon.ico文件对应的URL。

附:favicon图标在线制作工具

Tags: .