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

           

          ,做一個(gè)最簡(jiǎn)單的Applet:

          1,編譯JAVA類(lèi):

              {TOMCAT_HOME} = D:\tomcat6

              假設(shè)在D:\tomcat6\webapps\testweb\test目錄中新建hello目錄,在hello目錄中新建java類(lèi)HelloWorld.java:

           

          package hello;

          import java.awt.*;

          import java.applet.*;

          //必須繼承Appelet類(lèi)

          public class HelloWorld extends Applet {

           public void paint(Graphics g )

           {

            //向外輸出的字符串

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

           }

          }

           

          CMD命令行中編譯該類(lèi):

              C:\Documents and Settings\Administrator>d:       

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

              D:>javac hello\HelloWorld.java

           

          2,在網(wǎng)頁(yè)中嵌入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,運(yùn)行查看Applet:

          appletviewer是一個(gè)專門(mén)用來(lái)運(yùn)行查看applet的工具,直接在命令行上敲打就可以

          CMD命令行中

              >d:       

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

              >appletviewer testHello.html

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

           

           

          二,Applet進(jìn)一步處理:

          如果想把網(wǎng)頁(yè)中的Applet標(biāo)簽轉(zhuǎn)換成<Object>或者<Embed>形式,需要做以下工作,

          4,將hello目錄打包:

              >d:       

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

              >jar -cvf hello.jar ./hello

           

          5,使用htmlconverter工具來(lái)轉(zhuǎn)換:

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

              2)下載后是一個(gè)壓縮文件,解壓縮后成為一個(gè)jar包,假設(shè)該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)

              此時(shí)helloworld.jsp中的代碼將被轉(zhuǎn)換成如下樣式:

           

          <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>

           

          這樣轉(zhuǎn)換就已經(jīng)完成,此時(shí)再用appletviewer去查看,效果和前面一致

           

           

           

           

          posted @ 2007-12-12 13:19 詩(shī)語(yǔ)江南 閱讀(4710) | 評(píng)論 (0)編輯 收藏
          本文轉(zhuǎn)自BeanSoft: http://www.aygfsteel.com/beansoft/archive/2007/10/09/151368.html

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

          首先是我們的測(cè)試頁(yè)面:

          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>表單測(cè)試頁(yè)面</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>
              

          和普通的表單沒(méi)有任何區(qū)別.

          然后就是表單提交頁(yè)面 action.jsp:

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

          接著是過(guò)濾器的配置文件 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>

          最后最關(guān)鍵的就是我們的過(guò)濾器代碼了, 對(duì) GET 方式使用請(qǐng)求包裝器, 而 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
                    * 對(duì) HttpServletRequestWrapper 進(jìn)行擴(kuò)充, 不影響原來(lái)的功能并能提供所有的 HttpServletRequest
                    * 接口中的功能. 它可以統(tǒng)一的對(duì) Tomcat 默認(rèn)設(shè)置下的中文問(wèn)題進(jìn)行解決而只需要用新的 Request 對(duì)象替換頁(yè)面中的
                    * request 對(duì)象即可.
                    */
              class Request extends HttpServletRequestWrapper
              {
              public Request(HttpServletRequest request) {
              super(request);
              }
              /**
                       * 轉(zhuǎn)換由表單讀取的數(shù)據(jù)的內(nèi)碼.
                       * 從 ISO 字符轉(zhuǎn)到 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();
              }
              /**
                       * 讀取參數(shù) -- 修正了中文問(wèn)題.
                       */
              public String getParameter(String name)
              {
              return toChi(getHttpServletRequest().getParameter(name));
              }
              /**
                       * 讀取參數(shù)列表 - 修正了中文問(wèn)題.
                       */
              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 {
              }
              }
              

          怎么樣, 是不是很簡(jiǎn)單也很方便呢?


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

          花兒繼續(xù)開(kāi)著
          而在到達(dá)之前
          我仍將背著東風(fēng)
          獨(dú)自萌芽
          posted @ 2007-10-06 23:22 詩(shī)語(yǔ)江南 閱讀(226) | 評(píng)論 (0)編輯 收藏

          import java.util.*;
          /*
           * @author  詩(shī)語(yǔ)江南
           * @function  統(tǒng)計(jì)字符串中的重復(fù)部分并整理輸出,
           *      我用了兩種方法來(lái)做.
           */
          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的方法,該方法比較簡(jiǎn)單
           public static Map strTimesWithMap(String str){
            //key: 子字符串 String , value: 重復(fù)次數(shù) 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;
           }

           //使用雙數(shù)組的方法,一個(gè)字符串?dāng)?shù)組存字符串
           //一個(gè)整形數(shù)組存與字符串?dāng)?shù)組對(duì)應(yīng)位置上的字符串出現(xiàn)的次數(shù)
           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 詩(shī)語(yǔ)江南 閱讀(1680) | 評(píng)論 (3)編輯 收藏

          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個(gè)數(shù)字,以-1作為結(jié)束標(biāo)志,并且-1不計(jì)算在內(nèi)
           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 詩(shī)語(yǔ)江南 閱讀(307) | 評(píng)論 (0)編輯 收藏

          /*
            *@author 詩(shī)語(yǔ)江南
            *@function 將字符串反序輸出(測(cè)試形如"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();
           }
           
           //判斷一個(gè)字符串是否有漢字
           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 詩(shī)語(yǔ)江南 閱讀(3447) | 評(píng)論 (3)編輯 收藏
               摘要: 0、 需要標(biāo)識(shí)符
          a) 不在函數(shù)內(nèi)
          1、 非法表達(dá)式開(kāi)始
          b) 可能:丟失括號(hào) .
          2. no data found
          a) 可能:setInt(1,100)中,沒(méi)有100這個(gè)值
          3. 找不到符號(hào)
          a) 可能:沒(méi)導(dǎo)入包
          4. 指定了無(wú)效URL
          a) 可能:數(shù)據(jù)庫(kù)名或IP錯(cuò)誤,即連接出錯(cuò)
            閱讀全文
          posted @ 2007-09-18 00:44 詩(shī)語(yǔ)江南 閱讀(5999) | 評(píng)論 (4)編輯 收藏

          云絲當(dāng)筆
          大地做紙

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

          posted @ 2007-09-18 00:03 詩(shī)語(yǔ)江南 閱讀(258) | 評(píng)論 (1)編輯 收藏
          <2007年9月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          常用鏈接

          留言簿(2)

          隨筆分類(lèi)

          隨筆檔案

          友情連接

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 长兴县| 泗水县| 灵璧县| 宿州市| 东山县| 璧山县| 凭祥市| 社会| 靖宇县| 兴隆县| 林口县| 涿鹿县| 绿春县| 西乌珠穆沁旗| 黑龙江省| 司法| 阳江市| 密山市| 宕昌县| 永定县| 冀州市| 新邵县| 房产| 赤壁市| 囊谦县| 额济纳旗| 沾化县| 江门市| 安顺市| 芦山县| 榕江县| 和硕县| 迁西县| 徐水县| 鄯善县| 略阳县| 凤冈县| 灵山县| 民县| 高清| 东阿县|