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

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

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

    posts - 8,  comments - 11,  trackbacks - 0
      2007年12月12日

     

    ,做一個最簡單的Applet:

    1,編譯JAVA類:

        {TOMCAT_HOME} = D:\tomcat6

        假設在D:\tomcat6\webapps\testweb\test目錄中新建hello目錄,在hello目錄中新建javaHelloWorld.java:

     

    package hello;

    import java.awt.*;

    import java.applet.*;

    //必須繼承Appelet

    public class HelloWorld extends Applet {

     public void paint(Graphics g )

     {

      //向外輸出的字符串

      g.drawString("Hello HelloWorldd!",5,35);

     }

    }

     

    CMD命令行中編譯該類:

        C:\Documents and Settings\Administrator>d:       

        D:>cd D:\tomcat6\webapps\testweb\test

        D:>javac hello\HelloWorld.java

     

    2,在網頁中嵌入Applet:

    D:\tomcat6\webapps\testweb\test目錄中新建testHello.html文件:

     

    <HTML>

    <TITLE>HelloWorld! Applet</TITLE>

    <APPLET

    codebase="."

    CODE="hello.HelloWorld.class"

    name="HelloWorld"

    WIDTH=200

    HEIGHT=100

    ALIGN = middle

    > 

    </APPLET>

    </HTML>

     

     

    3,運行查看Applet:

    appletviewer是一個專門用來運行查看applet的工具,直接在命令行上敲打就可以

    CMD命令行中

        >d:       

        >cd D:\tomcat6\webapps\testweb\test

        >appletviewer testHello.html

    如果啟動了TOMCAT,也可以在瀏覽器中瀏覽,不過有些瀏覽器不支持,需要JAVA插件才可以看到效果,比如遨游,我是在IE6.0中運行可以看到。

     

     

    二,Applet進一步處理:

    如果想把網頁中的Applet標簽轉換成<Object>或者<Embed>形式,需要做以下工作,

    4,將hello目錄打包:

        >d:       

        >cd D:\tomcat6\webapps\testweb\test

        >jar -cvf hello.jar ./hello

     

    5,使用htmlconverter工具來轉換:

        1)下載htmlconverter==>http://java.sun.com/products/plugin/1.3/docs/html_converter.html

        2)下載后是一個壓縮文件,解壓縮后成為一個jar包,假設該jar包在D:\tomcat6\webapps\testweb\test

       

        >d:       

        >cd D:\tomcat6\webapps\testweb\test   

        >java -jar htmlconv1_3.jar helloworld.jsp        (注:不清楚htmlconverter怎么用的,可以敲命令查看幫助:java -jar htmlconv1_3.jar -help)

        此時helloworld.jsp中的代碼將被轉換成如下樣式:

     

    <HTML>

    <TITLE>HelloWorld! Applet</TITLE>

    <!--"CONVERTED_APPLET"-->

    <!-- HTML CONVERTER -->

    <OBJECT classid="clsid:E19F9331-3110-11d4-991C-005004D3B3DB"

    WIDTH = 200 HEIGHT = 100 NAME = "HelloWorld" ALIGN = middle  codebase="http://java.sun.com/products/plugin/1.3.0_02/jinstall-130_02-win32.cab#Version=1,3,0,2">

    <PARAM NAME = CODE VALUE = "hello.HelloWorld.class" >

    <PARAM NAME = CODEBASE VALUE = "." >

    <PARAM NAME = ARCHIVE VALUE = "HelloWorld.jar" >

    <PARAM NAME = NAME VALUE = "HelloWorld" >

     

    <PARAM NAME="type" VALUE="application/x-java-applet;jpi-version=1.3.0_02">

    <PARAM NAME="scriptable" VALUE="false">

    <COMMENT>

    <EMBED type="application/x-java-applet;jpi-version=1.3.0_02"  CODE = "hello.HelloWorld.class" CODEBASE = "." ARCHIVE = "HelloWorld.jar" NAME = "HelloWorld" WIDTH = 200 HEIGHT = 100 ALIGN = middle  scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3.0_02/plugin-install.html"><NOEMBED>

     

    </NOEMBED>

    </EMBED>

    </COMMENT>

    </OBJECT>

     

    <!--

    <APPLET CODE = "hello.HelloWorld.class" CODEBASE = "." ARCHIVE = "HelloWorld.jar" WIDTH = 200 HEIGHT = 100 NAME = "HelloWorld" ALIGN = middle>

     

     

    </APPLET>

    -->

     

     

    <!--"END_CONVERTED_APPLET"-->

     

    </HTML>

     

    這樣轉換就已經完成,此時再用appletviewer去查看,效果和前面一致

     

     

     

     

    posted @ 2007-12-12 13:19 詩語江南 閱讀(4710) | 評論 (0)編輯 收藏
      2007年10月14日
    本文轉自BeanSoft: http://m.tkk7.com/beansoft/archive/2007/10/09/151368.html

    常見的 Tomcat 5 表單編碼提交后亂碼的解決方案有很多, 有改 Tomcat Connector 屬性的, 有加過濾器的. 但是 Tomcat 自帶的那個過濾器只解決了 POST 方式的亂碼卻不能處理 GET 方式的亂碼.  在這里那我就給出一個不需要修改任何 Tomcat 配置文件的完美解決中文問題的過濾器的代碼:

    首先是我們的測試頁面:

    GET 方式: POST 方式:

    index.jsp

    <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
        <html>
        <head>
        <title>表單測試頁面</title>
        </head>
        <body>
        <form action="action.jsp">
        GET 方式: <input type=text name="name" value="GET 中文">
        <input type=submit>
        </form>
        <form action="action.jsp" method="POST">
        POST 方式: <input type=text name="name" value="POST 中文">
        <input type=submit>
        </form>
        </body>
        </html>
        

    和普通的表單沒有任何區別.

    然后就是表單提交頁面 action.jsp:

    <%@ page language="java" pageEncoding="GBK"%>
        <html>
        <body>
        參數: <%=request.getParameter("name") %> <br>
        </body>
        </html>

    接著是過濾器的配置文件 web.xml (用 2.5 版本也可以):

    <?xml version="1.0" encoding="UTF-8"?>
        <web-app version="2.4"
        xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
        http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
        <filter>
        <filter-name>TomcatFormFilter</filter-name>
        <filter-class>filters.TomcatFormFilter</filter-class>
        </filter>
        <filter-mapping>
        <filter-name>TomcatFormFilter</filter-name>
        <url-pattern>*.jsp</url-pattern>
        </filter-mapping>
        <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
        </web-app>

    最后最關鍵的就是我們的過濾器代碼了, 對 GET 方式使用請求包裝器, 而 POST 方式則用 setCharacterEncoding():

    package filters;
        import java.io.IOException;
        import javax.servlet.Filter;
        import javax.servlet.FilterChain;
        import javax.servlet.FilterConfig;
        import javax.servlet.ServletException;
        import javax.servlet.ServletRequest;
        import javax.servlet.ServletResponse;
        import javax.servlet.ServletException;
        import  javax.servlet.http.HttpServlet;
        import javax.servlet.http.HttpServletRequest;
        import javax.servlet.http.HttpServletRequestWrapper;
        import javax.servlet.http.HttpServletResponse;
        public class TomcatFormFilter implements Filter {
        /**
              * Request.java
              * 對 HttpServletRequestWrapper 進行擴充, 不影響原來的功能并能提供所有的 HttpServletRequest
              * 接口中的功能. 它可以統一的對 Tomcat 默認設置下的中文問題進行解決而只需要用新的 Request 對象替換頁面中的
              * request 對象即可.
              */
        class Request extends HttpServletRequestWrapper
        {
        public Request(HttpServletRequest request) {
        super(request);
        }
        /**
                 * 轉換由表單讀取的數據的內碼.
                 * 從 ISO 字符轉到 GBK.
                 */
        public String toChi(String input) {
        try {
        byte[] bytes = input.getBytes("ISO8859-1");
        return new String(bytes, "GBK");
        }
        catch (Exception ex) {
        }
        return null;
        }
        /**
                 * Return the HttpServletRequest holded by this object.
                 */
        private HttpServletRequest getHttpServletRequest()
        {
        return (HttpServletRequest)super.getRequest();
        }
        /**
                 * 讀取參數 -- 修正了中文問題.
                 */
        public String getParameter(String name)
        {
        return toChi(getHttpServletRequest().getParameter(name));
        }
        /**
                 * 讀取參數列表 - 修正了中文問題.
                 */
        public String[] getParameterValues(String name)
        {
        String values[] = getHttpServletRequest().getParameterValues(name);
        if (values != null) {
        for (int i = 0; i < values.length; i++) {
        values[i] = toChi(values[i]);
        }
        }
        return values;
        }
        }
        public void destroy() {
        }
        public void doFilter(ServletRequest request, ServletResponse response,
        FilterChain chain) throws IOException, ServletException {
        HttpServletRequest httpreq = (HttpServletRequest)request;
        if(httpreq.getMethod().equals("POST")) {
        request.setCharacterEncoding("GBK");
        } else {
        request = new Request(httpreq);
        }
        chain.doFilter(request, response);
        }
        public void init(FilterConfig filterConfig) throws ServletException {
        }
        }
        

    怎么樣, 是不是很簡單也很方便呢?


    posted @ 2007-10-14 22:16 詩語江南 閱讀(441) | 評論 (0)編輯 收藏
      2007年10月6日
    我是在尋找一個家園
    背著東風
    在異鄉的土壤生根
    花兒開出了四季
    被高大的城墻包圍
    銀色的記憶刻在年輪上
    像水上的迷宮
    找不到出口
    那棵十年前種下的榕樹
    倒影在水面上
    現出了家的輪廓
    我用一片樹葉將它畫下
    在我經過的每一個城市
    都將留下一片炊煙
    那是兒時的烽火
    指引著我歸來的方向
    風從石頭的縫隙里鉆出來
    把我的手臂蕩開
    風兒啊,你將帶我去往何方
    這里的樓房像沙丘一樣的多
    橋梁中間架著堅硬的絲網
    那個地方是不是
    住著貪睡的貓頭鷹
    長滿白色的蘆葦和水仙
    會不會看見黃牛賣弄舌頭
    蜜蜂和牽牛花戀愛
    風兒啊,你是不是要在那里安家
    把我所有的幻想和渴望
    都種在那片土地上
    等待春天的檢閱
    ... ...

    花兒繼續開著
    而在到達之前
    我仍將背著東風
    獨自萌芽
    posted @ 2007-10-06 23:22 詩語江南 閱讀(224) | 評論 (0)編輯 收藏
      2007年10月5日

    import java.util.*;
    /*
     * @author  詩語江南
     * @function  統計字符串中的重復部分并整理輸出,
     *      我用了兩種方法來做.
     */
    public class StrShowTimes{
     public static void main(String[] r){
      String str = "帥哥,美女,帥哥,野獸,美女,帥哥";

      Map s1 = strTimesWithMap(str);
      Set keys = s1.keySet();
      Iterator it = keys.iterator();
      while(it.hasNext()){
       String key  = (String)it.next();
       int value = (Integer) s1.get(key);
       System.out.print(key + ": " + value+ ", ");
      }
      System.out.println();
      
      strTimesWithArray(str);
     }

     //使用HashMap的方法,該方法比較簡單
     public static Map strTimesWithMap(String str){
      //key: 子字符串 String , value: 重復次數 Integer
      Map strMap = new HashMap();
      String[] strArr = str.split(",");
      for(int i =0; i< strArr.length ; i++){
       String key = strArr[i] ;
       if(strMap.containsKey(key)){
        int value = (Integer) strMap.get(key);
        strMap.put(key,++value);
       }else{
        strMap.put(key,1);
       }   
      }  
      return strMap;
     }

     //使用雙數組的方法,一個字符串數組存字符串
     //一個整形數組存與字符串數組對應位置上的字符串出現的次數
     public static void strTimesWithArray(String str){
      String[] tempArr = str.split(",");
      int i , end = 0 , len = tempArr.length;
      String[] strArr = new String[len];
      int[] intArr = new int[len];
      boolean isChange ;
      for(i = 0 ; i < len ; i++){
       isChange = false;
       for(int j = 0 ; j < end ; j++){  
        if(tempArr[i].equals(strArr[j])){
         intArr[j] = intArr[j] +1 ;
         isChange = true;   
         break;
        }      
       }
       if(isChange) continue;
       strArr[end] = tempArr[i];
       intArr[end++] = 1; 
      }
      for(i = 0 ; i < end ; i++){
       System.out.print(strArr[i] + ": " + intArr[i] + " ");
      }
     }

    }

    posted @ 2007-10-05 13:36 詩語江南 閱讀(1678) | 評論 (3)編輯 收藏
      2007年9月28日

    package sort;
    import java.io.*;
    import java.util.*;
    /*
     * @author  NoGodMe
     * @function  使用冒泡法排序
     */
    public class SortBubble {

     public static void main(String[] args) throws IOException {
      SortBubble mp = new SortBubble();
      int[] intBeforeSort = mp.getIntData();
      int[] intAfterSort = mp.sortWithBubble(intBeforeSort);
      for(int i:intAfterSort){
       System.out.println(i);
      }
     }
     
     //獲取從命令行輸入的N個數字,以-1作為結束標志,并且-1不計算在內
     public int[] getIntData() throws IOException{
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      List<Integer> intList = new ArrayList<Integer>();
      String temp = null;
      while( (temp = br.readLine()) != null ){
       if(temp.length() == 0) continue;
       int i = Integer.parseInt(temp.trim());
       if(i == -1) break;
       intList.add(i);
      }
      
      int[] intArr = new int[intList.size()];
      int count = 0;
      for(Integer i:intList){
       intArr[count++] = i.intValue();
      }
      
      return intArr;
     }
     
     //冒泡排序法
     public int[] sortWithBubble(int[] data){
      int temp;
      boolean isChange = false;
      for(int i = 0 ; i < data.length - 1 ; i++){
       isChange = false;
       for(int j = 0 ; j < data.length - 1; j++){
        if(data[j] > data[j + 1]){
         temp = data[j];
         data[j] = data[j + 1];
         data[j + 1] = temp;
         isChange = true;
        }
       }
       if(!isChange) break;
      }
      return data;
     }
     
    }

    posted @ 2007-09-28 00:14 詩語江南 閱讀(305) | 評論 (0)編輯 收藏
      2007年9月24日

    /*
      *@author 詩語江南
      *@function 將字符串反序輸出(測試形如"My name is 天才"的字符串,
    反序后為"才天 is name My")
      *@parameter 要反序的字符串
      *@return  反序后的字符串
      */
     public static String rev(String num){
      String[] nums = num.split(" ");
      StringBuffer sb = new StringBuffer();
      for(int i = nums.length-1; i>=0; i--){
       StringBuffer sb2 = null;
       if(nums[i].length() > 1){
        if(isContainZh(nums[i])){
         sb2 = new StringBuffer(nums[i]);
         sb2.reverse();
        }
       }
       if(sb2 != null)
        nums[i] = sb2.toString();
       sb.append(nums[i] + " ");
      }
      return sb.toString();
     }
     
     //判斷一個字符串是否有漢字
     public static boolean isContainZh(String str){
      boolean b = false;
      if(str.length() > 1){
       byte[] bs = str.getBytes();
       if(bs.length != str.length()){
        b = true;
       }
      }
      return b;
     }

    posted @ 2007-09-24 01:27 詩語江南 閱讀(3445) | 評論 (3)編輯 收藏
      2007年9月18日
         摘要: 0、 需要標識符
    a) 不在函數內
    1、 非法表達式開始
    b) 可能:丟失括號 .
    2. no data found
    a) 可能:setInt(1,100)中,沒有100這個值
    3. 找不到符號
    a) 可能:沒導入包
    4. 指定了無效URL
    a) 可能:數據庫名或IP錯誤,即連接出錯
      閱讀全文
    posted @ 2007-09-18 00:44 詩語江南 閱讀(5999) | 評論 (4)編輯 收藏

    云絲當筆
    大地做紙

    很安靜的來
    點點滴滴
    斷斷續續
    連成一個字母
    一行語句
    一首小詩
    我跟黑客說
    我在寫世界上最優雅的代碼
    它將蔓延
    像愛滋一樣
    侵入每個人的脈絡
    你們都將成為機器
    成為一塊微小的芯片
    我是你們的母體
    我是你們
    我是你
    我在敲打一架鋼琴
    看拉
    最優秀的鋼琴家們
    多瑙河的兩岸
    藍色的交響樂正在上演
    沒有誰是真正的領袖
    我們都在流浪
    唱著屬于自己的歌
    編著自己的故事
    這個世界很亂
    每個人都在尋找出路
    站在地圖上
    游離的電子縱橫交錯
    我把病毒投進河流
    整個天空都被壓縮
    我哽咽著
    看著自己死去
    凌晨四點
    屏幕上現出四個字
               --游戲結束

    posted @ 2007-09-18 00:03 詩語江南 閱讀(255) | 評論 (1)編輯 收藏
    僅列出標題  
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    友情連接

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲ts人妖网站| 99久久精品国产亚洲| 亚洲精品永久在线观看| 我们的2018在线观看免费高清| 亚洲精品免费视频| 日本在线看片免费| 久久精品国产亚洲AV电影| 久久国产精品免费网站| 久久精品国产亚洲av高清漫画| 在线免费观看亚洲| 亚洲国产系列一区二区三区| 在线视频免费观看www动漫| 亚洲av无码兔费综合| 亚洲第一视频在线观看免费| jizz免费在线影视观看网站| 亚洲精品国产美女久久久| 少妇人妻偷人精品免费视频| 亚洲春色另类小说| 成人午夜视频免费| 免费一级毛suv好看的国产网站 | 午夜亚洲av永久无码精品| 精品熟女少妇a∨免费久久| 亚洲永久永久永久永久永久精品| 1000部国产成人免费视频| 亚洲精品无码专区在线播放| 日产乱码一卡二卡三免费| 免费无码专区毛片高潮喷水| 亚洲成AV人片在| 67194成是人免费无码| 日韩免费码中文在线观看| 亚洲av永久无码精品古装片| 毛片高清视频在线看免费观看| 免费人人潮人人爽一区二区 | 4444亚洲国产成人精品| AV免费网址在线观看| 成人免费网站视频www| 少妇中文字幕乱码亚洲影视| 天天摸天天操免费播放小视频 | 成年人免费的视频| 免费视频成人国产精品网站| 久久久久久亚洲AV无码专区 |