#
这张图片太大了。 就点击看吧:
http://www.falkhausen.de/download/diagram/img/java.util.Collection.gif
公司有困难时的三种人:
1。有问题不提出。
2。提出问题,不去想解决问题方法。
3。默默解决问题。
公司首先会开的会是2。
Google 的一些秘密入口
http://www.google.com/microsoft
微软风格的入口
http://www.google.com/mac
MAC风格的入口
http://www.google.com/linux
Linux风格的入口
http://www.google.com/bsd
FreeBSD风格的入口
Google有各种语言的版本,下面这些语言可能实在是稀罕了点儿
http://www.google.com/intl/xx-klingon/
克林冈语入口(没看过星际旅行吗?)
http://www.google.com/intl/xx-bork/
政治入口?
http://www.google.com/intl/xx-elmer/
宗教入口
http://www.google.com/intl/xx-piglatin/
小猪入口
http://www.google.com/intl/xx-hacker/
黑客专用入口
Google里还有一个小小的彩蛋游戏,大家自己去看吧!
http://www.google.com/Easter/feature_easter.html
下面是一此更有用的彩蛋
http://froogle.google.com/
作用: 通过特殊的搜索引擎,你可以在网上找到你想购物的网站位置。以及你可以很方便的搜索出同类产品的价格。
看看世界各地的商品价格,自己再买的时候心底有数多了把
http://labs.google.com/gviewer.html
作用:一个小玩具,适合那些连鼠标都懒得动的懒人。当你在google上找到了查询结果后,你可以使用google viewer让结果以自己定义的间隔时间来一条一条自动滚屏。
http://labs.google.com/cgi-bin/webquotes
作用:可以搜索出你要查询的内容在internet上被多少其他的网站引用过,可以让你知道internet上其他人对你要查询内容的观点,适合写论文和评论以及特殊用途人使用。
http://labs.google.com/glossary
作用:顾名思义了,就是一个查英语缩写语意的工具,google的词汇表
http://labs1.google.com/gvs.html
作用:给google打一个电话,说出你要查找的内容,然后google会把你要查询的结果显示出来,给不识字的人用的。
nntp协议转换rss 协议tools:
http://www.methodize.org/nntprssdouble click nntprss-start.jar
Add channel .
Delete all channels not wanted.
可以用
news://127.0.0.1 在本地开一个new Server。
1. 从文件/或者Url中获得Image.
java.awt.image包下的
Toolkit.getDefaultToolkit().createImage(Url)
Toolkit.getDefaultToolkit().createImage(File);
返回是java.awt.Image
javax.imageio包下的:
ImageIO.read(Url);
返回是BufferedImage
2. Image to bytes;
Iterator iter = ImageIO.getImageWritersByMIMEType("image/jpeg");
ImageWriter writer = iter.hasNext() ? (ImageWriter) iter.next() : null;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ImageOutputStream ios = ImageIO.createImageOutputStream(baos);
writer.setOutput(ios);
BufferedImage rendImage = null;
if (image instanceof BufferedImage) {
rendImage = (BufferedImage) image;
} else {
Frame frame = new Frame();
frame.addNotify();
MediaTracker tracker = new MediaTracker(frame);
tracker.addImage(image, 0);
tracker.waitForAll();
rendImage = new BufferedImage(image.getWidth(null),
image.getHeight(null), 1);
Graphics g = rendImage.createGraphics();
g.drawImage(image, 0, 0, null);
}
writer.write(new IIOImage(rendImage, null, null));
writer.dispose();
return baos.toByteArray();
3. 剪裁图片
起作用是ImageFilter
ImageFilter smallCropFilter =new CropImageFilter(0,0,20,20);
java.awt.Image smallImage= Toolkit.getDefaultToolkit().createImage(new FilteredImageSource(sourceImage.getSource(),smallCropFilter));
Java在Linux下不能处理图形的解决办法Java在图形处理时调用了本地的图形处理库。在利用Java作图形处理(比如:图片缩放,图片签名,生成报表)时,如果运行在windows上不会出问题。如果将程序移植到Linux/Unix上的时候有可能出现图形不能显示的错误。
提示信息:"Can't connect to X11 window server"这是由于Linux的图形处理需要一个X Server服务器。(关于Linux的图形处理模式参考htt p://www.douzhe.com/docs/fbsd2/5.htm)
解决办法:
1.如果服务器上安装有图形界面,可以通过设置环境变量:DISPALY=127.0.0.1:0.0解决。
2. 如果没有安装图形界面,可以在Java运行时加上参数:-Djava.awt.headless=true。
3. 使用PJA库来代替本地图形处理库。
参考:http://www.idautomation.com/kb/xwindow-error.html Tomcat的修改如下:
打开 %Tomcat_home%/bin/catalina.sh 文件在文件的86%处,启动Tomcat的脚本中加上:-Djava.awt.headless=true \
参考:
"$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS \
-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS"
-classpath "$CLASSPATH" \
-Dcatalina.base="$CATALINA_BASE" \
-Dcatalina.home="$CATALINA_HOME" \
-Djava.io.tmpdir="$CATALINA_TMPDIR" \
-Djava.awt.headless=true \
org.apache.catalina.startup.Bootstrap "$@" start \
>> "$CATALINA_BASE"/logs/catalina.out 2>&1 &
if [ ! -z "$CATALINA_PID" ]; then
echo $! > $CATALINA_PID fi
fielif [ "$1" = "stop" ] ; then
保存后,重新启动就可以处理图形了。
1。^\d+$ //匹配非负整数(正整数 + 0)
2。^[0-9]*[1-9][0-9]*$ //匹配正整数
3。^((-\d+)|(0+))$ //匹配非正整数(负整数 + 0)
4。^-[0-9]*[1-9][0-9]*$ //匹配负整数
5。^-?\d+$ //匹配整数
6。^\d+(\.\d+)?$ //匹配非负浮点数(正浮点数 + 0)
7。^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ //匹配正浮点数
8。^((-\d+(\.\d+)?)|(0+(\.0+)?))$ //匹配非正浮点数(负浮点数 + 0)
9。^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ //匹配负浮点数
10。^(-?\d+)(\.\d+)?$ //匹配浮点数
11。^[A-Za-z]+$ //匹配由26个英文字母组成的字符串
12。^[A-Z]+$ //匹配由26个英文字母的大写组成的字符串
13。^[a-z]+$ //匹配由26个英文字母的小写组成的字符串
14。^[A-Za-z0-9]+$ //匹配由数字和26个英文字母组成的字符串
15。^\w+$ //匹配由数字、26个英文字母或者下划线组成的字符串
16。^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$ //匹配email地址
17。^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$ //匹配url
18。匹配中文字符的正则表达式: [\u4e00-\u9fa5]
19。匹配双字节字符(包括汉字在内):[^\x00-\xff]
20。应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}
21。匹配空行的正则表达式:\n[\s| ]*\r
22。匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/
23。匹配首尾空格的正则表达式:(^\s*)|(\s*$)
* 正则表达式用例
* 1、^\S+[a-z A-Z]$ 不能为空 不能有空格 只能是英文字母
* 2、\S{6,} 不能为空 六位以上
* 3、^\d+$ 不能有空格 不能非数字
* 4、(.*)(\.jpg|\.bmp)$ 只能是jpg和bmp格式
* 5、^\d{4}\-\d{1,2}-\d{1,2}$ 只能是2004-10-22格式
* 6、^0$ 至少选一项
* 7、^0{2,}$ 至少选两项
* 8、^[\s|\S]{20,}$ 不能为空 二十字以上
* 9、^\+?[a-z0-9](([-+.]|[_]+)?[a-z0-9]+)*@([a-z0-9]+(\.|\-))+[a-z]{2,6}$邮件
* 10、\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*([,;]\s*\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)* 输入多个地址用逗号或空格分隔邮件
* 11、^(\([0-9]+\))?[0-9]{7,8}$电话号码7位或8位或前面有区号例如(022)87341628
* 12、^[a-z A-Z 0-9 _]+@[a-z A-Z 0-9 _]+(\.[a-z A-Z 0-9 _]+)+(\,[a-z A-Z 0-9 _]+@[a-z A-Z 0-9 _]+(\.[a-z A-Z 0-9 _]+)+)*$
* 只能是字母、数字、下划线;必须有@和.同时格式要规范 邮件
* 13 ^\w+@\w+(\.\w+)+(\,\w+@\w+(\.\w+)+)*$上面表达式也可以写成这样子,更精练。
14 ^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.\w+$
Spring Protlet MVC研究报告
关键词:
Portal Server , portlet , JSR-168规范
1. 关于Portal Server与portlet:
Portal的概念是基于Web的,以“应用整合”和“消除信息孤岛”为最终目的,提供单点登录、内容聚合、个性化门户定制等功能。
Portal服务器是容纳Portlet容器,支持Portlet呈现的普通或者特殊Web服务器。
Portal服务器优点:提供个性化设置、单点登录、内容聚合、信息发布、权限管理等功能,支持各种信息数据来源,并将这些数据信息放在网页中组合而成,提供个性化的内容定制,不同权限的浏览者能够浏览不同的信息内容等。
在Portal概念提出后,许多大公司都推出了各自的Portal Server:
BEA. WebLogic Portal 8.1 SP4: IBM WebSphere Portal 5.1: SunOne Portal 2005Q1等。而且每一个大公司都有各自的标准。
Portlet在Sun公司未推出标准前,各家公司的标准都不兼容,于是,类似JavaTM Servlet 2.4 Specification (JSR154)标准。 SUN推出了两个关于Portlets标准。
a) Java Portlet Specification 1.0 (JSR168), 2003年10月27日
b) Web Services for Remote Portlets 1.0, 2003年9月3日
节选自: Java Portlet Specification 1.0 (JSR168)
Portlets are web components -like Servlets- specifically designed to be aggregated in the context of a composite page.
Usually, many Portlets are invoked to in the single request of a Portal page. Each Portlet produces a fragment of markup that it s combined with the markup of other Portlets, all within the Portal page markup
其他免费Java 的portal Server: JBoss Portal 2.0, Apache Jetspeed 2, Apache Pluto 1.0.1
2. 现有Portal Server比较
a) JAVA Protal Server
a.1 Apache Pluto 1.0.1
以下是Spring Portlet Support下的pluto-spring-portlet-sample.zip 运行在Pluto后的效果:
b) MicroSoft Protal Server
b.1 Sharepoint Protal Server 2003/2005
总结: MS的protal概念与SUN提出的protal概念需要用意一样都为了整合Web应用,但没有统
一的标准。
两者开发出来的应用不能由各自的Protal Server互相运行。
3. 问题
a) 需要用Spring protlet MVC 需要一个Protal Server ,需要确定选用哪个Protal Server
b) 选用Protal Server的原因,是因为要和.net开发的protlet应用集成?还是打算和以后的java开发的prolet应用集成?
前者未经过测试,成功岸例也不多。后者因为有JSR168规范,所有support此规范的Protal Server都应该支持。
4. Spring protlet MVC 与 Spring Web MVC
The Spring Portlet MVC project provides a complete MVC layer for the JSR-168 Portlet API in the same way that Spring Web MVC does for the Servlet API.
换句话说:
Spring Web MVC 的项目 在 Web Server上运行。
Spring protlet MVC 的项目 在 Protal Server上运行。
问题:
Spring Web MVC写好的项目,经过a few改动(改继承类和protlet.xml,和Spring-Applicationcontext.xml)就可以发布在Java Protal server上。