Applet與servlet通訊問題.
我在學習透過“物件序列”的技術從Servlet向Applet傳輸完整的Java物件時,程式總是除錯通不過.請各位高人指點.程式清單如下:
///////////////////////////
1.所需要物件序列的物件類.
import java.io.*;
public class DataObject implements Serializable
{
int id;
String name;
int age;
String department;
public DataObject(int id,String name,int age,String department)
{
this.id = id;
this.name = name;
this.age = age;
this.department = department;
}
private void writeObject(ObjectOutputStream out)throws IOException
{
out.writeInt(id);
out.writeInt(age);
out.writeUTF(name);
out.writeUTF(department);
}
private void readObject(ObjectInputStream in) throws IOException
{
id = in.readInt();
age = in.readInt();
name = in.readUTF();
department = in.readUTF();
}
}
///////////////////////////////////////////
2.伺服器Servlet清單
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class TestServlet extends HttpServlet
{
public void doGet(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException
{
//傳回物件給Applet
res.setContentType("application/octet-stream");
DataObject dataObj = new DataObject(1,"張三",88,"歷史系");
try {
OutputStream out;
ObjectOutputStream objStream;
out = res.getOutputStream();
objStream = new ObjectOutputStream(out);
objStream.writeObject(dataObj);
objStream.close();
} catch (ClassNotFoundException e) {
}
}
public String getServletInfo()
{
return "A simple Servlet!";
}
}
///////////////////////////////////////////
3.客戶端applet程式清單.
import java.awt.*;
import java.applet.*;
import java.net.*;
import java.io.*;
public class TestApplet extends Applet {
public void init() {
}
public void paint(Graphics g) {
g.drawString("Welcome to Java!!", 50, 60 );
}
public void invoke() {
try {
DataObject dataObj;
String info;
URL url = new URL("http://192.168.1.130:8080/Servlet/TestServlet");
URLConnection con = url.openConnection();
con.connect();
InputStream in = con.getInputStream();
showStatus("2");
ObjectInputStream objStream;
objStream = new ObjectInputStream(in);
dataObj = (DataObject)objStream.readObject();
// objStream.close();
info = Integer.toString(dataObj.id);
this.getGraphics().drawString(info,50,80);
info = Integer.toString(dataObj.age);
this.getGraphics().drawString(info,50,100);
info = dataObj.name;
this.getGraphics().drawString(info,50,120);
info = dataObj.department;
this.getGraphics().drawString(info,50,140);
}
catch (Exception e) {
}
}
}
///////////////////////////
1.所需要物件序列的物件類.
import java.io.*;
public class DataObject implements Serializable
{
int id;
String name;
int age;
String department;
public DataObject(int id,String name,int age,String department)
{
this.id = id;
this.name = name;
this.age = age;
this.department = department;
}
private void writeObject(ObjectOutputStream out)throws IOException
{
out.writeInt(id);
out.writeInt(age);
out.writeUTF(name);
out.writeUTF(department);
}
private void readObject(ObjectInputStream in) throws IOException
{
id = in.readInt();
age = in.readInt();
name = in.readUTF();
department = in.readUTF();
}
}
///////////////////////////////////////////
2.伺服器Servlet清單
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class TestServlet extends HttpServlet
{
public void doGet(HttpServletRequest req,HttpServletResponse res) throws ServletException,IOException
{
//傳回物件給Applet
res.setContentType("application/octet-stream");
DataObject dataObj = new DataObject(1,"張三",88,"歷史系");
try {
OutputStream out;
ObjectOutputStream objStream;
out = res.getOutputStream();
objStream = new ObjectOutputStream(out);
objStream.writeObject(dataObj);
objStream.close();
} catch (ClassNotFoundException e) {
}
}
public String getServletInfo()
{
return "A simple Servlet!";
}
}
///////////////////////////////////////////
3.客戶端applet程式清單.
import java.awt.*;
import java.applet.*;
import java.net.*;
import java.io.*;
public class TestApplet extends Applet {
public void init() {
}
public void paint(Graphics g) {
g.drawString("Welcome to Java!!", 50, 60 );
}
public void invoke() {
try {
DataObject dataObj;
String info;
URL url = new URL("http://192.168.1.130:8080/Servlet/TestServlet");
URLConnection con = url.openConnection();
con.connect();
InputStream in = con.getInputStream();
showStatus("2");
ObjectInputStream objStream;
objStream = new ObjectInputStream(in);
dataObj = (DataObject)objStream.readObject();
// objStream.close();
info = Integer.toString(dataObj.id);
this.getGraphics().drawString(info,50,80);
info = Integer.toString(dataObj.age);
this.getGraphics().drawString(info,50,100);
info = dataObj.name;
this.getGraphics().drawString(info,50,120);
info = dataObj.department;
this.getGraphics().drawString(info,50,140);
}
catch (Exception e) {
}
}
}
相關文章
- applet 和servlet通訊問題APPServlet
- Servlet&Applet通訊補遺 (轉)ServletAPP
- Application和servlet間通訊問題APPServlet
- 請教高手servlet與JSP頁面的通訊問題?ServletJS
- applet向servlet傳送資料出現問題APPServlet
- 自己封裝的一個 servlet 和 applet 序列化通訊的好例子封裝ServletAPP
- MIDP與CGI和Servlet間通訊(轉)Servlet
- 問一個透過物件序列化servlet給applet傳送影像的問題!!急!物件ServletAPP
- javascript呼叫applet問題?急JavaScriptAPP
- FLEX4與JAVA通訊中遇到的問題FlexJava
- Servlet傳送物件給Applet使用 (轉)Servlet物件APP
- jboss下applet訪問ejb的問題APP
- 再問applet中的滑鼠事件問題!!APP事件
- 請教applet程式的問題APP
- 請教applet中文化問題APP
- 一個applet的簡單問題APP
- Servlet Cookie更新的問題ServletCookie
- Applet間的通訊(2)--Tricks of the Java Programming Gurus (轉)APPJava
- 5.React中元件通訊問題React元件
- 485通訊協議問題淺析協議
- applet的一個問題,再線等!APP
- 請教XMLHttpRequest和Servlet問題XMLHTTPServlet
- 求助servlet&jsp問題ServletJS
- iframe之間通訊問題及iframe自適應高度問題
- React.js 中的元件通訊問題ReactJS元件
- 【IDEA】HTML通過servlet3.0註解名提交表單到servlet類找不到頁面的問題IdeaHTMLServlet
- 急問:關於servlet中得session問題ServletSession
- servlet 呼叫jdbc 出現得問題ServletJDBC
- Tomcat下Servlet的地址問題TomcatServlet
- 解決go-micro與其它gRPC框架之間的通訊問題GoRPC框架
- objective c實現authCode 解決php與ios通訊加密的問題ObjectPHPiOS加密
- Binder通訊機制與IPC通訊.md
- Android 多程式通訊之幾個基本問題Android
- Android多程式通訊之幾個基本問題Android
- Vue的常見問題(七) - 元件的通訊方式Vue元件
- 使用 postMessage 解決 iframe 跨域通訊問題跨域
- ISA發生RPC通訊問題排錯方法RPC
- 序列通訊與並行通訊的區別並行