jsp:plugin動作如何調(diào)用一個(gè)Applet
jsp:plugin動作:
馬克-to-win:jsp:plugin可以調(diào)用Java插件。Applet和Servlet對應(yīng),是瀏覽器里運(yùn)行的一項(xiàng)技術(shù)。可以畫圖,可以運(yùn)用算法,非常棒。比如可以通過Servlet把數(shù)據(jù)從服務(wù)器返回到客戶端,之后繪畫在瀏覽器當(dāng)中。但由于瀏覽器對它的支持程度不一樣,限制了它的使用。你不希望自己辛辛苦苦編完的程序,用戶在用瀏覽器上網(wǎng)時(shí),運(yùn)行不了吧!所以Applet給人不可靠的感覺。
馬克- to-win:馬克 java社區(qū):防盜版實(shí)名手機(jī)尾號: 73203。
例 4.5.1
實(shí)驗(yàn)步驟:做一個(gè)不帶包的普通類(PluginApplet1),運(yùn)行起jsp后,手動把PluginApplet1.class拷貝到\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\CookieTest 目錄下。下面jsp中的codebase = http://localhost:8080/CookieTest/和codebase="."意思一樣。注意,我的火狐和eclipse內(nèi)置ie 都運(yùn)行不了。只有ie8能運(yùn)行。
<%@ page contentType="text/html; charset=GBK" %>
<HTML>
<BODY>
<applet
codebase = "http://localhost:8080/CookieTest/"
code = "PluginApplet1.class"
width = "400"
height = "300"
>
</applet>
<jsp:plugin type="applet"
code="PluginApplet1.class"
width="370" height="420" codebase=".">
</jsp:plugin>
</BODY></HTML>
PluginApplet1.java:
import java.awt.*;
import java.applet.*;
public class PluginApplet1 extends Applet {
public void paint(Graphics g) {
g.drawString("A Simple Applet", 20, 20);
}
}
輸出結(jié)果:
觀察jsp轉(zhuǎn)變成的servlet是:
out.write("\r\n");
out.write("<HTML>\r\n");
out.write("<BODY>\r\n");
out.write("<applet\r\n");
out.write("codebase = \"http://localhost:8080/CookieTest/\"\r\n");
out.write("code = \"PluginApplet1.class\"\r\n");
out.write("width = \"400\"\r\n");
out.write("height = \"300\"\r\n");
out.write(">\r\n");
out.write("</applet>\r\n");
out.write("\r\n");
out.write("<OBJECT classid=\"clsid:8AD9C840-044E-11D1-B3E9-00805F499D93\"" + " width=\"" + "370" + "\"" + " height=\"" + "420" + "\"" + " codebase=\"http://java.sun.com/products/plugin/1.2.2/jinstall-1_2_2-win.cab#Version=1,2,2,0\">");
out.write("\n");
out.write("<PARAM name=\"java_code\" value=\"PluginApplet1.class\">");
out.write("\n");
out.write("<PARAM name=\"java_codebase\" value=\".\">");
out.write("\n");
out.write("<PARAM name=\"type\" value=\"application/x-java-applet;\">");
out.write("\n");
out.write("<COMMENT>");
out.write("\n");
out.write("<EMBED type=\"application/x-java-applet;\"" + " width=\"" + "370" + "\"" + " height=\"" + "420" + "\"" + " pluginspage=\"http://java.sun.com/products/plugin/\" java_code=\"PluginApplet1.class\" java_codebase=\".\"");
out.write("/>");
out.write("\n");
out.write("<NOEMBED>");
out.write("\n");
out.write("</NOEMBED>");
out.write("\n");
out.write("</COMMENT>");
out.write("\n");
out.write("</OBJECT>");
out.write("\n");
out.write("\r\n");
out.write("</BODY></HTML>");
在ie瀏覽器中,我查看/源文件:
作業(yè):
1)編一個(gè)jsp,顯示客戶端的IP地址。
2)編一個(gè)jsp,如訪問它的次數(shù)超過5次則打印“超過5次”。
3) 用聲明聲明一個(gè)階乘函數(shù),用表達(dá)顯示計(jì)算5的階乘。
(public long fact(long x)
if(x==0 return 1,else return x*fact*x-1)
4)編一個(gè)jsp,顯示客戶端的語言的信息(String l=request.getLocale().getDisplayLanguage())。
5)編一個(gè)jsp,記錄某一頁被某個(gè)人訪問的次數(shù)。
6)編一個(gè)jsp,記錄某一頁被所有人訪問的次數(shù)。
7)編一個(gè)jsp,它去調(diào)一個(gè)Servlet。(servlet get data from file,c:\1.txt)
8)編一個(gè)jsp,它去調(diào)一個(gè)Bean中的method,此方法可打印出bean的私有變量的10倍。
9)做個(gè)jsp提交后,用javabean存username 值和password,在另一個(gè)jsp中打印出username 值和password。