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 閱讀(180) | 評論 (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 閱讀(537) | 評論 (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 閱讀(403) | 評論 (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 閱讀(335) | 評論 (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 閱讀(991) | 評論 (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 閱讀(399) | 評論 (0)編輯 收藏

          displayTag

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

          posted @ 2007-08-09 17:11 lqx 閱讀(213) | 評論 (0)編輯 收藏

          collections

          posted @ 2007-08-07 15:26 lqx 閱讀(155) | 評論 (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 閱讀(232) | 評論 (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 閱讀(916) | 評論 (0)編輯 收藏

          僅列出標題
          共18頁: First 上一頁 6 7 8 9 10 11 12 13 14 下一頁 Last 
          主站蜘蛛池模板: 丰镇市| 鲁甸县| 长垣县| 响水县| 伊通| 永兴县| 六安市| 十堰市| 广丰县| 信宜市| 桃江县| 香河县| 修文县| 屯门区| 黄石市| 七台河市| 民乐县| 施秉县| 铜鼓县| 太保市| 梓潼县| 海丰县| 五原县| 同心县| 临城县| 贵德县| 通榆县| 曲靖市| 赤峰市| 于都县| 香格里拉县| 申扎县| 安西县| 武清区| 赣州市| 扶余县| 辽宁省| 崇文区| 乐东| 拉孜县| 黎川县|