<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    yanmin

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      16 隨筆 :: 1 文章 :: 9 評論 :: 0 Trackbacks

    2006年5月25日 #

         摘要:   閱讀全文
    posted @ 2012-07-12 16:48 yanmin 閱讀(861) | 評論 (0)編輯 收藏

    最近做一個項目,里面很多特殊字符,引發(fā)了一些問題,解決后很開心,特別來分享。
    特殊字符:
    Jörg Ranau
    Sigut? Jakštonyt?
    Côte d'Ivoire

    數(shù)據(jù)庫手工導入數(shù)據(jù)

    1 先檢查數(shù)據(jù)庫的字符集和客戶端字符集是否一致。 采用的是UTF8
    查看語句:
    select * from nls_database_parameters

    2 若是采用DOS 下的SQLPLUS 導入數(shù)據(jù),需要set NLS_LANG=AMERICAN_AMERICA.UTF8
    windows:    set NLS_LANG=AMERICAN_AMERICA.UTF8
    unix:    NLS_LANG=AMERICAN_AMERICA.UTF8

    3:   檢查導入的數(shù)據(jù)的文件格式,格式采用: UTF8 without BOM, 
    可以用NOTEPAD++, CONVER TO UTF8 without BOM
    也可以用txt , 轉(zhuǎn)換成UTF8.

    第3點非常重要,之前忽略了,發(fā)現(xiàn)插入導入數(shù)據(jù)庫后,數(shù)據(jù)顯示不對。

    驗證你導入的數(shù)據(jù)是否正確可以用ORACLE DUMP 命令。
    select dump(country_desc),country_desc  from tb_test  where testcode='1';
    Typ=1 Len=14: 67,195,180,116,101,32,100,39,73,118,111,105,114,101        Côte d'Ivoire


    數(shù)據(jù)庫腳本中遇到特殊字符:
    1:  單引號‘ , oracle 腳本需要寫成 兩個單引號
    UPDATE pi_portal_nday SET ND_CTY='Côte d'‘Ivoire' WHERE ND_ID IN (152,162);

    2: 特殊字符&, oracle 表示需要的參數(shù), 若是數(shù)據(jù)中有這個有2個方法:
    第1 種: set define off;

    第2種:
    set escape on;
    然后將所有的&, 替換成/&。

    3: 空行
    用<br> 代替。


    JAVA 代碼導入數(shù)據(jù):

    要導入的數(shù)據(jù)都放在TXT 類型的文件里,通過batch job 導入數(shù)據(jù)庫。 
    檢查導入的數(shù)據(jù)的文件格式,格式采用: UTF8 without BOM, 
    可以用NOTEPAD++, CONVER TO UTF8 without BOM

    java 代碼:
    1 讀文件的時候采用 UTF8格式。

    InputStreamReader read = new InputStreamReader (new FileInputStream(file),"UTF-8");
    BufferedReader inBuf=new BufferedReader(read); 

    2 檢查所用開發(fā)工具的文件ENCODING 字符。
    這個就是會為什么導致沒發(fā)現(xiàn) 讀文件錯誤,在開發(fā)工具中打出的LOG 欺騙了我們的眼睛。

    我的開發(fā)工具BEA JAVA 文件默認ENCODING cp1252, 改成UTF8 就好了。這個特別容易忽略,當在控制臺看LOG的時候,發(fā)現(xiàn)讀過來的文件里的內(nèi)容打出來都正確,就忽略了JAVA的源文件。認為是從unicode轉(zhuǎn)換 utf8 有問題,特別將字符又做了處理,發(fā)現(xiàn)插入數(shù)據(jù)庫還是不正確。 修改了ENCODING 字符字符后發(fā)現(xiàn)讀入文件就不對了。這樣輕松就解決了。 所以只要修改了讀文件的時候采用 UTF8格式就可以啦。


    JAVA 代碼中直接賦值的或是頁面錄入的。
    1: 頁面的就很簡單了,JSP 或是HTML ,里面加入字符是UTF8的就OK
    2: 代碼里面的,需要轉(zhuǎn)換:
    byte[] byteArr1 = columnValueBe.getBytes("UTF-8");
    columnValue = new String(byteArr1, "UTF-8");













    posted @ 2011-05-20 18:29 yanmin 閱讀(1991) | 評論 (1)編輯 收藏

         用了這么多年計算機, 發(fā)現(xiàn)很多計算機的快捷命令都不知道, 汗啊,  從網(wǎng)上搜尋下一些,COPY 在這是沒用的,打下來用的時候就看:

    這些命令都是從開始——運行處進行的(windows鍵+R)

           'cmd'     這個命令是調(diào)用類似dos的命令窗口的命令,在這里你可以像操作DOS一樣操作Windows.

           'inetmgr'   這個命令相信做過網(wǎng)站的都知道,對了這就是調(diào)用IIS的快捷命令。

           'mstsc'     這個是用來啟動遠程桌面連接的快捷命令,相信搞過網(wǎng)絡(luò)的人對此不會陌生。

           'regedit'   這個命令大家都很熟悉,是用來調(diào)用注冊表的。

           'appwiz.cpl'     進入添加和刪除程序的快捷命令

           'control userpasswords2'         進入用戶賬戶設(shè)置界面的命令

           'cleanmgr'                       磁盤垃圾清理快捷命令

          'command.com'               調(diào)用的則是系統(tǒng)內(nèi)置的 NTVDM,一個 DOS虛擬機。它完全是一個類似 Virtual PC 的 虛擬環(huán)

    境,和系統(tǒng)本身聯(lián)系不大。當我們在命令提示符下運行 DOS 程序時,實際上也 是自動轉(zhuǎn)移到 NTVDM虛擬機下,和 CMD

    本身沒什么關(guān)系。

          'calc'           啟動計算器

          'chkdsk.exe'                 磁盤檢查

          'compmgmt.msc'           計算機管理

          'devmgmt.msc'               設(shè)備管理器

          diskmgmt.msc              磁盤管理實用程序

          'dfrg.msc '                      磁盤碎片整理程序

          'drwtsn32'             系統(tǒng)醫(yī)生

          'dvdplay'                Windows Media Player

          'explorer'               資源管理器

          'dxdiag'                   DirectX Diagnostic Tool

          'gpedit.msc'           組策略編輯器

          'gpupdate /target:computer /force'              強制刷新組策略

          'eventvwr.exe'                       事件查看器

          'logoff'                    注銷命令

          'lusrmgr.msc'            本地用戶和組   

          'msinfo32'                   系統(tǒng)信息

          'msconfig'                   系統(tǒng)配置實用程序

          'net start (servicename)'        啟動該服務(wù)

          'net stop (servicename)'停止該服務(wù)

          'notepad'           記事本

         'nusrmgr.cpl'       同control userpasswords,打開用戶帳戶控制面板

         'Nslookup'           IP地址偵測器

         'oobe/msoobe /a'             檢查XP是否激活

         'perfmon'                計算機性能監(jiān)視器

         'regedit'                   系統(tǒng)注冊表

         'regedt32'                 注冊表編輯器

         'regsvr32 /u *.dll'      停止dll文件運行

         'route print'             查看路由表

         'rononce -p'             15秒快速關(guān)機

         'rsop.msc'               組策略結(jié)果集

         'rundll32.exe rundll32.exe %Systemroot%\System32\shimgvw.dll,ImageView_Fullscreen'    啟動一個空白的Windows 圖

    片和傳真查看器

         ' secpol.msc'             本地安全策略

         'services.msc'            本地服務(wù)設(shè)置

         'sfc /scannow'          啟動系統(tǒng)文件檢查器

         'sndrec32'               錄音機

         'taskmgr'                 任務(wù)管理器

         'tsshutdn'               60秒倒記時關(guān)機命令

         'winchat'                  winxp自帶局域網(wǎng)聊天

         'winmsd'                  系統(tǒng)信息

         'winver'                  顯示About Windows 窗口

         'wupdmgr'                 update

         'firewall.cpl'             防火墻

         'magnify'                  放大鏡

         'sysdm.cpl'               系統(tǒng)屬性

         'sysdm.cpl'               windows系統(tǒng)安全工具

         'write'                     寫字板

         'tourstart'                Windows XP 漫游

         'utilman'                   輔助工具管理器

        'spider'                     蜘蛛牌游戲

        'sysedit'                   系統(tǒng)配置編輯器

        系統(tǒng)文件檢查工具(立即掃描) sfc /scannow

       系統(tǒng)文件檢查工具(下次啟動時掃描) sfc /scanonce

       系統(tǒng)文件檢查工具(每次啟動時掃描) sfc /scanboot

       系統(tǒng)文件檢查工具(返回默認設(shè)置) sfc /revert

       系統(tǒng)文件檢查工具(清除文件緩存) sfc /purgecache

       系統(tǒng)文件檢查工具(設(shè)置緩存大小=x) sfc /cachesize=x

       'cliconfg'                SQL Client客戶端網(wǎng)絡(luò)實用工具

       'mmsys.cpl'             聲音和音頻設(shè)備屬性       

      'shutdown'               關(guān)閉windows

      'fsmgmt.msc'           共享文件夾

       'wscui.cpl'              Windows安全中心

       'control schedtasks'       任務(wù)計劃

       'sticpl.cpl'               掃描儀與相機

        'ntmsmgr.msc'         可移動存儲

        'intl.cpl'             區(qū)域的語言選擇

        'eudcedit'          TrueType造字程序

        'control printers'    打印機和傳真

       'powercfg.cpl'          電源選項屬性

       'telephon.cpl'      電話與調(diào)制解調(diào)器選項

        'osk'           屏幕鍵盤

        'odbccp32.cpl'           ODBC數(shù)據(jù)源管理器

        'packager'              對象包裝程序

        'ncpa.cpl' /'control netconnections'            網(wǎng)絡(luò)連接

        'netsetup.cpl'        網(wǎng)絡(luò)連接向?qū)?

        'main.cpl' /'control mouse'         鼠標屬性

        'winmine'                 掃雷游戲

        'secpol.msc'            本地安全設(shè)置

        'control keyboard'         鍵盤屬性

       IP配置實用程序(顯示連接配置) ipconfig /all
      IP配置實用程序(顯示DNS緩存內(nèi)容) ipconfig /displaydns
      IP配置實用程序(刪除DNS緩存內(nèi)容) ipconfig /flushdns
      IP配置實用程序(釋放全部(或指定)適配器的由DHCP分配的動態(tài)IP地址) ipconfig /release
      IP配置實用程序(為全部適配器重新分配IP地址) ipconfig /renew
      IP配置實用程序(刷新DHCP并重新注冊DNS) ipconfig /registerdns
      IP配置實用程序(顯示DHCP Class ID) ipconfig /showclassid
      IP配置實用程序(修改DHCP Class ID) ipconfig /setclassid

      'inetcpl.cpl'                internet屬性

       'ciadv.msc'                  索引服務(wù)

      'winver'                      檢查windows版本號

      'mplayer2'                  簡易widnows media player

       'mspaint'                     畫圖板

       'mem.exe'                顯示內(nèi)存使用狀況

       'compmgmt.msc'               計算機管理

       'wmimgmt.msc'                   打開windows管理體系結(jié)構(gòu)(WMI)

       'ntbackup'                          系統(tǒng)備份與還原

      'narrator'                         屏幕“講述人”

      'netstat  -an'                   (TC)命令檢查接口

      'syncapp'                     創(chuàng)建一個公文包

       'sigverif'                       文件簽名驗證程序

        'certmgr.msc'               證書管理實用程序

       'iexpress'                     木馬捆綁工具,系統(tǒng)自帶

        'access.cpl'                   輔助功能選項

        'fsquirt'                  Bluetooth文件傳送向?qū)?/p>

        'dcomcnfg'                     組件服務(wù)

         'timedate.cpl'                 日期時間屬性

         'ddeshare'                         DDE共享

         'control desktop'             顯示屬性

         'desk.cpl'                        顯示屬性

         'control.cpl'                  顯示屬性的外觀選項卡

         'sigverif'                     文件簽名驗證 

        快速查找 findfast.cpl

       文件夾選項 control folders

       字體文件夾 control fonts

       字體文件夾 fonts

        'freecell'         空檔接龍游戲 

        'joy.cpl'              游戲控制 

    posted @ 2008-01-03 10:00 yanmin 閱讀(248) | 評論 (1)編輯 收藏

         toad 中的中文顯示“靠”

    本來就超級忙,被迫重裝了系統(tǒng),重新建了庫,一切都OK的時候,發(fā)現(xiàn)用TOAD連接ORACLE 數(shù)據(jù)庫,里面的中文字都顯示“靠”, 第一個反映,遭了,數(shù)據(jù)庫文字設(shè)置不對,要是數(shù)據(jù)庫重裝,那又要浪費2天?。?br />
    幸好,用其他機器的TOAD,中文字顯示正確; 明白了是自己新裝的操作系統(tǒng)的原因。 網(wǎng)上查到解決辦法, 解決了,心又落回來了??!

        在環(huán)境變量中設(shè)置系統(tǒng)環(huán)境變量:

       NLS_lANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK

    posted @ 2007-10-29 11:45 yanmin 閱讀(739) | 評論 (1)編輯 收藏

    最近狂多的面試,發(fā)現(xiàn)自己的基礎(chǔ)知識和理論都弱了很多,為了不誤人子弟,開始惡補:

    一.Enterprise Beans
      在EJB(Enterprise Java Beans)中定義了兩種不同類別的Enterprise Bean :
      *會話 Bean (Session Bean)
      *實體Bean (Entity Bean)
      
      1. 會話 Bean (Session Bean)
      會話 Bean 是調(diào)用它的客戶端代碼要完成的工作。當客戶端與服務(wù)器建立聯(lián)系,那么一個會話 Bean 就建立起來了。根據(jù)會話 Bean 的狀態(tài)不同有分為:
      A. 狀態(tài)會話 Bean (Stateful Session Bean)
      B. 無狀態(tài)會話 Bean (Stateless Session Bean)
      1.1 狀態(tài)會話 Bean (Stateful Session Bean)
      當客戶機和服務(wù)器建立連接之后,狀態(tài)會話 Bean (Stateful Session Bean) 將一直在客戶機和服務(wù)器之間保持著用戶的某個狀態(tài)。例如:用戶使用銀行的ATM時,經(jīng)過驗證之后,用戶可以連續(xù)執(zhí)行多次操作,在這個過程當中,用戶的合法狀態(tài)將一直被保留,直到她將信用卡取出,結(jié)束這次操作。這時,狀態(tài)會話 Bean (Stateful Session Bean) 也就被銷毀。
      1.2無狀態(tài)會話 Bean (Stateless Session Bean)
      當客戶機和服務(wù)器建立連接之后,無狀態(tài)會話 Bean (Stateless Session Bean)處理單一的用戶請求或商務(wù)過程。無狀態(tài)會話 Bean (Stateless Session Bean)不需要從以前的請求中提取任何狀態(tài)。例如,用戶的用戶密碼確認。用戶輸入密碼后,發(fā)送請求。組件返回真或假來確認用戶,一旦過程完成,無狀態(tài)會話 Bean (Stateless Session Bean) 也宣告結(jié)束。
      2. 實體Bean (Entity Bean)
      實體Bean (Entity Bean)只是數(shù)據(jù)模型,它不包括商務(wù)邏輯。實體Bean (Entity Bean)可以將關(guān)系/對象數(shù)據(jù)庫的數(shù)據(jù)映射到內(nèi)存中供其它組件使用。實體Bean (Entity Bean)是一直存在的,而且具有很高的容錯性能。實體Bean (Entity Bean)能供允許多用戶同時訪問。
      
      二. 會話 Bean (Session Bean)
      Ejb的執(zhí)行過程是被放在一個EJB容器中進行的,所以客戶端不會直接調(diào)用我們寫好的Enterprise Bean ,而是調(diào)用EJB容器生成的一個EJBObject (EJB對象)來實現(xiàn)。那么,我們在編寫服務(wù)器端的Enterprise Bean 時,就要考慮這點。既然客戶端不能直接訪問,就由EJBObject來代勞,所以在編寫服務(wù)器端時,就要編寫服務(wù)器端的一個接口(Remote)用來與客戶機聯(lián)系,實力化EJBObject。要生成EJBObject 就要調(diào)有Home 接口,來建立這個實力。
      
      以下是會話 Bean 的代碼分析:
      A.Enterprise Bean 類:sailorsy.class
      1.setSessionContext(SessionContext ctx)方法
      它是EJB容器和Enterprise Bean互相作用的關(guān)口。
      
      import java.rmi.*;
      import javax.ejb.*;
      public class sailorsy implements SessionBean{
      private SessionContext ctx=null;
      public voic setSessionContext(SessionContext ctx)//setSessionContext
      }//class sailorsy
      
      2.ejbCreate(…)方法
      它可以初始化Enterprise Bean ,可以定義不同的ejbCreate(…)方法,每個方法所帶的參數(shù)不同。但是,必許要存在至少一種。
      
       import java.rmi.*;
       import javax.ejb.*;
      public class sailorsy implements SessionBean{
      private SessionContext ctx=null;
      public voic setSessionContext(SessionContext ctx)//setSessionContext
          public void ejbCreate() //ejbCreate
      }//class sailorsy
      
      3.ejbPassivate()方法
      如果初始化的Enterprise Bean 過多,EJB容器將其中的一些掛起(passivate),釋放他們所占用的空間。
      
       import java.rmi.*;
       import javax.ejb.*;
      public class sailorsy implements SessionBean{
      private SessionContext ctx=null;
      
      public voic setSessionContext(SessionContext ctx)//setSessionContext
      
          public void ejbCreate() //ejbCreate
          public void ejbPassivate() //ejbPassivate
      
      }//class sailorsy
      
      4.ejbActivate()方法
      和ejbPassivate正好相反,它將被掛起的Bean從新調(diào)回。
      
      import java.rmi.*;
       import javax.ejb.*;
      public class sailorsy implements SessionBean{
      private SessionContext ctx=null;
      
      public voic setSessionContext(SessionContext ctx)//setSessionContext
      
          public void ejbCreate() //ejbCreate
          public void ejbPassivate() //ejbPassivate
          
          public void ejbActivate() //ejbActivate
      
      }//class sailorsy
      
      5.ejbRemove()方法
      它可以清除EJB容器中的Bean。
      
       import java.rmi.*;
       import javax.ejb.*;
      public class sailorsy implements SessionBean{
      private SessionContext ctx=null;
      
      public voic setSessionContext(SessionContext ctx)//setSessionContext
      
          public void ejbCreate() //ejbCreate
      
          public void ejbPassivate() //ejbPassivate
          
          public void ejbActivate() //ejbActivate
      
          public void ejbRemove() //ejbRemove
         
           public String showname(){
           return "Hello,my name is sailorsy";
          }//自己的商務(wù)方法
      }//class sailorsy
      
      以上這些是EJB必需的回調(diào)方法,我們可以在里面加入自己的方法,加入自己的商務(wù)邏輯。
      B.Home 接口: sailorsyHome
      
        import java.rmi.*;
      import javax.ejb.*;
      
      public interface sailorsyHome extends EJBHome {
       public sailorsyRemote create() throws RemoteException, CreateException;
      }
      
      C. Remote接口:sailorsyRemote
      import java.rmi.*;
      import javax.ejb.*;
      
      public interface sailorsyRemote extends EJBObject {
       public java.lang.String showname() throws RemoteException;
      }
      
      三.調(diào)用會話 Bean:sailorsyTestClient1
       [code]    import javax.naming.*;
      import javax.ejb.*;
      import javax.rmi.PortableRemoteObject;
      import java.rmi.*;
      
      public class sailorsyTestClient1 {
       private sailorsyHome sailorsyHomeObject = null;
      
       //Construct the EJB test client
       public sailorsyTestClient1() {
        try {
         //以下是客戶端使用JNDI定位Home對象。
         Context ctx = new InitialContext();
      
         //look up jndi name
         Object ref = ctx.lookup("sailorsy");
      
         //cast to Home interface
         sailorsyHomeObject = (sailorsyHome) PortableRemoteObject.narrow(ref, sailorsyHome.class);
      
        }
        catch(Exception e)
       }
      
       //----------------------------------------------------------------------------
       // Utility Methods
       //----------------------------------------------------------------------------
      
       public sailorsyHome getHome() {
        return sailorsyHomeObject;
       }
       //Main method
      
       public static void main(String[] args) throws Exception{
        sailorsyTestClient1 client = new sailorsyTestClient1();
        sailorsyRemote sr=client.getHome() .create()
        String s=sr.showname()
        System.out.print(s);
        // Use the getHome() method of the client object to call Home interface
        // methods that will return a Remote interface reference. Then
        // use that Remote interface reference to access the EJB.
       }
      }[/code]
      
      以上的EJB在win2000+jbuilder5/jbuilder6+BAS4.5經(jīng)過測試。
      
      以下是整個EJB的執(zhí)行過程:
      1. 客戶端通過JNDI檢索Home對象的引用;
      2. JNDI返回Home對象的引用;
      3. 請求創(chuàng)建一個新的EJB對象;
      4. 創(chuàng)建EJB對象;
      5. 返回EJB對象;
      6. 調(diào)用商務(wù)方法;
      7. 調(diào)用Enterprise Bean.
    posted @ 2007-10-19 15:57 yanmin| 編輯 收藏

    實現(xiàn)java1.4中的split()函數(shù)功能的代碼- -

    ??????????????????????????????????????

    split()函數(shù)是分隔字符串的函數(shù),在JDK1.4以后才有的.

    在以前的版本里要用這個函數(shù)時,需要自己去寫.

    lotus r6中的JDK是1.3的,寫JAVA代理時也需要自己寫這個函數(shù)


    import java.util.*;
    public class test
    {
    ? public static void main(String args[])
    ??? {
    ????? Vector v = new Vector();
    ????? test t = new test();
    ????? v = t.splitString("b","aaabccccbddddbeeeeee");
    ????? System.out.println(v.size());
    ????? for (int i = 0;i<v.size();i++)
    ????? {
    ????? ?System.out.println(v.get(i));
    ????? ?}
    ??? ?}
    ??? ?
    ??? ?
    ?? public Vector splitString(String sign, String sourceString)
    ?? {
    ??????? Vector splitArrays = new Vector();
    ??????? int i = 0;
    ??????? int j = 0;
    ??????? if (sourceString.length()==0) {return splitArrays;}
    ??????? while (i <= sourceString.length()) {
    ?????????????? j = sourceString.indexOf(sign, i);
    ?????????????? if (j < 0) {j = sourceString.length();}
    ?????????????? splitArrays.addElement(sourceString.substring(i, j));
    ?????????????? i = j + 1;
    ??????? }
    ??????? return splitArrays;
    ? }
    ?
    }
    posted @ 2006-09-23 17:15 yanmin| 編輯 收藏

    <bean:define id="oe" name="<%=org.apache.struts.taglib.html.Constants.BEAN_KEY%>"/>
    ???? <td class='ssCell' width="6.8%" align="center">
    ???? ?<%
    ???String mrnString = "";
    ???com.phs.ihis.pm.PatientBarInfoModel pbInfoModel = (com.phs.ihis.pm.PatientBarInfoModel)oe;?
    ???if (pbInfoModel.getMrnString() != null && !"".equals(pbInfoModel.getMrnString())){
    ????mrnString = pbInfoModel.getMrnString()+"*";?
    ???}else{
    ????if (pbInfoModel.getPatientNo() != null && !"".equals(pbInfoModel.getPatientNo())){
    ?????mrnString = pbInfoModel.getPatientNo();
    ????}
    ???}?
    ??? ?%>
    ??? ?<a href="javascript: clickPick(
    ??? ???'<%=pbInfoModel.getKey()%>')">
    ??? ???<%=mrnString%>
    ??? ?</a>
    ??? </td>
    posted @ 2006-09-15 10:08 yanmin| 編輯 收藏

    ?myCheckBoxArray.value !=undefined
    posted @ 2006-09-06 19:56 yanmin 閱讀(403) | 評論 (0)編輯 收藏


    這段是放在bodyonload ();剛才做的action :
    document.OTNotesForm.action = contextPath + "/ot/SearchCareproviderOTNotesAction.do?setter="+setter+"&"+type+"="+ParamEncode(value)+"&CareProviderType="+ParamEncode(careproviderType);

    在JSP上的JAVA巧調(diào)用javascript 方法
    用的: out.println("javascript 方法(參數(shù)1,參數(shù)2);");
    ??



    <%
    ??if(request.getAttribute("PopupCareProviderSearch") != null){
    ???String setter = request.getParameter("setter");
    ???String careProviderCode = request.getParameter("CareProviderCode");
    ???String careProviderName = request.getParameter("CareProviderName");
    ???String careProviderType = request.getParameter("CareProviderType");
    ???careProviderCode = careProviderCode == null? "": careProviderCode;
    ???careProviderName = careProviderName == null? "": careProviderName;
    ???out.println("popupCareProvider('"+setter+"','"+careProviderCode+"','"+careProviderName+"','"+careProviderType+"',true);");
    ??}
    ??if(request.getAttribute("RefreshPatientBar") != null){
    ???out.println("top.refreshPatientBar();");
    ??}??
    ??if(request.getAttribute("PopupOrderItemSearch") != null){
    ???String setter = request.getParameter("setter");
    ???String itemCode = request.getParameter("searchCode");
    ???String itemName = request.getParameter("searchDesc");
    ???itemCode = itemCode == null? "": itemCode;
    ???itemName = itemName == null? "": itemName;
    ???out.println("popupOrderItemSearch('"+setter+"','"+itemCode+"','"+itemName+"',true);");
    ??}
    ??String y = request.getParameter("y");
    ??if(y != null){
    ???out.println("document.body.scrollTop="+y+";");
    ??}??
    ?%>
    posted @ 2006-09-06 19:45 yanmin 閱讀(1900) | 評論 (1)編輯 收藏

    get :? userId
    byte[] userId = (byte[])session.getUserMstrPK().getPrimaryKey();
    posted @ 2006-09-01 17:15 yanmin 閱讀(182) | 評論 (0)編輯 收藏

    // 焦點
    window.CommonPatPersonSearchFrame.document.CommonPatPersonSearchForm.txtSearchCode.focus();
    posted @ 2006-09-01 17:14 yanmin 閱讀(467) | 評論 (1)編輯 收藏

    function AddItem(setter,dropdownValue){
    ??// obtain the dropdownlist control
    ??var ct1 = null;
    ??if (setter == "OperateDoctor1"){
    ???ctl = document.OTRequestForm.ddOperateDoctor1Subspecialty;
    ??}
    ??if (setter == "OperateDoctor2"){
    ???ctl = document.OTRequestForm.ddOperateDoctor2Subspecialty;
    ??}
    ??if (setter == "RequestDoctor"){
    ???ctl = document.OTRequestForm.ddRequestDoctorSubspecialty;
    ??}
    ??if (ctl != null){
    ???clearDropdown(ctl);
    ??}
    ??// get the text and value
    ??var subSpecInfo =? dropdownValue.split("&&");
    ??for (i=0; i<subSpecInfo.length; i++){
    ???// create a new option
    ???var newOpt = document.createElement("option");
    ???var subSpec = subSpecInfo[i].split("|");
    ???newOpt.text = subSpec[1];
    ???newOpt.value = subSpec[0];
    ???ctl.add(newOpt);
    ??}
    ???
    }
    posted @ 2006-09-01 17:11 yanmin 閱讀(535) | 評論 (0)編輯 收藏

    得到CVS里所有文件清單

    用WINCVS 不能得到所有CVS里的文件清單,以EXCEL形式。

    現(xiàn)介紹用這個方法:

    1: check out? 最新CVS所有文件。
    2: 用批處理刪除其中的CVS目錄和一些無用的class 文件和其他一些文件。
    3: 用ultraEdit 軟件, 多文件查找,只填寫目錄和選中搜索子目錄,和保存到新文件。


    此批處理文件用來參數(shù)CVS目錄和一些有標志的文件或目錄

    @echo On
    @Rem 刪除CVS版本控制目錄

    @REM 刪除所有有規(guī)律的目錄
    @for /r . %%a in (.) do @if exist "%%a\CVS" rd /s /q "%%a\CVS"

    @REM 刪除所有有規(guī)律的文件
    @for /r . %%a in (.) do @if exist "%%a\EJS*.*" del /f /s /q "%%a\EJS*.*"

    @for /r . %%a in (.) do @if exist "%%a\_*.*" del /f /s /q "%%a\_*.*"

    @Rem for /r . %%a in (.) do @if exist "%%a\CVS" @echo "%%a\CVS"

    @echo Mission Completed.
    @pause

    posted @ 2006-09-01 17:09 yanmin 閱讀(353) | 評論 (0)編輯 收藏

    進入首頁立刻會彈出一個窗口,或者按一個連接或按鈕彈出,通常在這個窗口里會顯示一些注意事項、版權(quán)信息 、警告、歡迎光顧之類的話或者作者想要特別提示的信息。只要往該頁面的HTML里加入幾段Javascript代碼即可實現(xiàn).

    ????? window.open ('page.html', 'newwindow', 'height=100, width=400, top=0,
    ????? left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o,
    ????? status=no') //這句要寫成一行


    參數(shù)解釋:
      
      <SCRIPT LANGUAGE="javascript"> js腳本開始;
      window.open 彈出新窗口的命令;
      'page.html' 彈出窗口的文件名;
      'newwindow' 彈出窗口的名字(不是文件名),非必須,可用空''代替;
      height=100 窗口高度;
      width=400 窗口寬度;
      top=0 窗口距離屏幕上方的象素值;
      left=0 窗口距離屏幕左側(cè)的象素值;
      toolbar=no 是否顯示工具欄,yes為顯示;
      menubar,scrollbars 表示菜單欄和滾動欄。
      resizable=no 是否允許改變窗口大小,yes為允許;
      location=no 是否顯示地址欄,yes為允許;
      status=no 是否顯示狀態(tài)欄內(nèi)的信息(通常是文件已經(jīng)打開),yes為允許;
      </SCRIPT> js腳本結(jié)束


    【1、最基本的彈出窗口代碼】
    ?????   
    ?????   <SCRIPT LANGUAGE="javascript">
    ?????   <!--
    ?????   window.open ('page.html')
    ?????   -->
    ?????   </SCRIPT>
    ?????   
    ?????   因為著是一段javascripts代碼,所以它們應該放在<SCRIPT
    ????? LANGUAGE="javascript">標簽和</script>之間。<!-- 和
    ????? -->是對一些版本低的瀏覽器起作用,在這些老瀏覽器中不會將標簽中的代碼作為文本顯示出來。要養(yǎng)成這個好習慣啊。window.open
    ????? ('page.html')
    ????? 用于控制彈出新的窗口page.html,如果page.html不與主窗口在同一路徑下,前面應寫明路徑,絕對路徑(http://)和相對路徑(../)均可。用單引號和雙引號都可以,只是不要混用。這一段代碼可以加入HTML的任意位置,<head>和</head>之間可以,<body>間</body>也可以,越前越早執(zhí)行,尤其是頁面代碼長,又想使頁面早點彈出就盡量往前放。
    ?????  
    ?????   【2、經(jīng)過設(shè)置后的彈出窗口】
    ?????   
    ?????   下面再說一說彈出窗口的設(shè)置。只要再往上面的代碼中加一點東西就可以了。
    我們來定制這個彈出的窗口的外觀,尺寸大小,彈出的位置以適應該頁面的具體情況。
    ?????   
    ?????   <SCRIPT LANGUAGE="javascript">
    ?????   <!--
    ?????   window.open ('page.html', 'newwindow', 'height=100, width=400, top=0,
    ????? left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o,
    ????? status=no') //這句要寫成一行
    ?????   -->
    ?????   </SCRIPT>
    ?????   ?????   
    ?????   【3、用函數(shù)控制彈出窗口】
    ?????   
    ?????   下面是一個完整的代碼。
    ?????   <html>
    ?????   <head>
    ?????   <script LANGUAGE="JavaScript">
    ?????   <!--
    ?????   function openwin() {
    ?????   window.open ("page.html", "newwindow", "height=100, width=400, toolbar
    ????? =no, menubar=no, scrollbars=no, resizable=no, location=no, status=no")
    ????? //寫成一行
    ?????   }
    ?????   //-->
    ?????   </script>
    ?????   </head>
    ?????   <body onload="openwin()">
    ?????   任意的頁面內(nèi)容...
    ?????   </body>
    ?????   </html>
    ?????   這里定義了一個函數(shù)openwin(),函數(shù)內(nèi)容就是打開一個窗口。在調(diào)用它之前沒有任何用途。怎么調(diào)用呢?

    ?????   方法一:<body onload="openwin()"> 瀏覽器讀頁面時彈出窗口;
    ?????   方法二:<body onunload="openwin()"> 瀏覽器離開頁面時彈出窗口;
    ?????   方法三:用一個連接調(diào)用:
    ?????   <a href="#" onclick="openwin()">打開一個窗口</a>
    ?????   注意:使用的“#”是虛連接。
    ?????   方法四:用一個按鈕調(diào)用:
    ?????   <input type="button" onclick="openwin()" value="打開窗口">
    ?????  
    ?????  
    ?????   【4、同時彈出2個窗口】
    ?????   
    ?????    對源代碼稍微改動一下:
    ?????   
    ?????   <script LANGUAGE="JavaScript">
    ?????   <!--
    ?????   function openwin() {
    ?????   window.open ("page.html", "newwindow", "height=100, width=100, top=0,
    ????? left=0,toolbar=no, menubar=no, scrollbars=no, resizable=no, location=n o,
    ????? status=no")//寫成一行
    ?????   window.open ("page2.html", "newwindow2", "height=100, width=100, top=1
    ????? 00, left=100,toolbar=no, menubar=no, scrollbars=no, resizable=no, loca
    ????? tion=no, status=no")//寫成一行
    ?????   }
    ?????   //-->
    ?????   </script>
    ?????   為避免彈出的2個窗口覆蓋,用top和left控制一下彈出的位置不要相互覆蓋即可 。最后用上面說過的四種方法調(diào)用即可。
    ?????   注意:2個窗口的name(newwindows和newwindow2)不要相同,或者干脆全部為空。
    ??????
    ?????   【5、主窗口打開文件1.htm,同時彈出小窗口page.html】

    ?????   如下代碼加入主窗口<head>區(qū):
    ?????   <script language="javascript">
    ?????   <!--
    ?????   function openwin() {
    ?????   window.open("page.html","","width=200,height=200")
    ?????   }
    ?????   //-->
    ?????   </script>
    ?????   加入<body>區(qū):
    ?????   <a href="1.htm" onclick="openwin()">open</a>即可。
    ??????
    ?????   【6、彈出的窗口之定時關(guān)閉控制】
    ?????   
    ?????   下面我們再對彈出的窗口進行一些控制,效果就更好了。如果我們再將一小段
    ????? 代碼加入彈出的頁面(注意是加入page.html的HTML中,可不是主頁面中,否則 ...),讓它10秒后自動關(guān)閉是不是更酷了?
    ????? 首先,將如下代碼加入page.html文件的<head>區(qū):
    ?????   <script language="JavaScript">
    ?????   function closeit()
    ?????   {
    ?????   setTimeout("self.close()",10000) //毫秒
    ?????   }
    ?????   </script>
    ?????   然后,再用<body onload="closeit()">
    ????? 這一句話代替page.html中原有的<BODY>這一句就可以了。(這一句話千萬不要忘記寫??!這一句的作用是調(diào)用關(guān)閉窗
    ????? 口的代碼,10秒鐘后就自行關(guān)閉該窗口。)
    ?????   【7、在彈出窗口中加上一個關(guān)閉按鈕】

    ?????   <FORM>
    ?????   <INPUT TYPE='BUTTON' VALUE='關(guān)閉' onClick='window.close()'>
    ?????   </FORM>
    ?????   呵呵,現(xiàn)在更加完美了!

    ?????   【8、內(nèi)包含的彈出窗口-一個頁面兩個窗口】
    ?????   上面的例子都包含兩個窗口,一個是主窗口,另一個是彈出的小窗口。通過下面的例子,你可以在一個頁面內(nèi)完成上面的效果。

    ?????   <html>
    ?????   <head>
    ?????   <SCRIPT LANGUAGE="JavaScript">
    ?????   function openwin()
    ?????   {
    ?????   OpenWindow=window.open("", "newwin", "height=250, width=250,toolbar=no
    ????? ,scrollbars="+scroll+",menubar=no");
    ?????   //寫成一行
    ?????   OpenWindow.document.write("<TITLE>例子</TITLE>")
    ?????   OpenWindow.document.write("<BODY BGCOLOR=#ffffff>")
    ?????   OpenWindow.document.write("<h1>Hello!</h1>")
    ?????   OpenWindow.document.write("New window opened!")
    ?????   OpenWindow.document.write("</BODY>")
    ?????   OpenWindow.document.write("</HTML>")
    ?????   OpenWindow.document.close()
    ?????   }
    ?????   </SCRIPT>
    ?????   </head>
    ?????   <body>
    ?????   <a href="#" onclick="openwin()">打開一個窗口</a>
    ?????   <input type="button" onclick="openwin()" value="打開窗口">
    ?????   </body>
    ?????   </html>
    ?????   看看OpenWindow.document.write()里面的代碼不就是標準的HTML嗎?只要按照
    ????? 格式寫更多的行即可。千萬注意多一個標簽或少一個標簽就會出現(xiàn)錯誤。記得用 OpenWindow.document.close()結(jié)束啊。
    ?????   【9、終極應用--彈出的窗口之Cookie控制】
    ?????   回想一下,上面的彈出窗口雖然酷,但是有一點小毛病(沉浸在喜悅之中,一定
    ????? 沒有發(fā)現(xiàn)吧?)比如你將上面的腳本放在一個需要頻繁經(jīng)過的頁面里(例如首頁),那么每次刷新這個頁面,窗口都會彈出一次,是不是非常煩人?:-(
    ?????   有解決的辦法嗎?Yes! ;-) Follow me.我們使用cookie來控制一下就可以了。
    ?????   首先,將如下代碼加入主頁面HTML的<HEAD>區(qū):
    ?????   <script>
    ?????   function openwin(){
    ?????   window.open("page.html","","width=200,height=200")
    ?????   }
    ?????   function get_cookie(Name) {
    ?????   var search = Name + "="
    ?????   var returnvalue = "";
    ?????   if (document.cookie.length > 0) {
    ?????   offset = document.cookie.indexOf(search)
    ?????   if (offset != -1) {
    ?????   offset += search.length
    ?????   end = document.cookie.indexOf(";", offset);
    ?????   if (end == -1)
    ?????   end = document.cookie.length;
    ?????   returnvalue=unescape(document.cookie.substring(offset, end))
    ?????   }
    ?????   }
    ?????   return returnvalue;
    ?????   }  
    ?????   function loadpopup(){
    ?????   if (get_cookie('popped')==''){
    ?????   openwin()
    ?????   document.cookie="popped=yes"
    ?????   }
    ?????   }
    ?????   </script>
    ?????   然后,用<body
    ????? onload="loadpopup()">(注意不是openwin而是loadpop啊?。┨鎿Q主頁面中原有的<BODY>這一句即可。你可以試著刷新一下這個頁面或重新進
    ????? 入該頁面,窗口再也不會彈出了。真正的Pop-Only-Once!
    ?????   寫到這里彈出窗口的制作和應用技巧基本上算是完成了

    posted @ 2006-05-25 11:11 yanmin 閱讀(268) | 評論 (1)編輯 收藏

    主站蜘蛛池模板: 久99久无码精品视频免费播放| 永久在线观看免费视频| 亚洲不卡AV影片在线播放| 亚洲Av无码乱码在线znlu| 国产免费区在线观看十分钟| 亚洲av成人无码久久精品 | 拍拍拍无挡免费视频网站| 亚洲avav天堂av在线不卡| 无码国产精品一区二区免费| 午夜亚洲WWW湿好爽| 免费国产黄线在线观看| 免费看又黄又爽又猛的视频软件| 亚洲精品午夜国产VA久久成人| 大学生一级毛片免费看| 特级毛片爽www免费版| 内射干少妇亚洲69XXX| 免费jjzz在线播放国产 | 99在线热视频只有精品免费| 亚洲 日韩经典 中文字幕| 国产午夜亚洲精品午夜鲁丝片 | 国产小视频免费观看| 久热免费在线视频| 韩国亚洲伊人久久综合影院| 亚洲人成影院在线| 亚洲色一色噜一噜噜噜| 最新中文字幕电影免费观看| 色婷五月综激情亚洲综合| 77777亚洲午夜久久多人| 9久9久女女免费精品视频在线观看| 丰满少妇作爱视频免费观看| 日本亚洲精品色婷婷在线影院| 亚洲愉拍99热成人精品热久久 | 国产亚洲人成无码网在线观看| 在线精品免费视频| 国产亚洲精品精品精品| 亚洲av麻豆aⅴ无码电影| 国产h视频在线观看网站免费| 成人网站免费大全日韩国产| 亚洲va久久久噜噜噜久久男同| 国产免费看插插插视频| 久草在视频免费福利|