囝濼的博客[www.bluenuo.cn]

          網盤[disk.bluenuo.cn]
          隨筆 - 6, 文章 - 1, 評論 - 11, 引用 - 0
          數據加載中……

          2007年10月16日

          通用離開頁面前檢查form內容是否發生改變

               摘要: 文/囝濼 www.bluenuo.cn 使用方法: 1.在需要的頁面引入javascript核心代碼(下面有,復制粘貼即可) 2.在body的onload事件中加入saveElementsOnLoad(myform);方法,其中myform是所驗證的form對象 3.在body的onbeforeunload事件中加入return checkFormOnUnload(myform);其中my...  閱讀全文

          posted @ 2009-02-07 16:05 囝濼 閱讀(1832) | 評論 (0)編輯 收藏

          Linux下安裝使用Subversion

              這幾天把工作環境從windows下面轉到linux了,因為用的java語言開發,項目移植還是蠻容易的,但不準備再用CVS來做版本控制系統了,決定換功能較強大的SVN,于是了解了下linux下安裝Subversion的方法,現總結如下

          文/囝濼 www.bluenuo.cn 


          編譯安裝相關軟件(我們采用源碼編譯安裝)
          a.httpd
          下載地址:http://httpd.apache.org
          下載
          httpd-*.tar.gz (*為版本號,這里使用的是2.8.8)
          安裝
          #tar -zxvf httpd-2.8.8.tar.gz
          #cd httpd-2.8.8
          #./configure --enable-dav --enable-so --enable-maintainer-mode
          #make
          #make install
          b.
          Berkeley DB
          下載地址:http://www.oracle.com/technology/products/berkeley-db/index.html
          下載
          Berkeley DB 4.7.25.tar.gz
          安裝
          #tar -zxvf db-4.4.20.NC.tar.gz
          #cd db-4.4.20.NC/build_unix/
          #../dist/configure --prefix=/usr/local/bdb
          #make
          #make install

          c.Subversion
          下載地址:http://subversion.tigris.org
          下載
          subversion-*.tar.gz subversion-deps-*.tar.gz包下下來,后一個包里是一些依賴程序,把2個包放在同一個目錄下,解壓縮,解壓的文件會自動放到同一個文件夾下。
          安裝
          #tar -zxvf subversion-1.2.3.tar.gz
          #cd subversion-1.2.3
          #./configure --with-berkeley-db=/usr/local/bdb --with-apxs=/usr/local/apache2/bin/apxs
          #make
          #make install

          安裝成功后你可以使用 #svnadmin --version檢查是否安裝成功
          安裝成功會出現
          svnadmin,版本 1.4.6 (r28521)
             編譯于 May  6 2008,19:55:08
          …………
          配置
          配置Subversion
          # mkdir /home/*/svn(*代表用戶目錄)
          # cd /usr/local/subversion/bin
          # ./svnadmin create /home/*/svn/test
          這樣我們就在svn下面建立了一個test倉庫
          修改httpd配置文件
          # vi /usr/local/apache2/conf/httpd.conf
          在最下面添加如下內容

          LoadModule dav_svn_module modules/mod_dav_svn.so
          LoadModule authz_svn_module modules/mod_authz_svn.so
          <Location /svn>
          DAV svn
          SVNParentPath /home/*/svn/ //svn父目錄
          AuthzSVNAccessFile /home/*/svn/authz.conf //權限配置文件
          AuthType Basic //連接類型設置
          AuthName "Subversion.zoneyump" //連接框提示
          AuthUserFile /home/*/svn/authfile //用戶配置文件
          Require valid-user //采用何種認證
          </Location>
          //其中authfile是通過"htpasswd [–c] /home/*/svn/authfile username password"來創建的
          //"Require valid-user"告訴apache在authfile中所有的用戶都可以訪問。如果沒有它,
          //則只能第一個用戶可以訪問新建庫
          修改好后保存,重啟apache
          # ./usr/local/apache2/bin/apachectl restart

          權限管理

          1)增加用戶
          # ./usr/local/apache2/bin/htpasswd [-c] /home/*/svn/authfile wooin
          //第一次設置用戶時使用-c表示新建一個用戶文件。回車后輸入用戶密碼,完成對用戶的增加
          # ./usr/local/apache2/bin/htpasswd authfile 用戶名(加入新的用戶)
          2)權限分配

          # vi /home/svnroot/repository/authz.conf
             [test:/] //這表示,倉庫test的根目錄下的訪問權限
             wooin = rw //test倉庫wooin用戶具有讀和寫權限
             bao = r //test倉庫bao用戶具有讀權限
             [test2:/] //test2倉庫根目錄下的訪問權限
             wooin = r //wooin用戶在test2倉庫根目錄下只有讀權限
             bao = //bao用戶在 test2倉庫根目錄下無任何權限
             [/] //這個表示在所有倉庫的根目錄下
             * = r //這個表示對所有的用戶都具有讀權限
             #[groups] //這個表示群組設置
             #svn1-developers = wooin, bao //這個表示某群組里的成員
             #svn2-developers = wooin
             #[svn1:/]
             #@svn1-developers = rw //如果在前面加上@符號,則表示這是個群組權限設置

          將這個設置完成后。重啟Apache,就可以通過
          http://localhost/svn/test
          這個URL來訪問倉庫了

          至于在eclipse使用svn就需要自己安裝svn插件了

          這里介紹Eclipse的SVN Plugin,叫做Subclipse,官方網站的下載地址在http://subclipse.tigris.org/,也提供了update site http://subclipse.tigris.org/update
          Eclipse 的使用者可以通過Eclipse的插件自動下載和更新功能來安裝這個插件,在Eclipse的菜單中選擇Help->Software Updates->Find and Install-> Search for new features to install ->New Remote Site。URL中就輸入http://subclipse.tigris.org/update,Eclipse就會自已安裝上了.

          安裝完成后,在Eclipse的plugins中就會多了5個包,命名為org.tigris.subversion.*的都應該是了。打開 Eclipse,window->show view窗口中多了一個SVN文件夾,到此就證明svn插件成功的安裝上了。具體的使用方法,在Eclipse的Help中有詳細的幫助 Subclipse - Subversion Eclipse Plugin,教你一步一步的使用SVN的客戶端了。如果你對subversion想進行深入的了解,那么看看help中的Version Control with Subversion一定有所收獲,通過本人的觀察,這份文檔和sbuversion安裝文件中提供的官方文檔一樣,這里看起來就更舒服些了。

          注:本文是總結前輩資料的成果


          囝濼,武漢科技學院
          您可以通過其博客了解更多信息和文章:http://www.bluenuo.cn

          posted @ 2008-05-09 11:41 囝濼 閱讀(5214) | 評論 (0)編輯 收藏

          easyJWeb+Eclipse快速入門

                  由于學習需要,需要接觸網站開發方面的技術,從VB、C、C++、java……也學了不少的語言,以前做網站都用jsp、servlet、javabean,沒怎么用過MVC框架,自己也接觸了一些STRUTS、HIBERNATE相關的技術,最近有幸認識到國人自己的開源項目easyJWeb(下面簡稱ejf),很是興奮,花了半個小時研究了下ejf的使用,單是配置是非常簡單的,下面總結一下第一次接觸ejf的經驗,也希望更多的人加入到國人自己的開源項目中來。
                  ejf的官方網站是http://www.easyjf.com,如果需要深入了解可以直接去官網查看,本文只是一個入門教程。

          文/囝濼 www.bluenuo.cn


          獲得ejf
                  首先,我們去http://www.easyjf.com/news/download.html下載一個名為easyjweb-1.0-m3.zip(目前是這個版本),下載到EasyJWeb后,我們解壓這個壓縮文件,會得到類似圖1所示的目錄結構:

                                                  圖1
          然后找個空目錄,這里我們在e:\java路徑下建立ejf目錄,然后把ejf的lib目錄下的easyjweb-core-1.0-m3.jar以及required目錄下的全部jar拷貝到剛建立的文件夾下。

           

           用eclipse+MyEclipse建立新的web工程
                  
          新建web工程,然后右鍵點擊新建的工程目錄,點擊propertitex,選擇java build path設置環境變量,把剛建立的目錄下的所有jar導入path,如果2

                                                                      圖2
          修改web.xml
          為了讓web應用能使用EasyJWeb框架,需要在web.xml文件中添加一個servlet,并把所有擴展名為.ejf的請求映射給該servlet來處理。EasyJWeb的Servlet定義如下:

          <servlet>
                
          <servlet-name>easyjf</servlet-name>
                
          <servlet-class>com.easyjf.web.ActionServlet</servlet-class>
                
          <load-on-startup>1</load-on-startup>
            
          </servlet>
            
          <servlet-mapping>
                
          <servlet-name>easyjf</servlet-name>
                
          <url-pattern>*.ejf</url-pattern>
            
          </servlet-mapping>
          為了讓Java Web應用能更好的處理中文字符,還需要在web.xml中添加一個字符編輯過濾器,配置如下:
            <filter>
                
          <filter-name>CharsetFilter</filter-name>
                
          <filter-class>com.easyjf.web.CharsetFilter</filter-class>
                
          <init-param>
                    
          <param-name>encoding</param-name>
                    
          <param-value>UTF-8</param-value>
                
          </init-param>
                
          <init-param>
                    
          <param-name>ignore</param-name>
                    
          <param-value>true</param-value>
                
          </init-param>
            
          </filter>
            
          <filter-mapping>
                
          <filter-name>CharsetFilter</filter-name>
                
          <servlet-name>easyjf</servlet-name>
            
          </filter-mapping>

           另外,為了讓EasyJWeb能自動找到你的應用中的所有Action,你需要在web.xml中添加一個名為defaultActionPackages的應用上下文件參數來告訴EasyJWeb掃描哪些包。配置如下:
          <context-param>
             
          <param-name>defaultActionPackages</param-name>
             
          <param-value>ejf</param-value>
            
          </context-param>
          最后,得到一個完整的web.xml文件,如下
          <?xml version="1.0" encoding="UTF-8"?>
          <web-app version="2.5" 
              xmlns
          ="http://java.sun.com/xml/ns/javaee" 
              xmlns:xsi
          ="http://www.w3.org/2001/XMLSchema-instance" 
              xsi:schemaLocation
          ="http://java.sun.com/xml/ns/javaee 
              http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
          >
              
          <context-param>
             
          <param-name>defaultActionPackages</param-name>
             
          <param-value>ejf</param-value>
            
          </context-param>
            
          <welcome-file-list>
              
          <welcome-file>index.jsp</welcome-file>
            
          </welcome-file-list>
            
          <servlet>
                
          <servlet-name>easyjf</servlet-name>
                
          <servlet-class>com.easyjf.web.ActionServlet</servlet-class>
                
          <load-on-startup>1</load-on-startup>
            
          </servlet>
            
          <servlet-mapping>
                
          <servlet-name>easyjf</servlet-name>
                
          <url-pattern>*.ejf</url-pattern>
            
          </servlet-mapping>
            
          <filter>
                
          <filter-name>CharsetFilter</filter-name>
                
          <filter-class>com.easyjf.web.CharsetFilter</filter-class>
                
          <init-param>
                    
          <param-name>encoding</param-name>
                    
          <param-value>UTF-8</param-value>
                
          </init-param>
                
          <init-param>
                    
          <param-name>ignore</param-name>
                    
          <param-value>true</param-value>
                
          </init-param>
            
          </filter>
            
          <filter-mapping>
                
          <filter-name>CharsetFilter</filter-name>
                
          <servlet-name>easyjf</servlet-name>
            
          </filter-mapping>
          </web-app>
          修改好后,我們把web工程放到web服務器上,這里用的是tomcat,在瀏覽器敲入http://localhost:8080/chytool/helloerror.ejf,因為沒有這個頁面,ejf將顯示默認友情提示,如圖3

                                                      圖3
          第一個web頁面
                  下面我們建立第一個web頁面,跟學習其他語言一樣,我們用ejf版的helloworld作為入門,首先,我們在eclipse工程目錄下建立ejf.hello.mvc包,然后新建class HelloAction.java,在ejf里面我們將這個類叫做action,源代碼如下
          package ejf.hello.mvc;
          import java.util.Date;
          import com.easyjf.web.WebForm;
          import com.easyjf.web.core.AbstractPageCmdAction;
          public class HelloAction extends AbstractPageCmdAction {
              
          public void index(WebForm form) {
                  form.addResult(
          "msg""您好,這是EasyJWeb的第一個程序!");
                  form.addResult(
          "date"new Date());
                  form.addResult(
          "address""http://www.bluenuo.cn");
              }

          }
          接下來我們在web目錄下的WEB-INF下建立如下目錄架構WEB-INF\hello\view
          然后建立index.html文件,文件內容如下
          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <html>
            
          <head>
              
          <title>EasyJWeb示例程序</title>
              
              
          <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
              
          <meta http-equiv="description" content="this is my page">
              
          <meta http-equiv="content-type" content="text/html; charset=UTF-8">
              
              
          <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

            
          </head>
            
            
          <body>
              
          <div><h4>EasyJWeb版本的HelloWorld程序</h4></div>
              
          <div>
              來自EasyJWeb的問候:
          <font color="#0000FF">${msg}</font><br>
              現在時間:
          <font color="#0000FF">${date}</font><br>
              我的主頁是:
          <href="${address}">${address}</a>
              
          </div>
            
          </body>
          </html>

          整個目錄結構如圖4所示

                  圖4
          然后導入web服務器目錄,在瀏覽器敲入地址http://localhost:8080/chytool/hello.ejf
          效果如圖5所示

                                                          圖5
          怎么樣?easyJWeb就是這么簡單,使用過struts的一定感受得到ejf是多么的容易上手
          希望筆者的介紹已經把你領進ejf的大門,至于更深層的開發跟應用,還需要我們自己探討

          posted @ 2008-01-29 19:26 囝濼 閱讀(3227) | 評論 (6)編輯 收藏

          學swt的一個實踐

                  學了一段實踐SWT/JFace,也學會了不少東西,java課程設計就用swt做了個類似QQ的聊天軟件,分服務端與客戶端,也花了2個多星期時間,現在把安裝軟件帖出來,下載地址在最下面,用的學校的服務器,如果失效了請聯系我,需要源代碼的可以發我mail:chybox@yahoo.cn,下面稍微介紹一下這個小軟件。

          文/囝濼 www.bluenuo.cn


                  軟件分服務端與客戶端,所有通信信息都統一發送到服務端,由服務端通信協議負責分發到相應的客戶端,協議我做得比較簡單,通過一個MyMessage類來實例化一次具體的通信信息,其類結構如下

          import java.io.Serializable;
          import java.util.Date;


          public class MyMessage implements Serializable{
              
          public int src;//發送者的id號,其中id號注冊后獲得,唯一標識一個用戶
              
          public int des;//目的id號
              
          public int cas;//協議號
              
          public Usr usr;//用戶信息,可以為null
              
          public String message;//發送的消息
              
          public Date date;//發送時間
              
          public MyMessage(){
                  src
          =0;
                  des
          =0;
                  cas
          =0;
                  usr
          =null;
                  message
          =null;
              }

          }


          協議信息比較簡單,不過處理這個聊天的事務已經足夠了。

          客戶端也有個完全一樣的類,只是協議的具體內容不太一樣,同時,客戶端和服務端還用了不少的范型結構,如LinkedList<>,HashMap<>等
          下面帖幾張軟件的截圖

                             圖一:客戶端登陸界面

            圖2:客戶端好友面板

                           圖片3:客戶端消息對話框

              圖片4:服務端主界面

                                    圖片5:服務端數據庫管理界面
          以上是整個軟件大體上的界面,需要了解更多可以通過下面的鏈接下載,安裝包自帶jre,使用的時候需要把客戶端的host.ini文件里的ip改成localhost或者改成你自己的ip,服務端必須先通過管理工具開啟用戶注冊,否則無法注冊。
          服務端下載地址:http://edu.bluenuo.cn/myfiles/chyqq_ser_windows_2008beta.exe
          客戶端下載地址:http://edu.bluenuo.cn/myfiles/chyqq_windows_2008beta.exe

          需要源代碼可以通過我的mail聯系我chybox@yahoo.cn


           

          posted @ 2008-01-25 12:40 囝濼 閱讀(512) | 評論 (5)編輯 收藏

          主窗口居中顯示

          文/囝濼 www.bluenuo.cn

           

          shell = new Shell();
          shell.setSize(
          500375);
              Monitor primary = shell.getMonitor();//獲得屏幕
              Rectangle bounds 
          = primary.getBounds ();//獲得屏幕尺寸
              Rectangle rect 
          = shell.getBounds ();//獲得窗口尺寸
              
          int x = bounds.x + (bounds.width - rect.width) / 2;//計算x坐標
              
          int y = bounds.y + (bounds.height - rect.height) / 2;//計算y坐標
              
          if (x < 0)//判斷坐標是否在屏幕之外
                  x 
          = 0;
                  
          if (y < 0)
                      y 
          = 0;
                  shell.setLocation (x, y);//設置窗口坐標
              shell.open();

          posted @ 2007-12-16 15:35 囝濼 閱讀(361) | 評論 (0)編輯 收藏

          GRUB喚醒沉睡的SUSE

          用linux也一段時間了,前前后后裝了不少版本的linux,也看了不少linux的書,但在各種發行版中,還是對suse情有獨鐘,因為它的友好的界面還有廣泛的硬件支持,特別是suse附帶了功能齊全的軟件,就連播放器的解碼也做得非常周到,基本上能播放大多數格式的電影跟音樂了。但由于幾個月前重裝windows系統,把引導破壞了,suse就一直沉睡在硬盤中,今天,借用grub,又把沉睡的suse喚醒,在使用grub的時候也遇到了不少麻煩,下面做個總結,好讓下次少走點彎路。
          文/囝濼 www.bluenuo.cn



          首先把GRUB下下來,為方便下次使用我把grub支持多文件系統的版本放在我的網盤http://disk.bluenuo.cn的linux目錄下,下載后提取grldr文件到C:\,現在只需要把系統的啟動菜單中加上C:\GRLDR=My Grub一行,下次啟動的時候就可以通過My Linux Suse10這個菜單進入grub,但現在只能使用命令來使用GRUB,接下來我們為GRUB加入菜單。
          在C:\下建立boot文件夾,然后進入剛建立的boot文件夾建立grub文件夾,最后,在grub目錄下建立menu.lst文件,至于menu.lst里面寫什么你可以查閱相關資料,筆者是通過光盤引導了以前的linux系統,仿照/boot/grub下面的menu.lst寫的,原linux下的menu.lst如下

          # Modified by YaST2. Last modification on 日  4月  1 06:48:42 UTC 2007
          color white/blue black/light-gray
          default 1
          timeout 8
          gfxmenu (hd1,7)/boot/message

          ###Don't change this comment - YaST2 identifier: Original name: linux###
          title SUSE Linux Enterprise Desktop 10
              root (hd1,7)
              kernel /boot/vmlinuz root=/dev/sda8 vga=0x314    resume=/dev/sda7  splash=silent showopts
              initrd /boot/initrd

          ###Don't change this comment - YaST2 identifier: Original name: windows###
          title Windows
              chainloader (hd0,0)+1

          ###Don't change this comment - YaST2 identifier: Original name: failsafe###
          title Failsafe -- SUSE Linux Enterprise Desktop 10
              root (hd1,7)
              kernel /boot/vmlinuz root=/dev/sda8 vga=normal showopts ide=nodma apm=off acpi=off noresume nosmp noapic maxcpus=0 edd=off 3
              initrd /boot/initrd


          由于現在我只需要引導suse10,所以我把啟動設置跟最后一條復制到我的menu.lst里面就可以了
          # Modified by YaST2. Last modification on 日  4月  1 06:48:42 UTC 2007
          color white
          /blue black/light-gray
          default 1
          timeout 
          8
          ###Don't change this comment - YaST2 identifier: Original name: linux###
          title SUSE Linux Enterprise Desktop 10
              root (hd1,7)
              kernel /boot/vmlinuz root=/dev/sda8 vga=0x314    resume=/dev/sda7  splash=silent showopts
              initrd /boot/initrd
          其中紅色標記的因個人系統而定
          現在grub已經能喚醒沉睡的suse了,至于grub更詳細的使用,可以在網上搜索grub使用的文章,這里不在細述

          囝濼,武漢科技學院
          您可以通過其博客了解更多信息和文章:http://www.bluenuo.cn

          posted @ 2007-10-16 16:41 囝濼 閱讀(402) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 西盟| 昂仁县| 邳州市| 利津县| 峨边| 江都市| 雷州市| 蓝田县| 保靖县| 临高县| 白城市| 晋州市| 云浮市| 尚志市| 陆良县| 苏尼特右旗| 颍上县| 阜新| 柳州市| 娱乐| 扬中市| 甘孜县| 达日县| 德庆县| 榆中县| 牡丹江市| 兴业县| 拜城县| 涞水县| 黔江区| 唐海县| 武隆县| 阳原县| 兖州市| 萨嘎县| 金秀| 花莲市| 洛扎县| 东乌| 独山县| 来凤县|