What is Clearsilver?
Clearsilver is a fast, powerful, and language-neutral HTML template system. In both static content sites and dynamic HTML applications, it provides a separation between presentation code and application logic which makes working with your project easier.
The design of Clearsilver began in 1999, and evolved during its use at onelist.com, egroups.com, and Yahoo! Groups. Today many other projects and websites using it.
Why use Clearsilver?
High Performance and Language Neutral. Because Clearsilver is written as a C-library, and exported to scripting languages like Python, Perl, Java and Ruby via modules, it is extremely fast. This also means you can work with the same template system independent of the language your project is in.
Pluggable Look and Feel. Clearsilver makes it easy to face lift a site by providing a new set of templates. It is possible to easily run more than one look and feel at once, and share components with a base look and feel to reduce maintenance.
Internationalization Support. Clearsilver makes it trivial to support internationlization. You write your templates in your native language and included tools automatically extract and catalog language strings for translation.
Advanced features. Built in support for advanced features such as gzip compression, smart whitespace stripping, parametric macros, online debugging mode, url and javascript string escaping, and more.
How can I learn more?
The Clearsilver documentation explains both the theory of operation for Clearsilver itself, the C-api, and the extension module APIs.
2007年12月26日星期三
Clearsilver HTML template system
用户登录的管理
http://pajhome.org.uk/crypt/md5/auth.html
Introduction
The most common use of the hash scripts is to protect login passwords. Here I explain how do this in a way that provides as much security as possible.
Improved Persistent Login Cookie Best Practice
Charles Miller's article, "Persistent Login Cookie Best Practice," describes a relatively secure approach to implementing the familiar "Remember Me" option for web sites. In this article, I propose an improvement that retains all the benefits of that approach but also makes it possible to detect when a persistent login cookie has been stolen and used by an attacker.
网站布局设计的相关分析
Layout Design Requirements Analysis Conduct a layout design requirements analysis before you actually design the layout. This will ensure that you create a website look and feel that not only looks good but hits the mark.
- Do you have a logo ready? If not, this is a priority as the site style and colors will have to blend with the logo.
- Do you have a byline ready?
- What do you want the site to communicate?
- What do you want a visitor to do on the site? List the sequence of events you would like the visitor to go through.
- How will you define the success of the site?
- Who is your target audience?
- What kind of colors would your target audience like?
- What kind of graphic style would your target audience like?
- Are there any competitor sites that you would like to use as a benchmark? What are they doing well on their site?
- Are there any sites that have a look and feel that is attractive to your target audience? List them.
- Based on the above criteria have you selected any graphics you would like to use? This is an important step as the layout colors may need to blend with the graphics.
- Have you got the site plan ready? What will be the main menu and sub menu items?
- What should be highlighted throughout the site and on the homepage in particular?
- Will there be a site search? If so, what are the fields and how much space will it occupy?
- Will there be a newsletter signup or login? Will these fields appear on all pages?
- Will you have advertising on the site, if so is there a specified area and size to be allocated for this?
Trac Project Management
一个项目管理系统,用网页作为界面。
http://trac.edgewall.org/
Trac is a lightweight project management tool that is implemented as a web-based application. Trac is written in the Python programming language and needs a database (either SQLite, PostgreSQL, or MySQL works). For HTML rendering, Trac uses the ClearSilver templating system.
2007年12月24日星期一
How to kill a process under DOS/WINDOWS?
http://www.tech-recipes.com/rx/446/xp_kill_windows_process_command_line_taskkill
Use taskkill command.
>>help taskkill
TASKKILL [/S system [/U username [/P [password]]]]
{ [/FI filter] [/PID processid | /IM imagename] } [/T] [/F]
Description:
This tool is used to terminate tasks by process id (PID) or image name.
Parameter List:
/S system Specifies the remote system to connect to.
/U [domain\]user Specifies the user context under which the
command should execute.
/P [password] Specifies the password for the given user
context. Prompts for input if omitted.
/FI filter Applies a filter to select a set of tasks.
Allows "*" to be used. ex. imagename eq acme*
/PID processid Specifies the PID of the process to be terminated.
Use TaskList to get the PID.
/IM imagename Specifies the image name of the process
to be terminated. Wildcard '*' can be used
to specify all tasks or image names.
/T Terminates the specified process and any
child processes which were started by it.
/F Specifies to forcefully terminate the process(es).
/? Displays this help message.
Filters:
Filter Name Valid Operators Valid Value(s)
----------- --------------- -------------------------
STATUS eq, ne RUNNING |
NOT RESPONDING | UNKNOWN
IMAGENAME eq, ne Image name
PID eq, ne, gt, lt, ge, le PID value
SESSION eq, ne, gt, lt, ge, le Session number.
CPUTIME eq, ne, gt, lt, ge, le CPU time in the format
of hh:mm:ss.
hh - hours,
mm - minutes, ss - seconds
MEMUSAGE eq, ne, gt, lt, ge, le Memory usage in KB
USERNAME eq, ne User name in [domain\]user
format
MODULES eq, ne DLL name
SERVICES eq, ne Service name
WINDOWTITLE eq, ne Window title
NOTE
----
1) Wildcard '*' for /IM switch is accepted only when a filter is applied.
2) Termination of remote processes will always be done forcefully (/F).
3) "WINDOWTITLE" and "STATUS" filters are not considered when a remote
machine is specified.
Examples:
TASKKILL /IM notepad.exe
TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
TASKKILL /F /IM cmd.exe /T
TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"
TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe
TASKKILL /S system /U domain\username /FI "USERNAME ne NT*" /IM *
TASKKILL /S system /U username /P password /FI "IMAGENAME eq note*"
2007年12月20日星期四
FeedPowered Advertising
http://www.pheedo.com/
Advertising, it's time to meet RSS.
Transform your RSS feeds into high-powered advertising
Pheedo’s FeedPowered™ advertising platform converts your RSS feeds into rich, dynamically updating advertising that engages your audience. Leverage your existing RSS assets to extend your brand, drive traffic, and acquire new feed subscribers.
Ads that update...automatically
Pheedo retrieves your RSS feed several times an hour and updates your FeedPowered advertisements with any newly published items. Great for time-sensitive content and frequently updated offers.
Unlock the power of social media
Pheedo's Engagement Triggers™ make it easy for your audience to interact with your brand and share your content and offers with friends - directly from the ad unit.
Video meets RSS
Using RSS to syndicate your video content? Pheedo can super-charge your video distribution efforts with our FeedPowered™ video services.
什么是OpenCV
OpenCV是Intel®开源计算机视觉库。它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。
[编辑]
重要特性
OpenCV 拥有包括 300 多个C函数的跨平台的中、高层 API。它不依赖于其它的外部库——尽管也可以使用某些外部库。
OpenCV 对非商业应用和商业应用都是免费(FREE)的。(细节参考 license)。
OpenCV 为Intel® Integrated Performance Primitives (IPP) 提供了透明接口。 这意味着如果有为特定处理器优化的的 IPP 库, OpenCV 将在运行时自动加载这些库。 更多关于 IPP 的信息请参考: http://www.intel.com/software/products/ipp/index.htm
http://rssad.jp/ RSS广告
RSS広告社はRSS関連広告、コンテンツ連動型広告のスペシャリストとして、より高い効果のマッチング広告を提供していきます
RSS広告社は、「創造性」と「技術力」をベースに、インターネット広告の世界でイノベーションを起こし続けていく企業です。我々は常に「次に来る波」を追いかけつつ、インターネット広告の新しい可能性を追求していきます。
コンテンツ連動型広告とはhttp://rssad.jp/enlighten.html
Zenoss - Open Source Application, Server, and Network Management
http://www.zenoss.com/product/
Zenoss provides a complete suite of software and services help you succeed in monitoring your IT infrastructure. Our software provides a single, integrated solution for monitoring your entire IT infrastructure - network, servers, applications, across the full lifecycle - inventory, configuration, availability, performance, events.
Through our unique approach our goal is to overcome the common hurdles to achieving effective IT monitoring and management.
RRDTool - logging and graphing Tools
开源的日志和图表工具,Linux下,可以用很多种脚本语言来建立相应的应用程序。
http://oss.oetiker.ch/rrdtool/index.en.htmlLogging & Graphing
RRDtool is the OpenSource industry standard, high performance data logging and graphing system for time series data. Use it to write your custom monitoring shell scripts or create whole applications using its Perl, Python, Ruby, TCL or PHP bindings.
http://www.bugfree.org.cn/
和bugzilla类似的一个中文的Bug管理系统,开源世界似乎喜新厌旧。不过这个是中文用户做的,可能更容易被中国的开发人员接受。
这是一个自由软件,他们甚至在网站上声明不会在任何地方放置广告。
它和Bugzilla的区别在:
BugFree 的7种解决方案都来自于微软内部的bug管理工具Product Studio。按照多年的使用经验,基本涵盖了所有的可能。对比如下:
BugFree Bugzilla 说明 Fixed Fixed 已修复 By Design Invalid 不是问题,设计需求就是这么设计的 Won’t Fix Wontfix 无法修改 Duplicate Duplicate 重复的问题. Not Repro Worksforme 无法重现 External Moved 表示外部原因(比如浏览器、操作系统、其他软件)造成的问题 Postponed Later 以后版本解决 Remind 保留 除了Remind (作为是一种临时的状态,作用不大)是Bugzilla独有的一个解决方案,其他只是名字不同,但作用大致是相同的。
TaskCN.com 任务中国
所谓任务就是某项工作,比如设计公司logo,开发网站,甚至是一句话广告的征集。
在这个网站上明码标价,注册用户可以承接竞标。
适合于各种自由职业的人参与。
2007年12月19日星期三
用javascript禁止右键等盗取网页内容的技巧
http://topic.csdn.net/t/20061220/16/5244445.html
1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键
<table oncontextmenu="return(false)"><td>no</table> 可用于Table
2. <body onselectstart="return false"> 取消选取、防止复制
3. onpaste="return false" 不准粘贴
4. oncopy="return false;" oncut="return false;" 防止复制
5. <link rel="Shortcut Icon" href="favicon.ico"> IE地址栏前换成自己的图标
6. <link rel="Bookmark" href="favicon.ico"> 可以在收藏夹中显示出你的图标
7. <input style="ime-mode:disabled"> 关闭输入法
8. 永远都会带着框架
<script language="JavaScript"><!--
if (window == top)top.location.href = "frames.htm"; //frames.htm为框架网页
// --></script>
9. 防止被人frame
<script language="JAVASCRIPT"><!--
if (top.location != self.location)top.location=self.location;
// --></script>
10. 网页将不能被另存为
<noscript><iframe src="">";</iframe></noscript>
11. <input type=button value=查看网页源代码
onclick="window.location = "view-source:"+ "http://www.williamlong.info"">
12.删除时确认
<a href="javascript:if(confirm(" location="boos.asp?&areyou=删除&page=1">删除</a>
13. 取得控件的绝对位置
//Javascript
<script language="Javascript">
function getIE(e){
var t=e.offsetTop;
var l=e.offsetLeft;
while(e=e.offsetParent)
alert("top="+t+"/nleft="+l);
}
</script>
//VBScript
<script language="VBScript"><!--
function getIE()
dim t,l,a,b
set a=document.all.img1
t=document.all.img1.offsetTop
l=document.all.img1.offsetLeft
while a.tagName<>"BODY"
set a = a.offsetParent
t=t+a.offsetTop
l=l+a.offsetLeft
wend
msgbox "top="&t&chr(13)&"left="&l,64,"得到控件的位置"
end function
--></script>
14. 光标是停在文本框文字的最后
<script language="javascript">
function cc()
{
var e = event.srcElement;
var r =e.createTextRange();
r.moveStart("character",e.value.length);
r.collapse(true);
r.select();
}
</script>
<input type="text" name="text1" value="123" onfocus="cc()">
15. 判断上一页的来源
javascript:
document.referrer
破解的方法,以上的方法都是利用javascript的相关函数取代一些默认操作的反应,那么如果禁止javascript,整个网页就是不设防的了,你想怎么拷贝就怎么拷贝。
2007年12月17日星期一
PayPal Accounts Review Department.
the link
https://www.paypal.com/us/cgi-bin/webscr?cmd=_login-run
links to another position:http://72-17-174-93.wpb.fdn.com/www.paypal.com/cgi-bin/index.php
which is reported to be a phishing site and blocked by firefox.
Hopefully you don't get hacked!
We recently noticed one or more attempts to log in to your PayPal account from a foreign IP address.
If you recently accessed your account while traveling, the unusual log in attempts may have been initiated by you. However if you are the rightful holder of the account,click on the link below to log into the account and follow the instructions.
https://www.paypal.com/us/cgi-bin/webscr?cmd=_login-run
If you choose not to complete the request, you give us no choice but to suspend your account temporary.
It takes at least 72 hours for the investigation in this case and we strongly recommend you to verify your account at that time.
If you received this notice and you are not the authorized account holder, please be aware that it is in violation of PayPal policy to represent oneself as an other PayPal user.Such action may also be in violation of local, national, and/or international law. PayPal is committed to assist law enforcement with any inquires related attempts to missapropriate personal information with the intent to commit fraud or theft. Information will be provided at the request or law enforcement agencies to ensure that perpetrators are prosecuted to the fullest extent of the law.
Thanks for your patience as we work together to protect your account.
PayPal Account Review Department.
--------------------------------------------------------------------------------
Please do not reply to this email. This mailbox is not monitored and you will not receive a response.
For assistance, log in to your PayPal account and click the Help link located in the top right corner of any PayPal page.
--------------------------------------------------------------------------------
PayPal Email ID PP00145
2007年12月16日星期日
web.archieve.org 网页档案馆
2007年12月13日星期四
怎样修改google的广告?NO!
今天收到了google Adsense的来信,说网站上的搜索框,修改了原来的代码。
为了检索方便,我在google原来的搜索框中添加了默认的关键字,修改了搜索按钮的名字,还有的搜索框,我把google的图标定向到了我们网站的搜索页面。所有的这些都给用户提供了方便,因为用户可以省去输入关键字的麻烦,但是所有这些都违反了Google Adsense的规定。
不过还好,google adsense说给72小时处理,因为有的广告上会马上取消你的帐号,不再让你登录了,你之前的所有收入也都会蒸发掉。
怎样做对google来说比较友好的网页呢,google提供了很多建议,如下面的链接就给出了google给网站管理员的建议。
http://www.google.com/support/webmasters/bin/topic.py?topic=8456
2007年12月9日星期日
2007年12月6日星期四
Chart API
前段时间找到了一个JavaScript的Chart绘图表的代码库,叫做PlotKit
PlotKit is a Chart and Graph Plotting Library for Javascript. It has support for HTML Canvas and also SVG via Adobe SVG Viewer and native browser support.
PlotKit is fully documented and there is a quick tutorial to get you started.
PlotKit is a complete rewrite of CanvasGraph. It is better structured and supported.
这里也有一个画图表的JavaScript Diagram Builder
http://www.lutanho.net/diagram/
The JavaScript Diagram Builder v. 3.3 is a library of some objects and functions, which can help you to display a coordinate diagram (resp. a chart or graph) in your webpage in an easy way. The file 'diagram.js' contains all the necessary objects and functions. This file must be included in the header of your webpage:
今天发现原来google也提供了Chart API http://code.google.com/apis/chart/
而且已经有了中文版的文档,http://labs.cloudream.name/google/chart/api.html
还有图形化生成图片URL代码的网站
http://charts.hohli.com/
还有一个也是在code.google中的JavaScript的Plot库,http://code.google.com/p/flot/
Flot is a pure Javascript plotting library for jQuery. It produces graphical plots of arbitrary datasets on-the-fly client-side.
The focus is on simple usage (all settings are optional), attractive looks and interactive features like zooming.
Although Flot is easy to use, it is also advanced enough to be suitable for Web 2.0 data mining/business intelligence purposes which is its original application.
The plugin is targeting all newer browsers. If you find a problem, please report it. Drawing is done with the
这个库的例子包括官方的例子
http://people.iola.dk/olau/flot/examples/
使用Flot的网站:http://aegis.ucolick.org/products/MTR/explore.html
今天又查了一下YUI,Yahoo提供的免费的一个库,里面也有不错的Chart Control,生成的是swf的图片,有较好的互动效果,如鼠标指的位置显示相应的数据说明。
这里是一个数据说明,当然,缺点是需要用户安装了swf才能看到你的图片结果。
http://developer.yahoo.com/yui/examples/charts/charts-quickstart.html
2007年12月5日星期三
Java Web层框架比较
标 题: Java Web层框架比较 zz
发信站: 水木社区 (Thu Dec 6 00:22:49 2007), 站内
http://hi.baidu.com/darcywang/blog/item/e58c540690d4b078020881ae.html
Java Web层框架比较—— 比较JSF、Spring MVC、Stripes、Struts 2、Tapestry和Wicket2007年11月22日星期四 上午 10:58 【译者按】这是Matt Raible在今年6月24-27号召开的JA-SIG夏季会议上所作的主题演讲,Matt从众多方面对Java Web层框架做了一个全面、深入的比较。笔者认为这是一份及时的文档,它对开发者如何判定一个Web层框架的好坏、如何选择适合自己项目的框架有极大的指导作用。本文是对Matt Raible演讲稿的整理归纳。
【作者介绍】Matt Raible,开源框架AppFuse的发起者、主要开发者;《Professional JSP 2.0》、《Spring Live》等书的作者;众多会议的演讲者,MySQL User Conference, ApacheCon, ApacheCon EU等;现任Raible Designs的CEO。
首先,Matt以自己的实践经验,指出了Java Web层框架——JSF、Spring MVC、Stripes、Struts 2、Tapestry和Wicket他们各自的优、缺点:
JSF
优点:
Java EE标准,这意味着有很大的市场需求和更多的工作机会
上手快速并且相对容易
有大量可用的组件库
缺点:
大量的JSP标签
对REST和安全支持不好
没有一个统一的实现。既有SUN的实现,又有Apache的实现——MyFaces。
Spring MVC
优点:
对覆盖绑定(overriding binding)、验证(validation)等提供生命周期管理
与许多表示层技术/框架无缝集成:JSP/JSTL、Tiles、Velocity、FreeMarker、Excel、XSL、PDF等
便于测试——归功于IoC
缺点:
大量的XML配置文件
太过灵活——没有公共的父控制器
没有内置的Ajax支持
Stripes
优点:
不需要书写XML配置文件
良好的学习文档
社区成员很热心
缺点:
社区比较小
不如其他的项目活跃
ActionBean里面的URL是硬编码的
Struts 2
优点:
架构简单——易于扩展
标记库很容易利用FreeMarker或者Velocity来定制
基于控制器或者基于页面的导航
缺点:
文档组织得很差
对新特征过分关注
通过Google搜索到的大多是Struts 1.x的文档
Tapestry
优点:
一旦学会它,将极大地提高生产率
HTML模板——对页面设计师非常有利
每出一个新版本,都会有大量的创新
缺点:
文档过于概念性,不够实用
学习曲线陡峭
发行周期长——每年都有较大的升级
Wicket
优点:
对Java开发者有利(不是Web开发者)
页面和显示绑定紧密
社区活跃——有来自创建者的支持
缺点:
HTML模板和Java代码紧挨着
需要对OO有较好的理解
Wicket逻辑——什么都用Java搞定
接着,Matt通过采访这些框架的作者,与他们讨论各种开源的Java Web框架,并且突出各个框架的长处、听取框架作者对其他框架的看法,希望借此了解这些框架的未来发展方向。
下列是一些被采访者:
JSF, Jacob Hookom
RIFE, Geert Bevin
Seam, Gavin King
Spring MVC, Rob Harrop
Spring Web Flow, Rob Harrop and Keith Donald
Stripes, Tim Fennell
Struts 1, Don Brown
Tapestry, Howard Lewis Ship
Trails, Chris Nelson
Struts 2, Patrick Lightbody
Wicket, Eelco Hillenius
Matt对采访做了如下总结:
JSF:
如果你想让web应用具有类似桌面程序的功能性,那么JSF的标准规范和大量第三方组件库的支持值得你 信赖。
Spring MVC:
综合了许多不同的技术,这使得它可以被广泛地应用到不同类型的项目中去;它可以被当作web应用开发的一个基础平台。
Stripes:
可以被应用到存在大量复杂数据交互的程序中;有强大的类型转换、绑定和验证功能;可以使管理大的复杂表单以及直接映射它们到域对象变得简单……
Tapestry:
在中到大型项目中,表现突出(当然,你也可以只把它应用到单个页面上),在这些项目中,你可以通过简单地创建新的组件起到杠杆作用。
Struts 2:
通常更适合于那些希望可以真正开始做事并且愿意花费大量时间来学习他们使用的开源工具的小项目组。Struts 2的目标不是那些更喜欢拖放式开发的“扶手椅程序员”。
Wicket:
非常适合于这样的内/外部网应用:UI很复杂并且你希望可以充分利用你的开发者资源。
上面的总结,基本是突出了各个框架的长处。然而,哪些又是他们不好的地方呢?
Matt提出了评价一个框架好坏与否的标准:
Ajax支持 是不是内置了?是否便于使用?
书签能力 用户能否将某个页面收藏起来并且可以方便地返回到该页面?
验证 使用是否简单?是否支持客户端(JavaScript)验证?
可测试性 脱离容器测试控制器,是否足够简单?
提交和重定向 框架如何处理重复提交问题?
国际化 如何支持国际化?控制器利用国际化信息,是否容易?
页面修饰 框架支持哪种类型的页面修饰/组成机制?
社区和技术支持 提出问题,能否被快速地、恭敬地回答?
开发工具 是否有支持这个框架的好的工具,尤其是IDE?
市场需求 学习了这个框架,它能否帮你找到份工作?
岗位数量 在dice.com和indeed.com上,对这个框架技能的需求如何?
笔者认为这个评价标准,值得大家借鉴。
然后,Matt按照这些评价标准,对各个框架做了以下阐述:
Ajax支持
JSF:没有内置的Ajax支持,需要使用ICEfaces和Ajax4JSF
Stripes:没有对应的类库,支持流输出
Struts 2:内置Dojo,有用于GWT和JSON的插件
Spring MVC:没有对应的类库,需要使用DWR和Spring MVC扩展
Tapestry:Tapestry 4.1中,有内置的Dojo
Wicket:有Dojo和Script.aculo.us支持
书签能力
JSF:可以任意提交——URL甚至不被考虑
Stripes:使用约定,但是你可以不加理会
Struts 2:有命名空间的概念,这使得收藏某个页面并返回变得容易
Spring MVC:允许完全的URL控制
Tapestry:依然存在一些丑陋的URL
Wicket:允许装配(mount)页面/URL
验证
JSF:默认的国际化信息丑陋,但是配置简单
Stripes和Wicket:用Java类进行验证——不支持客户端验证
Struts 2:使用OGNL完成强大的表达式验证功能;只有在Action上指定了规则,才支持客户端验证。
Spring MVC:允许你使用公共验证器——这是一种成熟的解决方案
Tapestry:有健壮的验证功能——不需自定义就有漂亮的国际化信息
可测试性
Spring MVC和Struts 2:允许利用mocks(例如EasyMock、jMock和Spring Mocks)简单地进行测试
Tapestry:测试困难,因为页面类被抽象、具体类被简化
JSF:页面类可以方便地被测试,实际上很像Struts 2 中的actions
Wicket:有WicketTester——一个强大的解决方案
Stripes:有Servlet API Mocks和MockRoundtrip
提交和重定向
解决重复提交问题的最简单方法是:在提交后重定向
Spring MVC:允许你将参数加到重定向URL上
Stripes、Tapestry和Wicket:有“flash式”的支持
Struts 2:需要一个自定义的解决方案
JSF:需要一个自定义的解决方案,国际化信息很难加入到页面bean中
国际化
JSTL的
Stripes、Spring MVC和JSF:每个地区使用一个资源绑定文件
Struts 2、Tapestry和Wicket:提倡把每个页面/action用到的资源文件分开
JSF:需要在每个页面上定义资源绑定信息
Tapestry:标签比较可怕
页面修饰
Tiles能够用于Struts 2、Spring MVC和JSF中;需要对每个页面进行配置。
SiteMesh能够用于所有的这些框架中(不推荐在JSF、Tapestry或者Wicket中使用);在设置完成后, 只需要很少的维护。
开发工具
Spring MVC:Spring IDE,但是只做XML校验,不是一个UI/web工具
Struts 2:Eclipse
Tapestry:Spindle,对编码者非常有利
JSF:众多IDE支持,并且做得越来越好
Stripes和Wicket:没有任何官方工具
NetBeans目前支持Struts *、JSF(+Facelets)、Tapestry和Wicket,尚不支持Stripes和Spring MVC
市场需求
Struts 1:需求依然很大并且被广泛使用
Spring MVC:越来越受关注,但大部分是因为Spring框架的一些其他特征
JSF:很快地变得流行起来
Struts 2:正在获得地盘,但是相关的工作机会很少
Tapestry:在过去的数年里,受欢迎程度不断增加
Wicket和Stripes:还是未知数
通过以上的比较,我想大家对在自己的项目中应该选择哪种Web层框架,应该有了更清醒的认识。
最后,Matt列出了一些相关资源,也供读者参考。
Struts - http://struts.apache.org
StrutsTestCase: http://strutstestcase.sf.net
Spring MVC - http://www.springframework.org
Spring IDE: http://www.springide.org
Gaijin Studio: http://gaijin-studio.sf.net
Struts 2 - http://opensymphony.org/webwork
Eclipse Plugin: http://sf.net/projects/eclipsework
?IDEA Plugin: http://wiki.opensymphony.com/display/WW/IDEA+Plugin
Tapestry - http://tapestry.apache.org
http://spindle.sourceforge.net
JSF - http://java.sun.com/j2ee/javaserverfaces and http://myfaces.apache.org
Java Studio Creator: http://sun.com/software/products/jscreator
MyEclipse: http://myeclipseide.com
IDEA: http://www.jetbrains.com/idea
SiteMesh: http://opensymphony.com/sitemesh
Testing Frameworks
JUnit: http://junit.org
EasyMock: http://easymock.org
jMock: http://jmock.org
jWebUnit: http://jwebunit.sourceforge.net
Canoo WebTest: http://webtest.canoo.com
Tapestry Test Assist: http://howardlewisship.com/blog/2004/05/tapestry-test-assist.html
AppFuse - http://appfuse.org
演讲的最后,Matt以一句“If it works, use it!”作为结尾,可谓精辟!
通过此文,相信大家可以拨开当前Java Web层框架选用上的“迷雾”,见得“月明”了。
原演讲稿请参见:http://raibledesigns.com/rd/entry/ja_sig_comparing_java_web。
DOS command for Batch file.
The start command is an internal command that is available in the below Microsoft Operating Systems.
http://www.computerhope.com/starthlp.htm
For some command for the batch file see:
http://www.aumha.org/a/batches.php