一,做一個最簡單的Applet:
1,編譯JAVA類:
{TOMCAT_HOME} = D:\tomcat6
假設(shè)在D:\tomcat6\webapps\testweb\test目錄中新建hello目錄,在hello目錄中新建java類HelloWorld.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,運行查看Applet:
appletviewer是一個專門用來運行查看applet的工具,直接在命令行上敲打就可以
在CMD命令行中
>d:
>cd D:\tomcat6\webapps\testweb\test
>appletviewer testHello.html
如果啟動了TOMCAT,也可以在瀏覽器中瀏覽,不過有些瀏覽器不支持,需要JAVA插件才可以看到效果,比如遨游,我是在IE6.0中運行可以看到。
二,Applet進一步處理:
如果想把網(wǎng)頁中的Applet標簽轉(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)下載后是一個壓縮文件,解壓縮后成為一個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)
此時helloworld.jsp中的代碼將被轉(zhuǎn)換成如下樣式:
<HTML>
<TITLE>HelloWorld! Applet</TITLE>
<!--"CONVERTED_APPLET"-->
<!-- HTML CONVERTER -->
<OBJECT classid="clsid:E
WIDTH = 200 HEIGHT = 100 NAME = "HelloWorld" ALIGN = middle codebase="http://java.sun.com/products/plugin/
<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=
<PARAM NAME="scriptable" VALUE="false">
<COMMENT>
<EMBED type="application/x-java-applet;jpi-version=
</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)完成,此時再用appletviewer去查看,效果和前面一致
常見的 Tomcat 5 表單編碼提交后亂碼的解決方案有很多, 有改 Tomcat Connector 屬性的, 有加過濾器的. 但是 Tomcat 自帶的那個過濾器只解決了 POST 方式的亂碼卻不能處理 GET 方式的亂碼. 在這里那我就給出一個不需要修改任何 Tomcat 配置文件的完美解決中文問題的過濾器的代碼:
首先是我們的測試頁面:
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> 參數(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)鍵的就是我們的過濾器代碼了, 對 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 默認設(shè)置下的中文問題進行解決而只需要用新的 Request 對象替換頁面中的 * request 對象即可. */ 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 { } }
怎么樣, 是不是很簡單也很方便呢?
背著東風(fēng)
在異鄉(xiāng)的土壤生根
花兒開出了四季
被高大的城墻包圍
銀色的記憶刻在年輪上
像水上的迷宮
找不到出口
那棵十年前種下的榕樹
倒影在水面上
現(xiàn)出了家的輪廓
我用一片樹葉將它畫下
在我經(jīng)過的每一個城市
都將留下一片炊煙
那是兒時的烽火
指引著我歸來的方向
風(fēng)從石頭的縫隙里鉆出來
把我的手臂蕩開
風(fēng)兒啊,你將帶我去往何方
這里的樓房像沙丘一樣的多
橋梁中間架著堅硬的絲網(wǎng)
那個地方是不是
住著貪睡的貓頭鷹
長滿白色的蘆葦和水仙
會不會看見黃牛賣弄舌頭
蜜蜂和牽牛花戀愛
風(fēng)兒啊,你是不是要在那里安家
把我所有的幻想和渴望
都種在那片土地上
等待春天的檢閱
... ...
花兒繼續(xù)開著
而在到達之前
我仍將背著東風(fēng)
獨自萌芽
import java.util.*;
/*
* @author 詩語江南
* @function 統(tǒng)計字符串中的重復(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ù)組的方法,一個字符串數(shù)組存字符串
//一個整形數(shù)組存與字符串數(shù)組對應(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] + " ");
}
}
}
| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
30 | 1 | 2 | 3 | 4 | 5 | 6 | |||
7 | 8 | 9 | 10 | 11 | 12 | 13 | |||
14 | 15 | 16 | 17 | 18 | 19 | 20 | |||
21 | 22 | 23 | 24 | 25 | 26 | 27 | |||
28 | 29 | 30 | 31 | 1 | 2 | 3 | |||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
常用鏈接
留言簿(2)
隨筆分類
隨筆檔案
友情連接
搜索
最新評論

- 1.?re: 將字符串反序輸出
- 評論內(nèi)容較長,點擊標題查看
- --yangge
- 2.?re: 將字符串反序輸出
-
求教+1 qq :418966608 @聆笑
- --紫喵
- 3.?re: 統(tǒng)計字符串中的重復(fù)部分并整理輸出
-
小弟在瀏覽網(wǎng)頁時 突然看到閣下您寫的 統(tǒng)計字符串中的重復(fù)部分并整理輸出
的java程序特別地興奮 十分期待能向閣下“取經(jīng)”。QQ:137206889 - --hello3180
- 4.?re: 統(tǒng)計字符串中的重復(fù)部分并整理輸出
- ff
- --ff
- 5.?re: JAVA錯誤處理大集合
- good
- --ccc