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

           

          ,做一個最簡單的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)編輯 收藏
          本文轉自BeanSoft: http://www.aygfsteel.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>
              

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

          然后就是表單提交頁面 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
                    * 接口中的功能. 它可以統(tǒng)一的對 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 詩語江南 閱讀(442) | 評論 (0)編輯 收藏
          <2007年10月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          友情連接

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 乐业县| 临潭县| 巴塘县| 正宁县| 常山县| 潼关县| 夏邑县| 项城市| 峨边| 祁连县| 永济市| 库伦旗| 乌拉特前旗| 万年县| 沅江市| 禹城市| 温州市| 乡宁县| 南和县| 蒙自县| 岱山县| 工布江达县| 阳山县| 乌拉特后旗| 阿拉善盟| 延安市| 盱眙县| 东莞市| 岫岩| 西乌珠穆沁旗| 沧源| 鹤岗市| 龙南县| 金昌市| 安新县| 玛纳斯县| 兴和县| 长子县| 长武县| 大厂| 巴楚县|