文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>applet 与 servlet 通讯

applet 与 servlet 通讯

时间:2010-05-14  来源:emanbox

有朋友问到一个问题,applet与servlet通讯,平时用servlet,applet还没有用过,仅知道applet是在浏览器中执行的java程序. 马上查资料写了一个小例子,如下
测试/开发环境, linux, firefox , netbeans6.8, jdk6

先写一个applet, 如图
在netbeans中创建一个applet窗体




第二步,定义类名 Userinfo


第三步, 设计自己的界面, 这里简单做了一个界面


在'登录'按钮和'页面跳转'按钮的动作事件中编写程序:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
        try {
            // TODO 页面跳转

            this.getAppletContext().showDocument(new URL("http://192.168.2.2/java/Applet.html"));
        }
        catch (MalformedURLException ex) {
            ex.printStackTrace();
        }

    }

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
        // TODO 登录

        String name = this.jTextField1.getText();
        try {
            URL url = new URL("http://127.0.0.1:8084/sa/userinfo.jsp?name=" + name);
            URLConnection connection = url.openConnection(); // 连接url

            java.io.InputStream is = connection.getInputStream(); // 得到服务端的回应


            StringBuffer sb = new StringBuffer();
            int c = is.read();
            while (c > 0){
                sb.append((char)c);
                c = is.read();
            }
            this.jTextField2.setText(sb.toString());
            if (sb.toString().equals("ok")){
                this.getAppletContext().showDocument(new URL("http://192.168.2.2/java/Applet.html"));
            }
        }
        catch (MalformedURLException ex) {
            Logger.getLogger(Useinfo.class.getName()).log(Level.SEVERE, null, ex);
        }
        catch (IOException ex) {
            Logger.getLogger(Useinfo.class.getName()).log(Level.SEVERE, null, ex);
        }
    }


url对象一定要指明协议 http

然后在写一个服务端, 服务端使用servlet比较好, 这里只写了一个jsp, 其实一样.
先写一个包含applet的页面 index.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>JSP Page</title>
    </head>
    <body>
        dd
        <P>
<APPLET codebase="/sa/" code="applet/Useinfo.class" width=450 height=400></APPLET>
</P>
        <h1>Hello World!</h1>
    </body>
</html>

<applet>标记就是使用applet,code是applet程序的类,包含包名
codebase是访问applet类的路径, codebase+code 组成一个完整的url部分.

再写一个处理页面,userinfo.jsp
这段程序的作用就是接收客户端发来的请求,接收参数, 然后将处理结果返回

<%
            String name = request.getParameter("name");

            if (name.endsWith("makei")){
                out.print("ok");
                }
            else{
                out.print("fail");
                }
%>


要注意的是, jsp里面不要输出没有用的内容, 所以这里使用servlet比较好.

程序就写完了.

下面我们部署applet.
先拷贝applet生成后的class文件,要连同包一起拷贝, 可以从netbeans的'文件'侧栏'里


然后赋值到web项目里




现在启动web服务器 tomcat或其他, 访问






排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载