Vikings

#

Java.util.Collection两副结构图片

 

这张图片太大了。 就点击看吧:
http://www.falkhausen.de/download/diagram/img/java.util.Collection.gif

posted @ 2006-10-09 17:39 Vikings 阅读(344) | 评论 (0)编辑 收藏

三种人

公司有困难时的三种人:

1。有问题不提出。
2。提出问题,不去想解决问题方法。
3。默默解决问题。

公司首先会开的会是2。

posted @ 2006-05-26 23:31 Vikings 阅读(143) | 评论 (0)编辑 收藏

Google 的一些秘密入口

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会把你要查询的结果显示出来,给不识字的人用的。

posted @ 2006-04-30 14:21 Vikings 阅读(235) | 评论 (0)编辑 收藏

Outlook express 看 rss feed。

nntp协议转换rss 协议tools:
http://www.methodize.org/nntprss


double click nntprss-start.jar
Add channel .
Delete all channels not wanted.

可以用news://127.0.0.1 在本地开一个new Server。

posted @ 2006-02-23 16:57 Vikings 阅读(349) | 评论 (0)编辑 收藏

InputStream , buffer概念

try {
                            String host 
= new URL(link).getHost();
                            String url 
= "http://"+ host + "/favicon.ico";
                            is 
= new URL(url).openConnection().getInputStream();
                            
byte[] buffer = new byte[5000];
                            bos 
= new ByteArrayOutputStream();
                            
int bytesRead = 0;
                            
while ((bytesRead = is.read(buffer)) > 0{
                                bos.write(buffer, 
0, bytesRead);
                            }

                            bos.flush();
                        }
catch (IOException e){
                            canDownloader 
= false;
                        }
原来要从一个InputStream里面读一个byte[],
我是这么写的:
byte[] bytes = new byte[is.avlilabel]
is.read[bytes];
原来如果is过大的话,
没有buffer,有可能读不完整。

    while ((bytesRead = is.read(buffer)) > 0{
                                bos.write(buffer, 
0, bytesRead);
        }

就没这问题了。

posted @ 2006-02-17 19:25 Vikings 阅读(876) | 评论 (0)编辑 收藏

对web.xml 的几点配置心得。包括mime-mapping

1.指定了自己的javaEncoding
(参考 http://gceclub.sun.com.cn/staticcontent/html/sunone/app7/app7-dg-webapp/ch6/ch6-4.html 
   <servlet>
        
<servlet-name>jsp</servlet-name>
        
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
        
<init-param>
            
<param-name>fork</param-name>
            
<param-value>false</param-value>
        
</init-param>
                
<init-param>
            
<param-name>javaEncoding</param-name>
            
<param-value>GB18030</param-value>
        
</init-param>
        
<init-param>
            
<param-name>xpoweredBy</param-name>
            
<param-value>true</param-value>
        
</init-param>
        
<load-on-startup>3</load-on-startup>
    
</servlet>


 2.添加rar,iso等的mime-type映射
避免在浏览器里直接打开。

<mime-mapping>
<extension>mht</extension>
<mime-type>text/x-mht</mime-type>
</mime-mapping>
<mime-mapping>
        
<extension>rar</extension>
        
<mime-type>application/octet-stream</mime-type>
    
</mime-mapping>
    
<mime-mapping>
        
<extension>iso</extension>
        
<mime-type>application/octet-stream</mime-type>
    
</mime-mapping>
    
<mime-mapping>
        
<extension>ape</extension>
        
<mime-type>application/octet-stream</mime-type>
    
</mime-mapping>
    
<mime-mapping>
        
<extension>rmvb</extension>
        
<mime-type>application/octet-stream</mime-type>
    
</mime-mapping>
    
<mime-mapping>
        
<extension>ico</extension>
        
<mime-type>image/x-icon</mime-type>
    
</mime-mapping>

   <mime-mapping>
   
<extension>doc</extension>  
<mime-type>application/msword</mime-type>  
</mime-mapping>  
<mime-mapping>  
   
<extension>xls</extension>  
   
<mime-type>application/vnd.ms-excel</mime-type>  
</mime-mapping>  
<mime-mapping>  
   
<extension>ppt</extension>  
   
<mime-type>application/vnd.ms-powerpoint</mime-type>  
</mime-mapping>


3.对html静态页面设置编码

<!--  修改下面两行以支持静态超文本的自动编码 
  
--> 
 
<mime-mapping>
  
<extension>htm</extension> 
  
<mime-type>text/html;charset=gb2312</mime-type> 
  
</mime-mapping>
 
<mime-mapping>
  
<extension>html</extension> 
  
<mime-type>text/html;charset=gb2312</mime-type> 
  
</mime-mapping>
  
</web-app>



http://sirsunny.cnblogs.com/archive/2005/08/11/212541.html

posted @ 2006-02-17 19:22 Vikings 阅读(4289) | 评论 (1)编辑 收藏

java.awt.Image 的几样经验

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, 
00null);
            }

            writer.write(
new IIOImage(rendImage, nullnull));
            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));                
                          




 

posted @ 2006-02-16 15:22 Vikings 阅读(2332) | 评论 (1)编辑 收藏

Java在Linux下不能处理图形的解决办法

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

保存后,重新启动就可以处理图形了。

posted @ 2006-02-13 18:44 Vikings 阅读(163) | 评论 (0)编辑 收藏

常用正则表达式

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+$

posted @ 2006-01-06 15:48 Vikings 阅读(4778) | 评论 (0)编辑 收藏

由Spring portlet MVC想到的

Spring Protlet MVC研究报告

关键词:

 Portal Server portlet JSR-168规范

 

1.      关于Portal Serverportlet 

Portal的概念是基于Web的,以“应用整合”和“消除信息孤岛”为最终目的,提供单点登录、内容聚合、个性化门户定制等功能。

Portal服务器是容纳Portlet容器,支持Portlet呈现的普通或者特殊Web服务器。

Portal服务器优点:提供个性化设置、单点登录、内容聚合、信息发布、权限管理等功能,支持各种信息数据来源,并将这些数据信息放在网页中组合而成,提供个性化的内容定制,不同权限的浏览者能够浏览不同的信息内容等。

 

Portal概念提出后,许多大公司都推出了各自的Portal Server:

BEA. WebLogic Portal 8.1 SP4: IBM WebSphere Portal 5.1: SunOne Portal 2005Q1等。而且每一个大公司都有各自的标准。

PortletSun公司未推出标准前,各家公司的标准都不兼容,于是,类似JavaTM Servlet 2.4 Specification (JSR154)标准。 SUN推出了两个关于Portlets标准。

a)        Java Portlet Specification 1.0 (JSR168), 20031027

b)      Web Services for Remote Portlets 1.0, 200393

节选自: 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


    总结: MSprotal概念与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上。

posted @ 2005-10-28 18:01 Vikings 阅读(1001) | 评论 (0)编辑 收藏

仅列出标题
共4页: 上一页 1 2 3 4 下一页