蜗牛的JAVA外壳

┎Running Snail┒ ┖ -------------- ┚

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  13 Posts :: 0 Stories :: 10 Comments :: 0 Trackbacks

2007年4月22日 #

     摘要: 我写了一个Feed提取小程序,但有时由于Feed长时间无响应,所以需要去判断是否超时,以下的程序 主线程:  1package test.thread;  2  3import com.sun.syndication.feed.synd.SyndFeed;  4  5public class ...  阅读全文
posted @ 2008-01-09 16:31 会跑的蜗牛 阅读(1941) | 评论 (0)编辑 收藏

由于现在跟其他站点合作,遇到跨域问题,在JQuery中的$.get有一个彩蛋可以使用
服务器A(192.168.0.102):test.jsp
1<%@ page contentType="text/html; charset=GBK" %>
2<%request.setCharacterEncoding("GBK");%>
3var cardNames = new Array('hh', 'unser');
4var cardMails = new Array('unser@gd165.com', 'gdunser@gmail.com');

服务器B(192.168.0.101):test.htm
 1<HTML>
 2<HEAD>
 3<script language="JavaScript" src="/common/js/jquery-1.2.1.pack.js"></script>
 4
 5</HEAD>
 6<BODY>
 7<SCRIPT>
 8$.get("http://192.168.0.102/test.jsp",
 9    { names: "c" }
10    function(data)
11        alert("Data Loaded: " + cardNames);
12        
13        for (i=0;i<cardNames.length;i++)
14        {
15            alert(cardNames[i]);
16        }

17    }
,
18    "script"
19);
20
</SCRIPT>
21</BODY>
22</HTML>
posted @ 2007-12-21 17:13 会跑的蜗牛 阅读(4785) | 评论 (5)编辑 收藏

今天发现执行mysql的 REPLACE INTO 的时候mysql返回 #1114 - The table ‘xxxx’ is full
这个错误。。。
以前没有遇到过,于是查找资料解决这个问题。。。

得知是由于内存表的大小超过了规定的范围,于是搜索解决方法,
网上提到的有两种解决方法,
一种是修改tmp_table_size参数,另外一种是修改max_heap_table_size参数。。。

[root@localhost etc]# vi /etc/rc.d/init.d/mysql
找到
$bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file >/dev/null 2>&1 &
修改为
$bindir/mysqld_safe --datadir=$datadir --pid-file=$pid_file -O tmp_table_size=64M -O max_heap_table_size=32M >/dev/null 2>&1 &

重启mysql
[root@localhost etc]# /usr/bin/mysqladmin -u root -p shutdown
Enter password:
[root@localhost etc]# /etc/init.d/mysql start
[root@localhost etc]# mysql

查看是否己修改

mysql> show variables like '%max_heap_table_size%';
+---------------------+----------+
| Variable_name       | Value    |
+---------------------+----------+
| max_heap_table_size | 33553408 |
+---------------------+----------+
1 row in set (0.00 sec)

mysql> show variables like '%tmp_table_size%';
+----------------+----------+
| Variable_name  | Value    |
+----------------+----------+
| tmp_table_size | 67108864 |
+----------------+----------+
1 row in set (0.00 sec)

己经修改成功!
注意:修改参数值是按照M单位来计算的。。。
posted @ 2007-12-05 12:00 会跑的蜗牛 阅读(1381) | 评论 (0)编辑 收藏

平台:Linux + Oracle 9i
原因:服务器重启后,导致另一个数据库实例无法启动,报不同的错误
解决过程:
1、先修改默认ORACLE_SID
[root@localhost root]# su - oracle
[root@localhost root]export ORACLE_SID=blogjava

2、登录数据库,启动数据库
[oracle@localhost oracle]$ sqlplus /nolog

SQL> conn / as sysdba
Connected.
SQL> startup;

出现错误:ORA-01078: failure in processing system parameters
                    LRM-00109: could not open parameter file '/oracle/product/9.2/dbs/initblogjava.ora'

3、创建initblogjava.ora文件
[oracle@localhost oracle]$vi '/oracle/product/9.2/dbs/initblogjava.ora
在文件里面输入:spfile=/oracle/product/9.2/dbs/spfileblogjava.ora
注意:一定要在oracle用户创建,要不然会出现权限不足(ORA-01031: insufficient privileges)的错误。

4、创建spfile文件
[oracle@localhost oracle]$ sqlplus /nolog

SQL> conn / as sysdba
Connected.
SQL> create spfile from pfile='/oracle/admin/blogjava/pfile/init.ora';
创建后,在/oracle/product/9.2/dbs/生成spfileblogjava.ora

5、启动数据库
[oracle@localhost oracle]$ sqlplus /nolog

SQL> conn / as sysdba
Connected.
SQL> startup;


启动成功!
posted @ 2007-11-27 14:54 会跑的蜗牛 阅读(1326) | 评论 (0)编辑 收藏

很多时候我们需要提供这样的功能给访问者:当访问者点击页面中的缩略图时,其对应的全尺寸图片将显示在一个新的弹出窗口中供访问者查看。

实现此功能的最简单作法是用以下HTML代码创建一个图像链接:
<a href="fullsize.jpg" target="_blank"><img src="small.jpg"></a> 
其中<a>标记的href属性指定全尺寸图片的URL,target属性设置为_blank指定在新窗口中显示该图片;<img>标记的src属性指定缩略图的URL。

如果我们想对显示全尺寸图片的窗口的外观进行某些控制(比如希望弹出窗口的高度、宽度能与全尺寸图片的大小匹配时),则可调用  window.open 方法,该方法接收三个参数,分别指定要打开文件的URL,窗口名及窗口特性,在窗口特性参数中可指定窗口的高度、宽度,是否显 示菜单栏、工具栏等。以下代码将显示全尺寸图片在一个没有工具栏、地址栏、状态栏、菜单栏,宽、高分别为400、350的窗口中:
<a href="fullsize.jpg"
onClick="window.open(this.href,'', 'height=350,width=400,toolbar=no,location=no,
status=no,menubar=no');return false"><img src="small.jpg"></a>

这里就提出了个问题,如果所有全尺寸图片都具有统一的大小(比如都是400x350),那么以上代码适用于所有的缩略图片链接(只是href属性指向的 全尺寸图片文件不同)。但如果全尺寸图片的大小并不统一,还用以上代码则我们需要先取得每幅全尺寸图片的大小,然后在window.open方法的窗口特 性参数中一一设置height和width为正确的值,在图片数量较多的情况下,这显然效率太低了。那么是否有一劳永逸的方法,即让弹出窗口能自动适应要 显示图片的大小?通过研究,发现可以使用 DHTML 中的 Image 对象来达到我们的目的,Image 对象可动态装载指定的图片,通过读取其  width 和 height 属性即能获得装入图片的大小,以此来设置弹出窗口的大小,即可实现自适应图片大小的弹出窗口了。下面即是实现代码:

<script language="JavaScript" type="text/JavaScript">
<!--
var imgObj;
function checkImg(theURL,winName){
  
// 对象是否已创建
  if (typeof(imgObj) == "object"){
    
// 是否已取得了图像的高度和宽度
    if ((imgObj.width != 0&& (imgObj.height != 0))
      
// 根据取得的图像高度和宽度设置弹出窗口的高度与宽度,并打开该窗口
      // 其中的增量 20 和 30 是设置的窗口边框与图片间的间隔量
      OpenFullSizeWindow(theURL,winName, ",width=" + (imgObj.width+20+ ",height=" + (imgObj.height+30));
    
else
      
// 因为通过 Image 对象动态装载图片,不可能立即得到图片的宽度和高度,所以每隔100毫秒重复调用检查
      setTimeout("checkImg('" + theURL + "','" + winName + "')"100)
  }
}

function OpenFullSizeWindow(theURL,winName,features) {
  
var aNewWin, sBaseCmd;
  
// 弹出窗口外观参数
  sBaseCmd = "toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,";
  
// 调用是否来自 checkImg 
  if (features == null || features == ""){
    
// 创建图像对象
    imgObj = new Image();
    
// 设置图像源
    imgObj.src = theURL;
    
// 开始获取图像大小
    checkImg(theURL, winName)
  }
  
else{
    
// 打开窗口
    aNewWin = window.open(theURL,winName, sBaseCmd + features);
    
// 聚焦窗口
    aNewWin.focus();
  }
}
//-->
</script>


使用时将上面的代码放在网页文档的<head></head>标记对中,然后在链接的点击事件中调用 OpenFullSizeWindow函数,如<a href="fullsize.jpg" onClick= "OpenFullSizeWindow(this.href,'','');return false"><img src="small.jpg"> </a>即可。
以上代码在IE 5.x-6.0中测试通过。
posted @ 2007-11-06 21:34 会跑的蜗牛 阅读(896) | 评论 (1)编辑 收藏

JSP Standard Tag Libraries
Formatting and Internationalization
Two form input parameters, 'date' and 'isoDate', are URL-encoded in the link leading to this page. 'isoDate' is formatted according to the ISO8601 standard.
Formatting of numbers and dates is based on the browser's locale setting. Formatting will change if you switch the default language setting from English to French or German, for example. (The browser needs to be restarted, too.)

Library import and parameter capturing:

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>

<fmt:parseDate value="${param.date}" var="date" pattern="yyyy/MM/dd:HH:mm:ss>
<fmt:parseDate value="${param.isoDate}" var="isoDate" pattern="yyyyMMdd'T'HHmmss">

The input parameters must match the patterns, or the JSP will thrown an exception. This page does no error handling.

Input parameters:
Date:    2004/04/01:13:30:00   Java format: Thu Apr 01 13:30:00 CST 2004
isoDate: 20040531T235959       Java format: Mon May 31 23:59:59 CDT 2004

Dates
Tag Output
Attribute: value; required. Tag has no body.
<fmt:formatDate value="${date}" type="both"/>

 2004-4-1 13:30:00  
<fmt:formatDate value="${isoDate}" type="both"/>

 2004-5-31 23:59:59  
Attribute: type; optional. Indicates what to print: date, time, or both.
<fmt:formatDate value="${date}" type="date"/>

 2004-4-1  
<fmt:formatDate value="${isoDate}" type="time"/>

 23:59:59  
Attribute: dateStyle; optional. Varies the date format.
<fmt:formatDate value="${isoDate}" type="date" dateStyle="default"/>

 2004-5-31  
<fmt:formatDate value="${isoDate}" type="date" dateStyle="short"/>

 04-5-31  
<fmt:formatDate value="${isoDate}" type="date" dateStyle="medium"/>

 2004-5-31  
<fmt:formatDate value="${isoDate}" type="date" dateStyle="long"/>

 2004年5月31日  
<fmt:formatDate value="${isoDate}" type="date" dateStyle="full"/>

 2004年5月31日 星期一  
Attribute: timeStyle; optional. Varies the time format.
<fmt:formatDate value="${isoDate}" type="time" timeStyle="default"/>

 23:59:59  
<fmt:formatDate value="${isoDate}" type="time" timeStyle="short"/>

 下午11:59  
<fmt:formatDate value="${isoDate}" type="time" timeStyle="medium"/>

 23:59:59  
<fmt:formatDate value="${isoDate}" type="time" timeStyle="long"/>

 下午11时59分59秒  
<fmt:formatDate value="${isoDate}" type="time" timeStyle="full"/>

 下午11时59分59秒 CDT  
Attribute: pattern; optional. Inidcates date/time custom patterns.
<fmt:formatDate value="${date}" type="both" pattern="EEEE, MMMM d, yyyy HH:mm:ss Z"/>

 星期四, 四月 1, 2004 13:30:00 -0600  
<fmt:formatDate value="${isoDate}" type="both" pattern="d MMM yy, h:m:s a zzzz/>

 31 五月 04, 11:59:59 下午 中央夏令时
posted @ 2007-05-24 12:05 会跑的蜗牛 阅读(2221) | 评论 (0)编辑 收藏

ORA-01950:表空间无权限
1.用sysdba身份登录
2.alter user username quota 1024m on tablespacename;
posted @ 2007-05-21 11:10 会跑的蜗牛 阅读(563) | 评论 (0)编辑 收藏

 1<html>
 2<head>
 3<style>
 4#center{ background:red; color:#FFFFFF; font-size:12px; line-height:20px; position:absolute;left:expression((body.clientWidth-50)/2);top:expression((body.clientHeight-50)/2);width:80;height:20; text-align:center; display:none}
 5
</style>
 6</head>
 7<body>
 8<div id="center">正在加载</div>
 9</body>
10</html>
posted @ 2007-04-25 09:42 会跑的蜗牛 阅读(378) | 评论 (0)编辑 收藏

匹配中文字符的正则表达式: [u4e00-u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了

匹配双字节字符(包括汉字在内):[^x00-xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

匹配空白行的正则表达式:ns*r
评注:可以用来删除空白行

匹配HTML标记的正则表达式:<(S*?)[^>]*>.*?|<.*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力

匹配首尾空白字符的正则表达式:^s*|s*$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式

匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
评注:表单验证时很实用

匹配网址URL的正则表达式:[a-zA-z]+://[^s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求

匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实用

匹配国内电话号码:d{3}-d{8}|d{4}-d{7}
评注:匹配形式如 0511-4405222 或 021-87888822

匹配腾讯QQ号:[1-9][0-9]{4,}
评注:腾讯QQ号从10000开始

匹配中国邮政编码:[1-9]d{5}(?!d)
评注:中国邮政编码为6位数字

匹配身份证:d{15}|d{18}
评注:中国的身份证为15位或18位

匹配ip地址:d+.d+.d+.d+
评注:提取ip地址时有用

匹配特定数字:
^[1-9]d*$    //匹配正整数
^-[1-9]d*$   //匹配负整数
^-?[1-9]d*$   //匹配整数
^[1-9]d*|0$  //匹配非负整数(正整数 + 0)
^-[1-9]d*|0$   //匹配非正整数(负整数 + 0)
^[1-9]d*.d*|0.d*[1-9]d*$   //匹配正浮点数
^-([1-9]d*.d*|0.d*[1-9]d*)$  //匹配负浮点数
^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$  //匹配浮点数
^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$   //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$  //匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正

匹配特定字符串:
^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
^w+$  //匹配由数字、26个英文字母或者下划线组成的字符串

在使用RegularExpressionValidator验证控件时的验证功能及其验证表达式介绍如下:

只能输入数字:“^[0-9]*$”
只能输入n位的数字:“^d{n}$”
只能输入至少n位数字:“^d{n,}$”
只能输入m-n位的数字:“^d{m,n}$”
只能输入零和非零开头的数字:“^(0|[1-9][0-9]*)$”
只能输入有两位小数的正实数:“^[0-9]+(.[0-9]{2})?$”
只能输入有1-3位小数的正实数:“^[0-9]+(.[0-9]{1,3})?$”
只能输入非零的正整数:“^+?[1-9][0-9]*$”
只能输入非零的负整数:“^-[1-9][0-9]*$”
只能输入长度为3的字符:“^.{3}$”
只能输入由26个英文字母组成的字符串:“^[A-Za-z]+$”
只能输入由26个大写英文字母组成的字符串:“^[A-Z]+$”
只能输入由26个小写英文字母组成的字符串:“^[a-z]+$”
只能输入由数字和26个英文字母组成的字符串:“^[A-Za-z0-9]+$”
只能输入由数字、26个英文字母或者下划线组成的字符串:“^w+$”
验证用户密码:“^[a-zA-Z]w{5,17}$”正确格式为:以字母开头,长度在6-18之间,

只能包含字符、数字和下划线。
验证是否含有^%&’,;=?$”等字符:“[^%&’,;=?$x22]+”
只能输入汉字:“^[u4e00-u9fa5],{0,}$”
验证Email地址:“^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$”
验证InternetURL:“^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$”
验证电话号码:“^((d{3,4})|d{3,4}-)?d{7,8}$”

正确格式为:“XXXX-XXXXXXX”,“XXXX-XXXXXXXX”,“XXX-XXXXXXX”,

“XXX-XXXXXXXX”,“XXXXXXX”,“XXXXXXXX”。
验证身份证号(15位或18位数字):“^d{15}|d{}18$”
验证一年的12个月:“^(0?[1-9]|1[0-2])$”正确格式为:“01”-“09”和“1”“12”
验证一个月的31天:“^((0?[1-9])|((1|2)[0-9])|30|31)$”

正确格式为:“01”“09”和“1”“31”。

匹配中文字符的正则表达式: [u4e00-u9fa5]
匹配双字节字符(包括汉字在内):[^x00-xff]
匹配空行的正则表达式:n[s| ]*r
匹配HTML标记的正则表达式:/<(.*)>.*|<(.*) />/
匹配首尾空格的正则表达式:(^s*)|(s*$)
匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?

(1)应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)
String.prototype.len=function(){return this.replace([^x00-xff]/g,”aa”).length;}

(2)应用:javascript中没有像vbscript那样的trim函数,我们就可以利用这个表达式来实现
String.prototype.trim = function()
{
return this.replace(/(^s*)|(s*$)/g, “”);
}
(3)应用:利用正则表达式分解和转换IP地址
function IP2V(ip) //IP地址转换成对应数值
{
re=/(d+).(d+).(d+).(d+)/g //匹配IP地址的正则表达式
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
throw new Error(”Not a valid IP address!”)
}
}
(4)应用:从URL地址中提取文件名的javascript程序
s=”http://www.9499.net/page1.htm”;
s=s.replace(/(.*/){0,}([^.]+).*/ig,”$2″) ; //Page1.htm
(5)应用:利用正则表达式限制网页表单里的文本框输入内容
用正则表达式限制只能输入中文:onkeyup=”value=”/blog/value.replace(/[”^u4E00-u9FA5]/g,'’) ” onbeforepaste=”clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^u4E00-u9FA5]/g,'’))”
用正则表达式限制只能输入全角字符: onkeyup=”value=”/blog/value.replace(/[”^uFF00-uFFFF]/g,'’) ” onbeforepaste=”clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^uFF00-uFFFF]/g,'’))”
用正则表达式限制只能输入数字:onkeyup=”value=”/blog/value.replace(/[”^d]/g,'’) “onbeforepaste= “clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^d]/g,'’))”
用正则表达式限制只能输入数字和英文:onkeyup=”value=”/blog/value.replace(/[W]/g,”‘’) “onbeforepaste=”clipboardData.setData(’text’,clipboardData.getData(’text’).replace(/[^d]/g,'’

posted @ 2007-04-22 13:43 会跑的蜗牛 阅读(519) | 评论 (0)编辑 收藏

     摘要: 由于公司的业务需要,所以做了一个HTML表格分页,跟数据库无关。   1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional...  阅读全文
posted @ 2007-04-22 12:33 会跑的蜗牛 阅读(6142) | 评论 (1)编辑 收藏

  1. 统计文本行数:wc -l filename
  2. 修改文件名称:mv srcfilename tofilename
posted @ 2007-04-22 12:21 会跑的蜗牛 阅读(521) | 评论 (3)编辑 收藏

定义:保证在Java程序中,一个Class只有一个实例存在。

第一种实例:
 1public class Singleton {
 2
 3  private Singleton(){}
 4
 5  private static Singleton instance = new Singleton();
 6
 7  public static Singleton getInstance() {
 8    return instance;   
 9   }
 
10}

11 
12


第二种实例:

 1public class Singleton 
 2
 3  private static Singleton instance = null;
 4
 5  public static synchronized Singleton getInstance() {
 6      if (instance==null)
 7        instance=new Singleton();
 8      return instance;   
 9    }
 
10
11}

12
posted @ 2007-04-22 01:45 会跑的蜗牛 阅读(227) | 评论 (0)编辑 收藏

 1<script>
 2String.prototype.truncate = function(bytes) {
 3
 4    str = this;
 5    showstr = "";
 6
 7    flag = false;
 8
 9    strleg = string_get_ascii_leg(str);
10
11    if (strleg > bytes)
12    {
13        for (i=0,j=0;i<bytes;i++,j++)
14        {
15            showstr = showstr.concat(str.charAt(j));
16            if (!(str.charCodeAt(i) < 255))//是否是英文字符
17            {
18                i++;
19            }

20        }

21        showstr = showstr.concat("");
22    }

23    else
24    {
25        showstr = str;
26    }

27    return showstr;
28}

29function string_get_ascii_leg(indata)
30{
31    var i,strleg;
32
33    strleg = 0;
34    for (i=0;i<indata.length;i++)
35    {
36        strleg++;
37        if (indata.charCodeAt(i) > 255)
38        {
39            strleg++;
40        }

41    }

42
43    return strleg;
44}

45</script>

Example:
1<script>
2var test = "我们在哪里";
3alert(test.truncate(6));
4</script>
posted @ 2007-04-22 01:37 会跑的蜗牛 阅读(1101) | 评论 (0)编辑 收藏