在一些网站中,我们虽然使用了AJAX,但是我们并不希望用户能够私自调用这些AJAX,因为有些AJAX调用会包含对数据的更新操作,即使是只读的操作,也不希望用户能在本地进行直接调用。
在 Michael Chen 的这篇文章中 http://michael.nona.name/archives/142 ,提及了ajax应用中的安全问题,并且给出了一个临时的解决方案。虽然我用的不是 Buffalo ,而是 dwr,但是这篇文章对于 dwr 仍然有帮助。
不过正如 Michael Chen 在文章中所说,他给出的解决方案没有经过详细的测试,所以我在用了一段时间之后,还真就发现了问题。
文中的解 ...
关于应用服务器和web服务器的整合,有很多的资料了,可是都讲的半生不熟的。根据这几天整合tomcat 和 iis 的经验,再次聊聊这个话题。
首先我们应该对应用服务器和web服务器有一个清晰的概念。所谓的应用服务器,就是提供应用的服务器,这里的应用有很多,比如java应用,ruby 应用,或者 c#应用。
那么什么是web服务器呢?就是提供了web功能的服务器,主要就是http服务,包括图片的下载,等等一系列和web相关的。
好吧,你会问为什么我们不能直接使用应用服务器呢?应用服务器也提供了http服务,比如tomcat。
那么我们从实际出发。当你浏览一个网页的时候,什么情况下你会觉得 ...
转一个 win2003+IIS6+Tomcat5+jk 的文档,省得以后到处找 :D
原文 [url]http://www.cnrui.cn/blog/article.asp?id=179[/url]
其中一个问题原文没有说到。当iis与tomcat整合完毕的时候,如果你输入 http://域名 ,会发现你在iis中设置的首页
根本不好使,而是显示了tomcat的管理页面。这可不是我们想要的。要解决这个问题,可以修改iis的默认显示页,把默认
的都删除掉,然后增加一个 index.htm 等等,就好了。
1,为IIS写注册表 &nb ...
参考下面的这段html:
<table id="t1">
<thead>
<td>h1</td>
<td>h2</td>
</thead>
<tbody>
<tr>
<td>11</td>
<td>12</td>
</tr>
<tr>
<td>21</td>
<td>22</td>
</tr>
</tbody>
</tabl ...
DWR中提交form的时候,数据都封装在了Map结构中。这样当提交的内容是数组的时候,就会产生问题。
例如当提交这样的内容的时候,就无法得到正确的数据:
<input type=checkbox name="c1">
<input type=checkbox name="c1">
<input type=checkbox name="c1">
因此用了一个方法来解决这个问题。在form 中,如果是数组类型的变量,那么必须使用 “变量_”的方式。
所以,上面的三个checkbox 就变成了这样子: ...
原因
当一个人做了几年web项目后,那么一定会对web开发有一些想法,一定会找找是不是有更好的方法来进行开发,来避免加班,来避免过多的新人培训。
最近帮着另外一个组做一个web项目,使用的是structs。于是java开发web应用的噩梦再次上演了。倒不是说应用有多难,但是对于那些众多的structs-config.xml. applicaitoncontext.xml, web.xml已经够够的了。当我编写一个新的功能的时候,我该做什么呢:创建一个Action,修改structs-config.xml,创建一个business,修改applicaitoncon ...
我一直认为测试驱动开发可以保证质量,如果要保证质量也必须实行测试驱动开发。我也确实是这么做的,但是就在上个周末,我辛苦“经营”的测试驱动的项目已经倒下了。 就是在上个周五的下午,客户突然说要求改动,好家伙,这个改动实在是太大了,保守的估计也需要3-5天吧。可是客户竟然要求当天晚上必须全部修改完毕! 我简直要崩溃了,我怀疑客户到底是用什么部位在进行思考,看着新的需求,脑袋一团乱,怎么可能一个下午作完3-5天的活??无奈归无奈,活还是要做滴。看着如此多,如此新的需求,我分析了半天,决定从其中一块开始入手。我打开了测试工程,在DataSet中增加了一个新的 ...
为什么质量会这么差?!当非常低级的错误出现了,当客户的指责到来了,当客户严厉的信送到了,我们傻眼了。做外包就是这样,我们处于外包链的底层,只能我们被客户骂。可是,我们的质量真的有问题。 任务多,时间紧,这当然是原因了,可是除此之外呢?做了这么多项目,为什么还会造成这样的结局?? 分析一下吧: 1、设计书理解不充分。 很多bug都是一些极其简单的错误,有些简直就是界面样子的错误。经 ...
今天下午,项目代码的review结果送回来了。一共被指摘了50多条, 。其中有这么一条,指摘的内容是我们在SQL中使用了“ not in ”这样的子查询,要求我们改成 join 方式。 这条SQL是这个样子的: select x, y, z from table_a where user_id=xxx and user_name
not in (select user_name from table_b) &nb ...
有一台服务器,CPU是1G,内存是512M,配置很低了。在上面运行着几个asp的站点,还有一个jboss的应用,此外,在jboss里还运行着一个xplanner。不过jboss的前端没有apache服务器,用户直接访问jboss。就是这么一个服务器,发现jboss的应用访问的时候特别的慢。到底是什么原因?
有可能是程序的问题。
但是程序在开发环境运行的时候,速度没有任何问题。即使在服务器上,通过log也可以看出来,后台的处理速度
&nb ...
由于项目的需要,我开始学习.NET了。正所谓“人在江湖,身不由己”,多年前,我庆幸
自己终于离开Delphi,离开了Windows的平台,可是没想到,在Java混了没几年,我又不得不
回到这个自己极度想离开的平台。
世界太小了--这句话对于开发语言来说同样适用。
因为时间比较紧,所以去附近的书店找了一本比较薄的.NET书,因为正版的光盘还没邮寄过
来,所以先借了朋友的盗版光盘去体验一下环境。
那本书虽然不是名 ...
TDD,也就是 Test Driven Development--测试驱动开发,其实是一种开发方式的巨大提高。它
提出了一种新的开发方式:以测试为驱动。在此,我仍然想引用一个曾经看过的ThoughtWorks的
一个人的Blog中的一句话:“什么是TDD?TDD就是把你的需求用测试给描述出来。”这句话一下
子让我明白了TDD的意义,并且被我个人奉为TDD中的经典 :)
归根到底,TDD的实质仍然是以需求来驱动开发,只是,TDD中把需求进一步写成了测试,那
就成了测试驱动开发了。
&n ...
历时2个月,断断续续终于看完了《领域驱动设计》。
给我的感觉就是我还需要再看一遍。
这本书讲授了复杂软件开发的解决方法,里面完全是Evans的10多年经验的教授,没有一丁点的虚无的理论。
所以,书中的每一句话都有深刻的含义,经常是一个段落,就可以让人思考很长时间。
整本书,Evans采用的全部是实际中的例子,尤其是在最后,Evans自己也对这些例子进行了总结,有成功的,
有中途夭折的,也有完全失败的。所以,Evans也说领域驱动设计到底是对是错,他也不知道,只好通过实践来
检验。
书中所描述的业务大部分都相当的复杂,所阐述的理论和很复杂,如果能一次就完全读懂,那可真了不起。
我 ...
曾经在刚刚学习java中的设计的时候,我知道了一个网站叫做Jdon.com 。这个网站有完整的模式文章,虽然内容一般,
但是很详细,很系统。
也就是从这个网站,我知道了Jdon Framework,并且从网站的论坛中,学习了很多的东西。
不过时至今日,当我好久没有去Jdon,重新去看Jdon的时候,突然发现Jdon说讨论的问题仍然是几年前的问题,但是,
当时我所不理解的东西,现在去看竟然全都理解了。
我很佩服banq,我和大师的差距就是这么大--过了几年,我才能理解他所提倡的思想。
Jdon仍然在推行Jdon Framework,这次我决定看看这个Framework了,毕竟它是Jd ...
在 Java 开发中,我们对配置文件 .properties 应该是非常熟悉,我们经常会把错误信息,还有一些label信息放到
配置文件里,然后在程序里去读取。例如程序中的代码如下:
java 代码
form.setErrorMessage(xUtil.getLabel(XConstants.login_title),
&n ...
Selenium 是 thoughtworks公司的一个集成测试的强大工具。最近参与了一个系统移植的项目,正好用到这个工具,
把一些使用心得分享给大家,希望大家能多多使用这样的强大的,免费的工具,来保证我们的质量。
Selenium 的文档现存的不少,不过都太简单了。使用Selenium的时候,我更多的是直接去看API文档,好在API不错,
一个一个看,就能找到所需要的 :-) 官方网站:http://www.openqa.org/selenium/
好,下面进入正题!
一、Selenium 的版本
Selenium 现在存在2个版本,一个叫 ...
意料之中,这个帖子被隐藏了。可惜的是帖子被隐藏了,竟然连blog也不能回复了。
我相信看我的文档的人,都没注意到我用了“模型”,而不是“原型”,不过我也
相信大部分人根本没区分这两点。
既然是模型,当然会比原型更加接近设计,这也是我的原意,缩小设计和实现之间
的跨度。
oz6同志认为这就是color-uml,不过他是否忘记了,在四色原型出现的时候,还没有
color-uml,更重要的是,我讨论的就是四色模型,而不是color-uml建模。
最具有讽刺意味的是,我故意把 moment-interval 写成了 model-interval,
可是谁也没看出来,是看出来了不屑于说呢,还是根本就没了 ...
恐怕我认识的95%的搞软件的人,在开发一个项目的时候,都会费好大力气去做一个叫做“数据库”文档的东西。
里面使用了大量的表格,文字,等等,告诉用户:你看,我已经把系统的50%设计出来了!
可是,这真的是正确的吗?如果是正确的,为什么我发现90%的情况,这个文档竟然没有被同步更新?或者直到
项目 release 阶段,才会去最后更新一次这个文档?
我终于发现了答案:项目的设计阶段,把数据库扔在一边!
到今天我们已经达到一个共识,就是数据库的操作,其实就是数据持久的操作。什么是持久?就是把一个类里需要
的数据保存到磁盘上。你可以保存到文件里,可以保存到数据库里, ...
1、环境属性
在之前的文档里,我们已经学会如何去初始化一个内容上下文,例如:
java 代码
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory"); ...
1、jndi 高级应用之 Name
1.1、什么是 Name?
这之前的文档中,我们所用的例子里,对象的名字都是 java.lang.String 类型的,也就是字符串类型。
在这个文档里,我们则会介绍一些其他的对象名字类型,如 Name,以及他们的使用方法。
我们首先会讲讲什么是字符串的名字和结构化的名字,以及它们的存在的必要性。
然后,我们会介绍2个结 ...
1、目录服务的操作
我们会用LDAP作为例子来讲解目录服务的操作。与命名服务不同,目录服务的内容上下文的初始化方式需要
改变:
java 代码
// Set up the environment for creating the initial context
Hashtable env = new Hashtable(); ...
命名服务的操作
1、寻找一个对象
为了从命名服务中找到一个对象,你可以使用 Context.lookup() 方法,只要传递给它你要寻找的对象的名字就可以。例如,在当前的
命名服务中,有一个对象的名字是“report.txt”,为了找到这个对象,你可以使用
Object obj = ctx.lookup("report.txt");
lookup 返回的对象类型,依据你的实际情况来看。命名系统里可以保存各种类型的对象,在这个例子中,& ...
1、准备工作
1.1 需要的软件环境
现在我们都已经都使用java 1.4 版本了,或者更高的版本,所以,java的版本这就不详细说了。
服务提供商(Ser ...
你真的十分了解JNDI吗?真的知道命名服务和目录服务的区别吗?
真的知道为什么有的时候 new InitContext() 会出错?原因是什么?
JNDI是J2EE的重要组成部分,让我们来好好学习一下Sun的JNDI教程吧,
把这些疑惑一一解开。
这些资料都来自Sun的JNDI教程,我会每天坚持翻译一点,但是不会全部翻译的,例如如何操作LDAP部分。
有的地方原文档有些啰嗦,我就改成简单的表达方式了。如果有翻译错的地方,请指证出来,我会修改。
1、命名服务
“命名”是计算 ...
Agile with rails 一书中详细的描述了如何进行测试,
但是在开发中,我们或许会遇到下面的情况:
用户必须登陆系统才能进行其他工作;
用户信息保存在 session 里;
登陆工作是在 单独的 controller里(如 LoginController).
这样的情况下, 当我们想对 SearchController 进行功能测试的时候,
会遇到没有权限访问action的情况.
但是我们又不能在 SearchContrller_test 里调用 LoginController_test,
那么如何处理呢?
以下是我的解决办法:
def setup
@contr ...
书的名字是
JAVAによるExtreme Programming クックブック
基于java的极限开发 cookbook
就当是练习日语了~~
- 浏览: 135187 次

- 详细资料
搜索本博客
我的相册
tdd
共 3 张
共 3 张
最新评论
-
TDD,想说爱你不容易
stevenwang 写道这个论题我喜欢。 早想写一点文字,来纪念我TDD的失 ...
-- by kozyan -
测试驱动?很傻很天真
同情,很傻很天真
-- by passyt -
BNF范式
确实很有兴趣,刚刚学习完状态机的部分,对比一下CT中状态机的实现,很有收获
-- by yananay -
BNF范式
看来你对编译知识很有兴趣, 希望你能有所突破. BNF本身并不复杂, 只是表达 ...
-- by javatar -
CT中表达式处理的思考
你考虑的很对, 当时设计时, 我也考虑过这个问题, 在编译原理中, 通常都会把" ...
-- by javatar






评论排行榜