jsp:plugin动作如何调用一个Applet
jsp:plugin动作:
马克-to-win:jsp:plugin可以调用Java插件。Applet和Servlet对应,是浏览器里运行的一项技术。可以画图,可以运用算法,非常棒。比如可以通过Servlet把数据从服务器返回到客户端,之后绘画在浏览器当中。但由于浏览器对它的支持程度不一样,限制了它的使用。你不希望自己辛辛苦苦编完的程序,用户在用浏览器上网时,运行不了吧!所以Applet给人不可靠的感觉。
马克- to-win:马克 java社区:防盗版实名手机尾号: 73203。
例 4.5.1
实验步骤:做一个不带包的普通类(PluginApplet1),运行起jsp后,手动把PluginApplet1.class拷贝到\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\CookieTest 目录下。下面jsp中的codebase = http://localhost:8080/CookieTest/和codebase="."意思一样。注意,我的火狐和eclipse内置ie 都运行不了。只有ie8能运行。

<%@ 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);
    }
}

输出结果:





















观察jsp转变成的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浏览器中,我查看/源文件:
























作业:

1)编一个jsp,显示客户端的IP地址。
2)编一个jsp,如访问它的次数超过5次则打印“超过5次”。
3) 用声明声明一个阶乘函数,用表达显示计算5的阶乘。
(public long fact(long x)
if(x==0 return 1,else return x*fact*x-1)
4)编一个jsp,显示客户端的语言的信息(String l=request.getLocale().getDisplayLanguage())。
5)编一个jsp,记录某一页被某个人访问的次数。
6)编一个jsp,记录某一页被所有人访问的次数。
7)编一个jsp,它去调一个Servlet。(servlet get data from file,c:\1.txt)
8)编一个jsp,它去调一个Bean中的method,此方法可打印出bean的私有变量的10倍。
9)做个jsp提交后,用javabean存username 值和password,在另一个jsp中打印出username 值和password。