[沧海拾遗]applet本地web开发例子

本文介绍如何使用 Java Applet 进行本地 TCP 通信。通过创建一个简单的 Applet 类并将其嵌入 HTML 中,实现了与本地服务器的数据交换。文章还详细介绍了对 jar 包进行签名的过程。

最近想做一个应用,需要用到本地的tcp服务,因此就想通过applet来实现。骤然发现,虽然用java开发web这么多年,用applet估计还是在上学期间。记录下一个简单的开发例子:

  1. 写一个applet类

     import java.applet.Applet;  
     import java.awt.Button;   
     import java.awt.event.ActionEvent;   
     import java.awt.event.ActionListener;    
     import java.io.DataOutputStream;    
     import java.net.Socket;   
    
     public class TestApplet extends Applet {
         private static final long serialVersionUID = 1L;
    
    public void init() {
        Button send = new Button("send");
        this.add(send);
        send.addActionListener(new ActionListener() {
    	    @Override
    	    public void actionPerformed(ActionEvent e) {
    		    try {
    			    Socket clientSocket = new Socket("127.0.0.1", 9998);
    			    DataOutputStream outToServer = new DataOutputStream(
    					    clientSocket.getOutputStream());
    			    outToServer.writeBytes("hello tcp" + '\n');
    			    clientSocket.close();
    		    } catch (Exception ex) {
    		    }
    	    }
        });
    
    }
     }
  2. 将所有的class文件打到jar包里:

     jar -cvf TestApplet.jar \*\.class
  3. 将applet放到html代码中:

     <?xml version = "1.0" encoding="utf-8" ?>
     <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""DTD/xhtml1-strict.dtd">
     <html xmlns = "http://www.w3.org/1999/xhtml">
     <head>
    <title>JavaSocketBridge Example</title>
     </head>
     <body>
    <applet id="TestApplet" archive="TestApplet.jar" code="TestApplet.class" codebase="." width="100" height="100"></applet>
     </body>
     </html>

这时候如果你将jar包和上面的html代码一起运行时,会报applet被本地安全设置阻止,因此需要对你的jar包进行签名,如下:

keytool -genkey -keystore test.store -alias test

这个命令用来生成密钥库。

keytool -export -keystore test.store -alias test -file test.cert

生成证书。

jarsigner -keystore test.store TestApplet.jar test

签名完成。

然后再运行页面就可以打开了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值