lqxue

常用链接

统计

book

tools

最新评论

#

javascript 判断浏览器是否支持弹chu窗口

var k=window.open("about:blank", targetName, "resizable=yes,scrollbars=yes,menubar=0,location=0,personalbar=0,left=0,top=0");
                                                      if(k){
                                                          k.focus();
                                                          form.submit();
                                                      }
                                                      if(k == null){
                                                          alert("Sorry,your browser blocked the pop window,please press the 'Ctrl' button or remove the block pop window function!");
                                                      }

posted @ 2007-08-17 15:56 lqx 阅读(155) | 评论 (0)编辑 收藏

image 自动调整大小

下面这段代码将把image调整的height和width都适合制定大小。

<img src="xxxx" border="0" onload="resizeimage(this,170,50);"/>


<script language='javascript'>
function resizeimage(img,maxHeight,maxWidth)
{
var w=img.width,h=img.height;
if (h>maxHeight)
{
img.height=maxHeight;
img.width=(maxHeight/h)*w;
w=img.width;
h=img.height;
}
if (w>maxWidth)
{
img.width=maxWidth;
img.height=(maxWidth/w)*h;
}
}
</script>

posted @ 2007-08-14 19:50 lqx 阅读(495) | 评论 (0)编辑 收藏

java进制转换

十进制转成十六进制:
Integer.toHexString(int i)
十进制转成八进制
Integer.toOctalString(int i)oBin
十进制转成二进制
Integer.taryString(int i)

十六进制转成十进制
Integer.valueOf("FFFF",16).toString()
八进制转成十进制
Integer.valueOf("876",8).toString()
二进制转十进制
Integer.valueOf("0101",2).toString()

posted @ 2007-08-13 14:37 lqx 阅读(371) | 评论 (0)编辑 收藏

cron和crontab命令详解

ron命令:循环执行某一命令。at命令只能执行一次,虽然都是计划任务的命令,这是这两个命令的区别



用户cron:用户自己加的
组 cron:系统默认就有的

#ls /etc/crontab //显示crontab命令路径
#cat /etc/crontab //查看系统crontab
* * * * * 用户名 可执行命令
下面是每个位置的表示意义和取值范围
名称 * * * * * 用户名 可执行命令
表示 分钟 小时 日期 月份 星期
取值范围 0-59 0-23 1-31 1-12 0-6

* * * * * //代表每分钟
1 * * * * //代表每小时第1分钟
02 12 * * * //代表每天12点第2分钟(每天12:02)
0-59/2 * * * * //代表每2分钟执行一次任务

#which 命令名称:查看命令所在目录路径。
#which date //查看date命令所在目录路径
/bin/date
#crontab -e //编辑crontab命令,-e(edit)代表编辑
* * * * * /bin/date >>/root/66.txt //每分钟向/root/66.txt写入一次当前系统时间
#crontab -l //显示用户计划任务
#crontab -r //删除用户计划任务
注意:#crontab -r命令,在哪个用户下,删除的就是哪个用户的计划任务,还需要注意的是该命令是删除

所有用户的所有计划任务。还有普通用户不能删除root的计划任务的权限。

普通用户进行crontab命令计划任务操作
例:#su - text //切换到普通用户text
$crontab -e //在text普通用户中进行crontab命令计划任务编辑
* * * * * /bin/date >>/home/text/33.txt //每分钟向/home/text/33.txt写入一次当前系统时间
cat /home/text/33.txt //显示/home/text/33.txt文件内容

#crontab -u 用户名 -e //在root用户中给普通用户加计划任务编辑操作

#which crontab //查看crontab命令位置
说明:which命令是查看命令所在位置,which会在$PATH里找,在普通用户里不好用。
ll /usr/bin/crontab //查看crontab命令权限
cat /etc/crontab //显示/etc/crontab文件内容

小例子
#cd /home/aaa //进入普通用户aaa家(home)目录里
#vi 1.txt //建立1.txt文件
/sbin/init 6 //对1.txt文件进行操作,写入/sbin/init 6(重启操作),然后wq(保存退出)
#chmod 755 1.txt //把1.txt文件权限改成可执行文件
#run-parts aaa //执行该操作机器将重启(注意:执行该操作只能在/home/aaa目录外执行才有效)

#cd /var/spool/cron //建立的计划任务都存放在/var/spool/cron目录里
#ls //显示可以执行crontab命令的用户
#cat 用户名 //并可以用cat命令显示用户crontab命令的内容
#cat test //显示test用户计划任务内容

源自:http://tdhome.hlw.cn/show.php?clg_cuid=2&id=528
注意:定义完任务后可以通过以下方式启动任务
[root@node db_backup]# /etc/init.d/crond stop
Stopping crond: [  OK  ]
[root@node db_backup]# /etc/init.d/crond start
Starting crond: [  OK  ]

posted @ 2007-08-13 11:39 lqx 阅读(293) | 评论 (0)编辑 收藏

linux创建文件名添加当前系统日期时间的方法

使用`date +%y%m%d`
Example: mkdir `date +%y%m%d`
tar cfvz /tmp/bak.`date +%y%m%d`.tar.gz /etc

ymdHM代表年月日时分,可以通过date --hlep查看哪些字母代表什么

注意:`这个符号是键盘上~,而不是'.

posted @ 2007-08-13 11:18 lqx 阅读(949) | 评论 (0)编辑 收藏

apache2.0.59+tomcat5.5.x配置

apache version:2.0.59
tomcat version:5.5.x

前言:
   域名解析的作用:域名解析只能解析到ip地址,是不能够绑定到固定ip的,帮定ip的工作由web服务器来做。
一、
需注意的几点事项:
1.apache和tomcat的结合都是通过mod_jk来实现的。这个文件可以在apache的网站上下的到,本文用的mod_jk的地址为http://ossavant.org/apache/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.24/i386/mod_jk-1.2.24-httpd-2.0.59.so这里需要注意的是:(1) mod_jk的版本号一定要和apache的版本号一致. (2) mod_jk有64位和32位之分,所以要根据机器的配置来决定选择哪个。

二、安装apache,注意一定要支持DSO,在安装时加个参数--enable-so就可以使apache支持dso。可以通过
[root@localhost bin]# httpd -l
Compiled in modules:
  core.c
  prefork.c
  http_core.c
  mod_so.c

(说明:看到mod_so.c这个模块,就说明能支持DSO

三、安装tomcat,正常安装即可

安装完tomcat和apache之后先分别测似一下,保证都正常能用了,再往下进行。

四、整和apache与tomcat(具体参考apache的官方网站)

1〉把刚才下的mod_jk考到apache2/modules文件夹下
2〉在tomcat的conf里创建一个文件workers.properties,并添加如下内容
workers.tomcat_home=/usr/local/apache-tomcat-5.5.23
workers.java_home=/usr
ps=\
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1


3〉在apache2/conf的httpd.conf里加入如下一段话

LoadModule jk_module    modules/mod_jk-1.2.24-httpd-2.0.59.so
JkWorkersFile "/usr/local/apache-tomcat-5.5.23/conf/workers.properties"   //指向刚才那个文件
JkLogFile "/usr/local/apache-tomcat-5.5.23/logs/mod_jk2.log"
JkLogLevel info

五、配置虚拟主机
在httpd.conf下加入如下:

<VirtualHost *:80>
        ServerName www.91yjs.com
        ServerAlias 91yjs.com
        DocumentRoot /usr/local/apache-tomcat-5.5.23/webapps/ROOT
        DirectoryIndex index.html index.htm index.jsp
        JkMount /servlet/* ajp13
        JkMount /*.jsp ajp13
        JkMount /*.do ajp13
</VirtualHost>

配置完后,进入apache的bin下执行 ./httpd -t
出现Syntax OK说明,你的配置没有错误,重新启动apache,应该可以了。

附录:
  停止apache:./apachectl stop
  启动apache:./apachectl graceful

参考:

http://www.chinaunix.net/jh/13/669895.html
http://www.linuxfans.org/nuke/modules.php?name=News&file=article&op=view&sid=1433
http://www.cjsdn.net/post/view?bid=11&id=172565&sty=1&tpg=1&age=0




posted @ 2007-08-11 14:16 lqx 阅读(354) | 评论 (0)编辑 收藏

displayTag

http://displaytag.sourceforge.net/11/download.html

posted @ 2007-08-09 17:11 lqx 阅读(179) | 评论 (0)编辑 收藏

collections

posted @ 2007-08-07 15:26 lqx 阅读(136) | 评论 (0)编辑 收藏

利用Digester把XML转换成为Java对象

在一个比较完整的应用系统里,经常需要有一些配置文件。简单的属性使用。properties文件即可,但要配置一些复杂对象,则应该考虑使用xml文件。一般用来读取xml文件的工具包有DOM、SAX和JDOM等,但用过的人都知道,它们属于比较底层的API,写起来代码量很大,而且如果修改了xml文件的格式,代码也要做大幅度的改动。Jakarta Commons项目里的Digester包,可以轻松实现xml文件到Java对象的转换,看下面这个例子。

  在一个项目里,需要提供一些统计图,但图的内容暂时未能确定。所以我决定让图可以配置,所有定义保存在一个名为charts.xml(或国际化后的文件名如charts_zh_CN.xml,这里只考虑缺省语言)的文件内,下面是该文件的部分内容:

     false
    true
    Bar
    时间
    数据
    500
    360
    select count(c),
c.department.name
from edu.pku.pub.
aims.model.business.
Client c group
by c.department

  可以看出,我为每个图定义了id、title、legendVisible等等属性,这些属性的意义都很明显,它们将影响统计图的数据和在页面中的表现。在程序里,我需要把这个文件里的定义读到一个注册表类ChartRegistry里,该注册表维护一个java.util.List类型的registry变量,其中每个元素是一个ChartConfig类。现在Digester该显示它的价值了。

  为了方便使用Digester,我们让ChartConfig也具有统计图的每个属性(id、title、legendVisible等等),名称与charts.xml里的元素的属性(子元素)一一对应,并且都具有getter和setter方法,也就是说,ChartConfig是一个bean类。在ChartRegistry类里定义一个deregister()方法,它的作用是用Digester读入并解析指定的xml文件,代码如下;还有一个register()方法用来把ChartConfig对象加到registry里。


 

public void deregister(URL url) throws IOException,SAXException{
  InputStream is = new FileInputStream(url.getFile());
  Digester digester = new Digester();
  digester.push(this);
  digester.setValidating(false);
  digester.addObjectCreate("charts/chart", ChartConfig.class);
  digester.addSetProperties("charts/chart");
  digester.addBeanPropertySetter("charts/chart/legendVisible");
  digester.addBeanPropertySetter("charts/chart/toolTipsVisible");
  digester.addBeanPropertySetter("charts/chart/title");
  digester.addBeanPropertySetter("charts/chart/type");
  digester.addBeanPropertySetter("charts/chart/labelx");
  digester.addBeanPropertySetter("charts/chart/labely");
  digester.addBeanPropertySetter("charts/chart/width");
  digester.addBeanPropertySetter("charts/chart/height");
  digester.addBeanPropertySetter("charts/chart/hql");
  digester.addBeanPropertySetter("charts/chart/description");
  digester.addSetNext("charts/chart","register");
  digester.parse(is);
  Collections.sort(registry);
}

  基本上来说,Digester和SAX解析xml的过程很像,它的原理就是制定一些规则,在遍历每个节点时检查是否有匹配的规则,如果有就执行对应的操作。例如,上面的代码中,“digester.addObjectCreate("charts/chart", ChartConfig.class);”这一句的作用是告诉Digester:如果遇到匹配“charts/chart”形式的节点,就执行一个“对象创建”操作,创建什么对象呢,应该创建Class为“ChartConfig.class”的对象;类似的,addSetProperties()是告诉Digester将指定节点的属性全部映射到对象的属性,在这个例子里指的就是id属性;addBeanPropertySetter()是将子节点转换为对象的属性,这个方法还可以有第二个参数,当对象的属性名和子节点的名字不一样时用来指定对象的属性名;addSetNext()是说在遇到匹配节点后,对当前对象的父对象执行一个方法,参数是当前参数,对这个例子来说就是执行ChartConfig.register(ChartConfig)方法。因此这样构造得到的Digester会把charts.xml里的每个元素转换为一个ChartConfig对象,并register到ChartRegistry里。

  顺利得到了ChartRegister对象,我就可以在程序里根据它的内容构造统计图了(统计图一般使用jfreechart来生成,这里就不赘述了)。与Digester具有类似功能的工具包其实还有不少,例如Caster、Jato等等,我没有实际使用过它们,但因为我对用过的Jakarta其他项目都很满意(例如BeanUtils、HttpClient,品牌效应?),所以一开始就选择了Digester:简单方便。

from :http://java.chinaitlab.com/WebServices/715609.html

posted @ 2007-08-06 17:34 lqx 阅读(220) | 评论 (0)编辑 收藏

用udp发送java对象

在一个java的socket连接中,用ObjectInputStream 和ObjectOutputStream可以很轻松的实现对Object的发送,但是如果没有建立socket连接,如何用udp包来发送Object对象呢?

    想想我们用udp发送数据的时候可以发送些什么呢?

    DatagramPacket里面可以装些什么呢? byte[]

   对,就是byte[], 那么我们要发送java对象的话就是想办法把一个Object转成byte[],然后再发送到目的地址,然后在接受方把byte转成Object就可以了。
   如何把一个Object转化成byte[]呢?我们可以利用ByteArrayOutputStream 这个类
    相信到这里,有些朋友已经知道了怎么做了。
    还是贴点代码吧!^_^

 
   public void SendInfo(int code, Object obj){
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        ObjectOutputStream oos = null;
        try{
           oos = new ObjectOutputStream(baos);
           oos.writeInt(code);
           oos.writeObject(obj);
           oos.flush();
           byte arr[] = baos.toByteArray();
           if(arr == null)return;
           SendDataToClient(arr);
           if(baos != null)baos.close();
           if(oos != null)oos.close();
        }catch(Exception e){
           FuncForServer.WriteErrMsg(
             "Exception in Sending data to server.", e);
        }
    }
其中SendDataToClient(arr);就不用我说了吧
      
然后接受方接受到了这个包后呢?
接收到的数组组成对象:
        ByteArrayInputStream bais = new ByteArrayInputStream(dataq);
        ObjectInputStream ois = null;
        byte arr[] = null;
        ois = new ObjectInputStream(bais);
        Object obj = ois.readObject();
obj就到了,呵呵!

posted @ 2007-08-05 08:29 lqx 阅读(907) | 评论 (0)编辑 收藏

仅列出标题
共18页: First 上一页 6 7 8 9 10 11 12 13 14 下一页 Last