我需要读取客户端comport访问我的基于JSP的Web应用程序。
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>COMPORT</title>
</head>
<body bgcolor="blue">
<h1>ACCESSING COMPORT</h1>
<jsp:plugin align="middle" height="500" width="500" type="applet" archive="" code="SunCommSerialPort.class" name="clock" codebase="."/>
</body>
</html>
这是我读取COM端口的Java小程序代码。
import java.util.Enumeration;
import javax.comm.CommPortIdentifier;
/** @author Venugopal */
public class COMPORT {
/** @param args the command line arguments */
public static void main(String[] args) {
COMPORT CM = new COMPORT();
String StrCommPort = CM.GetSerialPort();
System.out.println("StrCommPort " + StrCommPort);
}
public String GetSerialPort() {
String Serialport = "";
Enumeration portList = CommPortIdentifier.getPortIdentifiers();
while (portList.hasMoreElements()) {
CommPortIdentifier portId = (CommPortIdentifier) portList.nextElement();
if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) {
Serialport = Serialport + portId.getName() + "//";
} else {
// ////////////System.out.println(portId.getName());
}
}
if(Serialport !=null && Serialport.length() >0){
Serialport = Serialport.substring(0, Serialport.length() - 2);
}
return Serialport;
}
}
请告诉我们该怎么做。我已将所有必要的文件保存在正确的位置。
我保留的Java代码在我修改了扩展applet并使用init()
方法删除PSVM之后工作。
答案 0 :(得分:0)
您需要授予applet权限,有几种方法可以实现。应该有一个堆栈跟踪告诉你更多。
我有点惊讶你可以签署一个小程序但不理解这个例子,无论如何你的jsp applet标签
<PARAM NAME="MAYSCRIPT" VALUE="true">
制作一个javascript函数,例如
myfunc(comport){
//do stuff
}
中的小程序
JSObject.getWindow(this).call("myfunc",comport);
或
JSObject.getWindow(this).eval("myfunc("+comport+")");
还有DOMService,但我从来没有使用它,它更类型,但你的javascript方法不会在那里