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

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

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

    隨筆-124  評論-49  文章-56  trackbacks-0
     

    servlet監聽器
    在WEB應用中響應特定對象的特定事件
    好處:更方便的控制application,session,request對象的發生的特定事件
         可以集中處理特定的事件
    -------------------------------------------------------------------
    HttpSession監聽器接口
    1 HttpSessionListener(需要配web.xml)
    2 HttpSessionAttributeListener(需要配web.xml)
    3 HttpSessionBindingListener
    4 HttpSessionActivationListener(需要配web.xml)
    -------------------------------------------------------------------
    HttpSessionListener
    1 sessionCreated()//當session對象產生的時候調用的方法
    2 sessionDestroyed()//當session對象消滅的時候調用的方法
    web.xml配置
    <listener>
     <listener-class>webbook.chapter14.CounterListener(對應的實現類)
     </listener-class>
    </listener>
    ---------------------------------------------------------------------
    HttpSessionAttributeListener
    1 attributeAdded()//添加時調用
    2 attributeReplaced()//替換時調用
    3 attributeRemoved()//刪除時調用
    產生事件的代碼
    session.setAttribute("username","wangwu");
    session.setAttribute("username","lisi");
    session.removeAttribute("username");
    -----------------------------------------------------------------
    HttpSessionBindingListener
    1 valueBound();
    2 vaoueUnbound();
    調用機制
    如果一個類實現了HttpSessionBindingListener接口,則當這個類的對象通過session.setAttribute()被綁定到Session對象中時,
    則該對象的valueBound()方法被自動調用,當這個對象從Session中刪除時(調用session.invalidate()和session.removeAtrribute()
    方法,或Session對象過期)valueUnbound()方法將被自動調用.
    --------------------------------------------------------------------------------------------------------
    HttpSessionActivationListener
    1 sessionDidActivate();
    2 sessionWillPassivate();
    ---------------------------------------------------------------------------------
    例子:
    1 建立CounterListener處理類
    import javax.servlet.http.HttpSessionEvent;
    import javax.servlet.http.HttpSessionListener;
    public class CounterListener implements HttpSessionListener {

     private static long onlineNumber=0;
     public void sessionCreated(HttpSessionEvent se) {
      onlineNumber++;
     }

     public void sessionDestroyed(HttpSessionEvent se) {
      onlineNumber--;
     }
     
     public static long getOnlineNumber(){
      return onlineNumber;
     }
    }
    2 配置web.xml
    <listener>
        <listener-class>com.tags.CounterListener</listener-class>
    </listener>
    3 JSP頁面
    <%@page import="com.tags.CounterListener;"%>
    <body>
        當前的在線人數:<%=CounterListener.getOnlineNumber() %> <br>
    </body>
    ----------------------------------------------------------------------------
    ServletContext監聽器接口
    ServletContextListener
    1 contextInitialized()
    2 contextDestroyed()
    調用機制
    當在web應用中部署了實現該接口的實現類后,在WEB容器加載WEB應用時(如:啟動服務器)就會自動調用contextInitialized()方法,
    而當WEB容器銷毀WEB應用時(如:關閉服務器),會自動調用contextDestroyed()方法.
    -----------------------------------------------------------------------------------
    ServletContextAttributeListener
    1 attributeAdded()
    2 attributeReplaced()
    3 attributeRemoved()
    觸發事件的代碼
    context.setAttribute("counter",new Integer(0));
    context.setAttribute("counter",new Integer(100));
    context.removeAttribute("counter");
    -----------------------------------------------------------
    HttpServletRequest監聽器
    ServletRequestListener
    1 requestInitialized();
    2 requestDestroyed()
    調用機制
    與ServletContextListener接口類似,在web應用中部署實現該接口的實現類扣,在HttpServletRequest對象(JSP中的request對象)建立
    或者被銷毀時,由web容器自動調用requestInitialized()或者requestDestroyed()方法.
    --------------------------------------------------------------------------------------
    ServletRequestAttributeListener
    1 attributeAdded();
    2 attributeReplaced();
    3 attributeRemoved();
    觸發事件的代碼
    request.setAttribute("username","lisi");
    request.setAttribute("username","wangwu");
    request.removeAttribute("username");

    ******************************************************************
    public class ListenerOnline implements HttpSessionLinstener,ServletContext{
      private  application;
      public void sessionCreated(HttpSessionEvent event){
        Integer n=(Integer)application.getAttrabute("z",1000);
        application.setAttrabute("z",n.IntValue()+1);
       
      }
       public void sessionDestroyed(HttpSessionEvent event){
      }
      public void contextInitialized(ServletContextEvent event){
        application=event.getServletContext();
        application.setAttrabute("z",1000);
      }
       public void contextDestroyed(ServletContextEvent event){
      }
    }

    <listener>
        <listener-class>com.tags.ListenerOnline</listener-class>
    </listener>

    <meta http-equiv="refresh" content="3"/>

    posted @ 2009-11-29 22:47 junly 閱讀(330) | 評論 (0)編輯 收藏

    -HttpServletRequest request對象

    request.getParameter("param");

    request.setAttribute("loginname",object);

    request.setCharacterEncoding("gb2312");
    輸入內容轉成中文
    -HttpServletResponse response對象

    response.setContentType("text/html;charset=gb2312");
    設置輸出為中文
    response.sendRediredt("url");

    -RequsetDispatcher dispatcher=request.getRequestDispatcher(url);
    定義轉發器
    dispatcher.forward(request,response);

    -HttpSession session對象
    創建對象的兩種方法
    HttpSession session = request.getSession(boolean value);
    HttpSession session = request.getSession();
    方法一:true時,返回該當前請求相關的會話,如果不存在創建一個新的會話,并返回。
         false時,返回該當前請求相關的會話,如果不存在返回null,不創建會話。
    方法二:等同于方法一為true時。
    HttpSession接口的方法
    session.setAttribute(String name,Object value);
    session.getAttribute(String name);//返回Object
    session.removeAttribute(String name);//刪除
    session.invalidate()//當前會話關閉
    */

    /*
    讀取xml文件中的參數值
    web.xml
    <servlet>
      <init-param>
        <param-name>repeat</param-name>
        <param-value>10</param-value>
      </init-param>
    </servlet>
    servlet.java
    int repeat=Integer.parseInt(this.getInitParameter("repeat"));
    */

    /*
    得到當前servlet相當信息的方法
    request.getServerName()//得到當前請求的服務器名子
    request.getRemoteAddr()得到當前請求服務器的IP地址
    request.getServerPort()得到當前請求服務器的端口號
    request.getProtlcol()得到當前請求的協議版本
    request.getContextPath()得到當前請求的上下文地址
    request.getScheme()得到當前請求的協議類型
    request.getMethod()得到當前請求的提交方式GET
    request.getRequestURI()得到當前服務器servlet的映射路徑,帶上下文
    request.getServletPath()得到當前服務器servlet的映射路徑

    servlet的頭信息
    Enumeration e=request.getHeaderNames();得到包含header名子的Enumeration類形對象
    request.getHeader()得到header名子對應的值
    例子:
    Enumeration e=request.getHeaderNames();
    String name="";
    while(e.hasMoreElements)
    {
      name=(String)e.nextElement();
      System.out.println(name);
      System.out.println(request.getHeader(name));
    }

    JSValidation驗證框架
    url:http://cosoft.org.cn/projects/jsvalidateion
    修改validation-framwork.js
    var ValidationRoot="/webproject2/js/"
    配置validation-config.xml

    FCKeditor文本編輯組件
    http://www.fckeditor.net/download

    posted @ 2009-11-29 22:46 junly 閱讀(335) | 評論 (0)編輯 收藏

    1 在src下建config.properties文件
    config.properties
    uname=aaa
    pwd=123
    2
     InputStream in=this.getClass().getResourceAsStream("/config.properties");
     //in=new FileInputStream("D:/config.properties");
     Properties pro=new Properties();
     try{
      pro.load(in);
      pro.loadFromXML();
      pro.getProperty("uname");
      //(String)pro.get("uname");
      pro.put(key,"value");
     }

    class
    class.forName(String className)
    運行中的對象都是class的一個實例,相關技術-反射
    class.getResourceAsStream(String fileName)
    查找具有給定名稱的資源

    Result類在java.servlet.jsp.jstl.sql.Result包中,可以在關閉連接的狀態下使用
    stmt=conn.createStatement();
    rs=stmt.executeQuery(sql);
    Result result=ResultSupport.toResult(rs);
    if(result==null){
     System.out.println("無數據");
    }
    for(int i=0;i<result.getRowCount();i++){
     Map map=result.getRows()[i];
     map.get("username");
    }

    作業,連接池,配置文件
    <embed src=""/>
    歌手表,gid,sex,name,love
    歌曲表,id,name,gid,typeid,歌詞
    類型表,typeid,name
    url
    controls.play()
    controls.stop()

    posted @ 2009-11-29 22:45 junly 閱讀(529) | 評論 (0)編輯 收藏

    應該是中文操作系統的原因,eclipse默認的新項目的編碼是GBK,出于對編碼支持的考慮,項目組中最好統一要求是UTF-8編碼進行開發。

    修改eclipse的配置,可以使得eclipse的新建項目的默認編碼直接為UTF-8

    在菜單欄的

    Window->Preferences->General->Workspace->Text file encoding

    將其改為UFT-8即可。

    這個也是安裝完Eclipse之后應該立刻做的一件事

    但是這種修改只對當前的workspace有效,如果新建或者切換到一個新的workspace下,還是得做同樣的步驟。

    同樣

    Window->Preferences->General->Content Types中可以修改具體的不同格式的文件的默認編碼,尤其是HTML,CSS,Javascript等文件的編碼最好是修改一下,否則默認的ISO- 8859-1無法支持中文。

    不知道如何解決默認安裝完是GBK的問題,難道一定要用英文操作系統?

    myeclipse6.0下怎么樣統一全部文件編碼:

    windows---->preferences---->myeclipse---->file and editors----->jsp--->把這個目錄下的encoding選為你要設置的編碼(如UTF-8)
    這樣,你下次再新建一個JSP頁面的時候就默認是以你剛才設置的編碼了
    因為默認情況下新建一個JSP頁面的編碼是ISO8859-1的,是不能存中文的,要存中文就得手動改為GBK,UTF-8支持中文的編碼,每次新建都要修改手動修改一次編碼就很麻煩.
    經過上面的設置后就可以統一整個項目的編碼而不用再手動設置.

    posted @ 2009-11-29 22:39 junly 閱讀(723) | 評論 (0)編輯 收藏
    在window->perferences->General->Appearance->Colors and Fonts->Basic->Text Font 單擊change 修改
    posted @ 2009-11-29 22:38 junly 閱讀(970) | 評論 (0)編輯 收藏

    增強Eclipse ,MyEclipse 的代碼提示功能,具體怎么樣來配置?下面開始說步驟(注意本人用的

    MyEclipse 6.0.1做講解):


    1. 打開MyEclipse 6.0.1,然后“window”→“Preferences”

     
    2.       選擇“java”,展開,“Editor”,選擇“Content Assist”。

    3.       選擇“Content Assist”,然后看到右邊,右邊的“Auto-Activation”下面的“Auto 

    Activation triggers for java”這個選項。其實就是指觸發代碼提示的就是“.”這個符號。


    4.       “Auto Activation triggers for java”這個選項,在“.”后加abc字母,方便后面的查找

    修改。然后“apply”,點擊“OK”。


    5. 然后,“File”→“Export”,在彈出的窗口中選擇“Perferences”,點擊“下一步”。


    6. 選擇導出文件路徑,本人導出到桌面,輸入“test”作為文件名,點擊“保存”。


    7. 在桌面找到剛在保存的文件“test.epf”,右鍵選擇“用記事本打開”。


    8. 可以看到很多配置MyEclipse 6.0.1的信息


    9. 按“ctrl + F”快捷鍵,輸入“.abc”,點擊“查找下一個”。


    10. 查找到“.abc”的配置信息如下:


    如下:

     
    11. 把“.abc”改成“.abcdefghijklmnopqrstuvwxyz(,”,保存,關閉“test.epf”。


    12. 回到MyEclipse 6.0.1界面,“File”→“Import”,在彈出的窗口中選擇“Perferences”,點擊

    “下一步”,選擇剛在已經修改的“test.epf”文件,點擊“打開”,點擊“Finish”。該步驟和上面

    的導出步驟類似。


    13. 最后當然是進行代碼測試了。隨便新建一個工程,新建一個類。在代碼輸入switch,foreach等進行

    測試。你立即會發現,果然出了提示,而且無論是敲哪個字母都會有很多相關的提示了,很流暢,很方

    便。


    總結:

    “Auto Activation triggers for java”這個選項就是指觸發代碼提示的的選項,把“.”改成

    “.abcdefghijklmnopqrstuvwxyz(,”的意思,就是指遇到26個字母和.,(這些符號就觸發代碼提示功

    能了。

    順便說一下,修改類名,接口名等以不同顏色高亮的,可以這樣配置在“java”→“enditor”→

    “syntac”,右邊展開“java”→“classes”,勾上“Enable”這個選項,選擇自己喜歡的顏色即可。

    當然還有其他相關的顏色配置。具體就不說啦。其實,在“Preferences”這個東西,有很多可以配置的

    東西,使得MyEclipse 優化的,具體的就要各個人根據自己個人喜好去配置了。

    posted @ 2009-11-29 22:37 junly 閱讀(6065) | 評論 (0)編輯 收藏

    MyEclipse 快捷鍵

    1Ctrl+M切換窗口的大小
    2Ctrl+Q跳到最后一次的編輯處
    3F2當鼠標放在一個標記處出現Tooltip時候按F2則把鼠標移開時Tooltip還會顯示即Show Tooltip Description
               
    F3跳到聲明或定義的地方。
                F5
    單步調試進入函數內部。
                F6
    單步調試不進入函數內部,如果裝了金山詞霸2006則要把取詞開關的快捷鍵改成其他的。
               
    F7由函數內部返回到調用處。
                F8
    一直執行到下一個斷點。
    4Ctrl+Pg~對于XML文件是切換代碼和圖示窗口
    5Ctrl+Alt+IJava文件中變量的相關信息
    6Ctrl+PgUp對于代碼窗口是打開“Show List”下拉框,在此下拉框里顯示有最近曾打開的文件
    7Ctrl+/ 在代碼窗口中是這種//~注釋。
                Ctrl+Shift+/
    在代碼窗口中是這種/*~*/注釋,在JSP文件窗口中是<!--~-->
    8Alt+Shift+O(或點擊工具欄中的Toggle Mark Occurrences按鈕) 當點擊某個標記時可使本頁面中其他地方的此標記黃色凸顯,并且窗口的右邊框會出現白色的方塊,點擊此方塊會跳到此標記處。
    9右擊窗口的左邊框即加斷點的地方選Show Line Numbers可以加行號。
    10Ctrl+I格式化激活的元素Format Active Elements
                 
    Ctrl+Shift+F格式化文件Format Document
    11Ctrl+S保存當前文件。
                  Ctrl+Shift+S
    保存所有未保存的文件。
    12Ctrl+Shift+M(先把光標放在需導入包的類名上) 作用是加Import語句。
                  Ctrl+Shift+O
    作用是缺少的Import語句被加入,多余的Import語句被刪除。
    13Ctrl+Space提示鍵入內容即Content Assist,此時要將輸入法中Chinese(Simplified)IME-Ime/Nonlme Toggle的快捷鍵(用于切換英文和其他文字)改成其他的。
                  Ctrl+Shift+Space
    提示信息即Context Information
    14)雙擊窗口的左邊框可以加斷點。
    15Ctrl+D刪除當前行。

    Alt+當前行和下面一行交互位置(特別實用,可以省去先剪切,再粘貼了)
    Alt+
    當前行和上面一行交互位置(同上)
    Alt+前一個編輯的頁面
    Alt+
    下一個編輯的頁面(當然是針對上面那條來說了)

    Alt+Enter 顯示當前選擇資源(工程,or 文件 or文件)的屬性

    Shift+Enter 在當前行的下一行插入空行(這時鼠標可以在當前行的任一位置,不一定是最后)
    Shift+Ctrl+Enter
    在當前行插入空行(原理同上條)

    Ctrl+Q 定位到最后編輯的地方
    Ctrl+L
    定位在某行 (對于程序超過100的人就有福音了)
    Ctrl+M
    最大化當前的EditView (再按則反之)
    Ctrl+/ 注釋當前行,再按則取消注釋
    Ctrl+O
    快速顯示 OutLine
    Ctrl+T
    快速顯示當前類的繼承結構
    Ctrl+W
    關閉當前Editer
    Ctrl+K
    參照選中的Word快速定位到下一個
    Ctrl+E
    快速顯示當前Editer的下拉列表(如果當前頁面沒有顯示的用黑體表示)

    Ctrl+/(小鍵盤) 折疊當前類中的所有代碼

    Ctrl+×(小鍵盤) 展開當前類中的所有代碼

    Ctrl+Space 代碼助手完成一些代碼的插入(但一般和輸入法有沖突,可以修改輸入法的熱鍵,也可以暫用Alt+/來代替)

    Ctrl+Shift+E 顯示管理當前打開的所有的View的管理器(可以選擇關閉,激活等操作)

    Ctrl+J 正向增量查找(按下Ctrl+J,你所輸入的每個字母編輯器都提供快速匹配定位到某個單詞,如果沒有,則在stutes line中顯示沒有找到了,查一個單詞時,特別實用,這個功能Idea兩年前就有了)

    Ctrl+Shift+J 反向增量查找(和上條相同,只不過是從后往前查)

    Ctrl+Shift+F4 關閉所有打開的Editer

    Ctrl+Shift+X 把當前選中的文本全部變味小寫

    Ctrl+Shift+Y 把當前選中的文本全部變為小寫

    Ctrl+Shift+F 格式化當前代碼

    Ctrl+Shift+P 定位到對于的匹配符(譬如{}) (從前面定位后面時,光標要在匹配符里面,后面到前面,則反之)

    下面的快捷鍵是重構里面常用的,本人就自己喜歡且常用的整理一下(:一般重構的快捷鍵都是Alt+Shift開頭的了)

    Alt+Shift+R 重命名 (是我自己最愛用的一個了,尤其是變量和類的Rename,比手工方法能節省很多勞動力)

    Alt+Shift+M 抽取方法 (這是重構里面最常用的方法之一了,尤其是對一大堆泥團代碼有用)

    Alt+Shift+C 修改函數結構(比較實用,N個函數調用了這個方法,修改一次搞定)

    Alt+Shift+L 抽取本地變量( 可以直接把一些魔法數字和字符串抽取成一個變量,尤其是多處調用的時候)

    Alt+Shift+F Class中的local變量變為field變量 (比較實用的功能)

    Alt+Shift+I 合并變量(可能這樣說有點不妥Inline)
    Alt+Shift+V
    移動函數和變量(不怎么常用)
    Alt+Shift+Z
    重構的后悔藥(Undo)


    Eclipse快捷鍵大全
    Ctrl+1 快速修復(最經典的快捷鍵,就不用多說了)
    Ctrl+D:
    刪除當前行
    Ctrl+Alt+↓
    復制當前行到下一行(復制增加)
    Ctrl+Alt+↑
    復制當前行到上一行(復制增加)

    posted @ 2009-11-29 22:36 junly 閱讀(241) | 評論 (0)編輯 收藏

    http://logging.apache.org/
    1 導入log4j的jar包

    2 在scr下創建log4j.properties
      log4j.properties
      //輸入級別debug<info<warn<error
      log4j.rootLogger=debug[info][warn][error],appender1
      //ConsoleAppender輸出到控制臺,FileAppender輸出到文件
      log4j.appender.appender1=org.apache.log4j.ConsoleAppender[FileAppender]
      //寫出的目標文件
      log4j.appender.appender1.File=c:/demllog4j.log[.html]
      //寫入文件的格式
      log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout[HTMLLayout]
     
      例1,控制臺輸出:
      log4j.rootLogger=debug,appender1
      log4j.appender.appender1=org.apache.log4j.ConsoleAppender
      log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
      例2,輸出到.log文件:
      log4j.rootLogger=debug,appender1
      log4j.appender.appender1=org.apache.log4j.FileAppender
      log4j.appender.appender1.File=c:/demllog4j.log
      log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
      例3,輸出到.html文件:
      log4j.appender.appender1=org.apache.log4j.FileAppender
      log4j.appender.appender1.File=c:/demllog4j.html
      log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout
      例4,輸出到.html文件同時輸出到控制臺:
      log4j.rootLogger=error,appender1,appender2
      log4j.appender.appender1=org.apache.log4j.ConsoleAppender
      log4j.appender.appender2=org.apache.log4j.FileAppender
      log4j.appender.appender2.File=c:/demllog4j.html
      log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
      log4j.appender.appender2.layout=org.apache.log4j.HTMLLayout
      例5,為不同類定義輸出格式
      log4j.rootLogger=debug,appender1
      #log4j.logger.com.liuwei=info,appender1
      log4j.appender.appender1=org.apache.log4j.ConsoleAppender
      log4j.appender.appender1.layout=org.apache.log4j.PatternLayout
      log4j.appender.appender1.layout.ConversionPattern=%r [%t] %p - %c - %l - %m%n

    3 編寫代碼

    public class Test {
     //參數為當前類的類名,得到logger
     private static Logger logger=Logger.getLogger(Test.class);
     
     public static void main(String[] args) {
                    //輸出信息
      //if(log.isDebugEnabled()){
           logger.debug("sssssssss");
           logger.info("ssssssss");
           logger.error("ssssssssss");
      //}
     }
    }
    --------------------------------------------------------------------
    log4j核心
     
    1 Logger 完成日志信息的處理

      輸出級別:
        debug 錯誤信息     if(log.isDebugEnabled()){log.debug("x="+x);}
        info 日常信息      if(log.isDebugEnabled()){log.info("System started at"+new Date());}
        warn 警告信息      if(log.isDebugEnabled()){log.warn("Server down-returnning");}
        error 程序出錯信息 if(log.isDebugEnabled()){log.error("Could not access server",e);}
     
    2 Appender 設置日志信息的去向

      org.apache.log4j.ConsoleAppender(控制臺)
      org.apache.log4j.FileAppender(文件)
      org.apache.log4j.DailyRollingFileAppender(每天產生一個日志文件)
      org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸時產生一個新的文件)
      org.apache.log4j.WriterAppender(將日志訊息以串流格式發送到任意指定的地方)
      org.apache.log4j.JdbcAppender(將日志訊息保存到數據庫中)

    3 Layout 設置日志信息的輸出樣式

      org.apache.log4j.HTMLLayout (以HTML表格形式布局)
      org.apache.log4j.SimpleLayout (包含日志訊息的級別和訊息字符串)
      org.apache.log4j.TTCCLayout (包含日志產生的時間、執行者、類別等等訊息)
      org.apache.log4j.PatternLayout (可以靈活地指定布局模式)
     
      PatternLayout:
         -%p 輸出優先級,即debug,info,warn,error
         -%r 輸出自應用啟到到輸出該日志訊息所耗費的毫秒數
         -%t 輸出產生該日志事件的線程名
         -%f 輸出日志訊息所屬的類的類別名
         -%c 輸出日志訊息所屬的類的全名
         -%d 輸出日志時間點的日期或時間,指定格式的方式:%d{yyyy-MM-dd HH:mm:ss}
         -%l 輸出日志訊息所屬發生位置,即輸出日志訊息的語句處于它所在的類別的第幾行
         -%m 輸出代碼中指定的訊息,如log(message)中的message
         -%n 輸出一個換行符號

    配置文件
      log4j.properties/log4j.xml

    posted @ 2009-11-29 22:34 junly 閱讀(313) | 評論 (0)編輯 收藏
         摘要:  1.Linux進入與退出系統 進入Linux系統: 必須要輸入用戶的賬號,在系統安裝過程中可以創建以下兩種帳號:   1.root--超級用戶帳號(系統管理員),使用這個帳號可以在系統中做任何事情。   2.普通用戶--這個帳號供普通用戶使用,可以進行有限的操作。   一般的Linux使用者均為普通用戶,而系統管理員一般使用超級用戶帳號完成一些系統管理的工作。如果只需要完成一...  閱讀全文
    posted @ 2009-11-29 22:32 junly 閱讀(447) | 評論 (0)編輯 收藏

    request.setCharacterEncoding("gbk");
    response.setCharacterEncoding("text/html;charset=gbk");
    String name=request.getParameter("username");

    name=new String (name.getBytes("iso-8859-1"),"gbk");

    1 過濾器
    HttpServletRequest req=(HttpServletRequest)request;
    request.setCharacterEncoding("gbk");
    china.do();
    2 子控制器
    public class ToChinese extends RequestProcessor{
     public boolean processProcess(HttpServletRequest req,HttpServletRespone rep){
      request.setCharacterEncoding("gb2312");
      return true;
     }
    }
    struts-config.xml
    <controller processorClass="com.org.ToChinese"/>

    posted @ 2009-11-29 22:30 junly 閱讀(244) | 評論 (0)編輯 收藏
    僅列出標題
    共18頁: First 上一頁 4 5 6 7 8 9 10 11 12 下一頁 Last 
    主站蜘蛛池模板: 国产精品亚洲精品日韩已方| 成人免费a级毛片| 亚洲真人日本在线| 黄色三级三级三级免费看| 免费看国产一级片| 牛牛在线精品观看免费正| 免费人成网站7777视频| 少妇亚洲免费精品| 久久亚洲国产成人精品无码区| 一个人免费观看日本www视频| 国产亚洲成人在线播放va| 国产一级一毛免费黄片| 亚洲AV无码精品色午夜在线观看| 午夜精品一区二区三区免费视频| 亚洲欧洲国产精品你懂的| 色播精品免费小视频| 亚洲欧美第一成人网站7777| 国产午夜免费秋霞影院| 一级一级毛片免费播放| 亚洲最新永久在线观看| 大地资源免费更新在线播放 | 亚洲Aⅴ在线无码播放毛片一线天| 国产一卡二卡3卡四卡免费| 免费激情视频网站| 羞羞视频免费网站入口| 亚洲AV日韩AV高潮无码专区| 69堂人成无码免费视频果冻传媒| 亚洲国产欧美国产综合一区| 亚洲中文字幕无码中文字在线| 日韩免费无码视频一区二区三区| 亚洲毛片网址在线观看中文字幕| a毛片免费播放全部完整| 亚洲午夜精品国产电影在线观看| 国产亚洲精品免费| 精品国产免费一区二区三区香蕉 | 亚洲国产精品综合久久2007| 国产一区二区免费在线| 免费日本一区二区| 亚洲欧美国产欧美色欲| 亚洲成AV人片在线观看无| 中文字幕视频免费在线观看|