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

           

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

          1,編譯JAVA類:

              {TOMCAT_HOME} = D:\tomcat6

              假設(shè)在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,在網(wǎng)頁中嵌入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è)專門用來運(yùn)行查看applet的工具,直接在命令行上敲打就可以

          CMD命令行中

              >d:       

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

              >appletviewer testHello.html

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

           

           

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

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

          4,將hello目錄打包:

              >d:       

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

              >jar -cvf hello.jar ./hello

           

          5,使用htmlconverter工具來轉(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 詩語江南 閱讀(4715) | 評(píng)論 (0)編輯 收藏
          本文轉(zhuǎn)自BeanSoft: http://www.aygfsteel.com/beansoft/archive/2007/10/09/151368.html

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

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

          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è)試頁面</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>
              

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

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

          <%@ page language="java" pageEncoding="GBK"%>
              <html>
              <body>
              參數(shù): <%=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>

          最后最關(guān)鍵的就是我們的過濾器代碼了, 對(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ò)充, 不影響原來的功能并能提供所有的 HttpServletRequest
                    * 接口中的功能. 它可以統(tǒng)一的對(duì) Tomcat 默認(rèn)設(shè)置下的中文問題進(jìn)行解決而只需要用新的 Request 對(duì)象替換頁面中的
                    * 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ù) -- 修正了中文問題.
                       */
              public String getParameter(String name)
              {
              return toChi(getHttpServletRequest().getParameter(name));
              }
              /**
                       * 讀取參數(shù)列表 - 修正了中文問題.
                       */
              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 詩語江南 閱讀(448) | 評(píng)論 (0)編輯 收藏
          我是在尋找一個(gè)家園
          背著東風(fēng)
          在異鄉(xiāng)的土壤生根
          花兒開出了四季
          被高大的城墻包圍
          銀色的記憶刻在年輪上
          像水上的迷宮
          找不到出口
          那棵十年前種下的榕樹
          倒影在水面上
          現(xiàn)出了家的輪廓
          我用一片樹葉將它畫下
          在我經(jīng)過的每一個(gè)城市
          都將留下一片炊煙
          那是兒時(shí)的烽火
          指引著我歸來的方向
          風(fēng)從石頭的縫隙里鉆出來
          把我的手臂蕩開
          風(fēng)兒啊,你將帶我去往何方
          這里的樓房像沙丘一樣的多
          橋梁中間架著堅(jiān)硬的絲網(wǎng)
          那個(gè)地方是不是
          住著貪睡的貓頭鷹
          長滿白色的蘆葦和水仙
          會(huì)不會(huì)看見黃牛賣弄舌頭
          蜜蜂和牽?;☉賽?br /> 風(fēng)兒啊,你是不是要在那里安家
          把我所有的幻想和渴望
          都種在那片土地上
          等待春天的檢閱
          ... ...

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

          import java.util.*;
          /*
           * @author  詩語江南
           * @function  統(tǒng)計(jì)字符串中的重復(fù)部分并整理輸出,
           *      我用了兩種方法來做.
           */
          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: 重復(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 詩語江南 閱讀(1687) | 評(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 詩語江南 閱讀(313) | 評(píng)論 (0)編輯 收藏

          /*
            *@author 詩語江南
            *@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 詩語江南 閱讀(3459) | 評(píng)論 (3)編輯 收藏
          <2007年9月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          友情連接

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 乳山市| 盈江县| 通州市| 宁德市| 凌云县| 株洲市| 克什克腾旗| 石景山区| 丽水市| 崇左市| 阳高县| 绥化市| 天等县| 新丰县| 永寿县| 桑日县| 玉屏| 和田市| 东乡| 鄯善县| 安平县| 黑山县| 乌什县| 泸水县| 修武县| 常州市| 碌曲县| 柳州市| 佛学| 子洲县| 广饶县| 承德市| 枝江市| 秦安县| 湛江市| 嘉黎县| 文成县| 修武县| 瑞丽市| 宜君县| 阿瓦提县|