求APPLET+SERVLET之间通讯简单DOME

haiyulong 2005-03-23 05:03:57
只要正确详细代码就行
越简单越好`
SERVLET用tomcat配置`
写清楚web.xml就好了
谢绝长片大论````
只要简单代码!!
多谢了`
...全文
155 点赞 收藏 24
写回复
24 条回复
chyocean 2005年05月07日
你可以把某个记录集对象的所有字段信息,都通过流的方式返回吧。
回复 点赞
chyocean 2005年05月07日
没试过返回结果集,
我也就是通过流的方式返回过记录集中的某个字段信息而已。
回复 点赞
haiyulong 2005年04月26日
request.getParameter()是传递一个参数
我是想要返回一个结果集
这该如何
回复 点赞
chyocean 2005年04月20日
request.getParameter()方法也许对你有帮助。
回复 点赞
haiyulong 2005年03月25日
有没高手答我啊
急啊。。。
回复 点赞
haiyulong 2005年03月25日
上面一句话写错了:应该是把结果再返回给applet

回复 点赞
haiyulong 2005年03月25日
to:java小菜鸟多谢了`
从servlet传递对象给applet好实现。现在问题是我要通过applet传递一个参数给servlet
或者是一个查询语句。然后servlet根据applet传过来的查询语句去查数据库,然后把结果再返回给servlet
我想首先在客户端建立连接,然后得到OutputStream
接着用ObjectOutputSttream写对象,而servlet端则需要通过request.getInputStream()得到输入流,然后读出内容,关闭输入流,然后建立输出流,写输入流,然后关闭!而客户端要再次接收这个服务器端的输出流,读完内容后关闭。客户端即有输出流又有输入流。
现在我想请教高手如何实现代码!!
万分感谢~
回复 点赞
dabo1980 2005年03月25日
第五步,配制WebServer(我用的是Tomcat4.0)
拷贝编译后的MyServlet.class到相应目录下,
编辑对应的web.xml文件,确保下面的内容正确
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<servlet>
<servlet-name>PostToApplet</servlet-name>
<servlet-class>exapplet.MyServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>
PostToApplet
</servlet-name>
<url-pattern>
/exapplet/PostToApplet
</url-pattern>
</servlet-mapping>
</web-app>

第六步,编写html文件
呼叫更新的html
<HTML>
<HEAD>
<TITLE> New Document For Using Applet Call Servlet Update Java Object</TITLE>
</HEAD>

<BODY>
Hello This is a Test!<br>
<APPLET id="obj_applet" align=center code="exapplet.MyApplet" codeBase="." width=400 height=300 name="obj_applet" archive="BV7RFD3P.ZIP"></APPLET>
<Input type=button value="CallAppletMethod" onclick="callApplet()">
<Script language=javascript>
function callApplet()
{
obj_applet.invoke();
}
</Script>
</BODY>
</HTML>

提取对象的html
<HTML>
<HEAD>
<TITLE> New Document For Using Applet </TITLE>
</HEAD>

<BODY>
Hello This is a Test!<br>
<APPLET id="obj_applet" align=center code="exapplet.MyAppletB" codeBase="." width=400 height=300 name="obj_applet" archive="BV7RFD3P.ZIP"></APPLET>
<Input type=button value="CallAppletMethod" onclick="callApplet()">
<Script language=javascript>
function callApplet()
{
obj_applet.invoke();
}
</Script>
</BODY>
</HTML>

回复 点赞
dabo1980 2005年03月25日
第四步,实现提取对象的Applet
package exapplet;
import java.awt.*;
import java.applet.*;
import java.io.*;
import java.net.*;
import netscape.javascript.*;

public class MyAppletB extends java.applet.Applet
{
public void init()
{
}
public void paint(Graphics g)
{}

//This method will be call in html
public void invoke() {
try {
URL url = new URL("http://rookie:8080/workingroom/exapplet/PostToApplet?Action=GetObject");
URLConnection urlcon = url.openConnection();
urlcon.connect();
ObjectInputStream ois=new ObjectInputStream(urlcon.getInputStream());
Person p = (Person)ois.readObject();
ois.close();
String[] info = new String[]{"Person Info\n\n-Name: "+p.getName()+"\n-Age : "+p.getAge()};
JSObject.getWindow(this).call("alert",info);
} catch (Exception e) {
}
}
}

第五步,配制WebServer(我用的是Tomcat
回复 点赞
Queen_D 2005年03月25日
UP
回复 点赞
dabo1980 2005年03月25日
第三步,实现呼叫Servlet更新对象的Applet
package exapplet;
import java.awt.*;
import java.applet.*;
import java.io.*;
import java.net.*;
import netscape.javascript.*;

public class MyApplet extends java.applet.Applet
{
public void init()
{
}
public void paint(Graphics g)
{}

//This method will be call in html
public void invoke() {
try {
URL url = new URL("http://rookie:8080/workingroom/exapplet/PostToApplet?Action=UpdateObject");
URLConnection urlcon = url.openConnection();
urlcon.connect();

DataInputStream dis=new DataInputStream(urlcon.getInputStream());
String txt = dis.readLine();
dis.close();

String[] info = new String[]{txt};
JSObject.getWindow(this).call("alert",info);
} catch (Exception e) {
}
}
}

回复 点赞
dabo1980 2005年03月25日
第二步,实现Servlet
package exapplet;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class MyServlet extends HttpServlet
{
public void doGet(HttpServletRequest req,HttpServletResponse res)
throws ServletException,IOException
{
String fPath = "H:\\XSchool\\WorkingRoom\\exapplet\\src\\java.obj";

String act = req.getParameter("Action");
if ( act.equals("UpdateObject") ) {
//创建更新JavaObject
Person p = new Person("Liaoyuan",26);
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File(fPath)));
oos.writeObject(p);
oos.close();
DataOutputStream dos = new DataOutputStream(res.getOutputStream());
dos.writeBytes("Server Java Object Updated OK!");
dos.close();
} else if ( act.equals("GetObject") ) {
//传回对象给Applet
res.setContentType("application/octet-stream");
Person p;
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new File(fPath)));
try {
p = (Person)ois.readObject();
} catch (ClassNotFoundException e) {
p = new Person();
}
ois.close();

ObjectOutputStream oos = new ObjectOutputStream(res.getOutputStream());
oos.writeObject(p);
oos.close();
}
}
public String getServletInfo()
{
return "A simple Servlet!";
}
}

回复 点赞
dabo1980 2005年03月25日
Servlet传送对象给Applet使用
前日,一位朋友与我谈论Servlet与Applet共享Java对象的问题,现发表出来与大家分享,文中瑕癖
之处甚多,望各位指教.
朋友谈论的需求是这样的:他想通过页面上一个Applet呼叫一个服务器Servlet,而从Servlet产生
一个Java对象再传给另外一个Applet,怎么样让Servlet实时地把对象传给Applet这是一个问题,有一个方
案是采用JMS(JavaMessageService),在我以后的文章中会有叙述的.这里我给大家展示一个简单的实现,那
就是让Applet主动访问Servlet,让Servlet返回Java对象.下面给出全部代码和配置,其中Applet部分涵盖
了Javascript与Applet的互相调用,对于该部分不感兴趣的朋友可以复略.
第一步,编写需要传递的对象类
/**
* Class Person just a demo for translate this class to client
* @author: rookie
* @datetime: 2002-7-26
*/
package exapplet;
import java.io.*;

public class Person implements Serializable {//必须实现Serializable接口才能序列化
private String m_Name;
private int m_Age;

public Person() {
this("",0);
}
public Person(String name,int age) {
this.m_Name = name;
this.m_Age = age;
}
public String getName() {
return m_Name;
}
public int getAge() {
return m_Age;
}

//Serializable接口中声明的方法
private void writeObject(java.io.ObjectOutputStream out)
throws IOException {
out.defaultWriteObject();
}

//Serializable接口中声明的方法
private void readObject(java.io.ObjectInputStream in)
throws IOException, ClassNotFoundException {
in.defaultReadObject();
}

public static void main(String[] args) {
try {
Person p = new Person("Liaoyuan",25);
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File("test.obj")));
oos.writeObject(p);
oos.close();
ObjectInputStream ois = new ObjectInputStream (new FileInputStream(new File("test.obj")));
Person q = (Person)ois.readObject();
ois.close();
System.out.println(q.getName());
System.out.println(q.getAge());
} catch(Exception exp) {
exp.printStackTrace();
}
}
}

回复 点赞
wwwalpha 2005年03月25日
applet通过bean保存数据

传递的source不是已经给出?
回复 点赞
haiyulong 2005年03月25日
有人会吗?
回复 点赞
haiyulong 2005年03月25日
上面只是从servlet传了个对象给applet并显示出来
不是一个结果集 而且也没applet传送给servlet信息
回复 点赞
8762164 2005年03月25日
上面告诉你怎么接收,你就反过来发出去不就好了么
回复 点赞
cfsego 2005年03月24日
learn
回复 点赞
haiyulong 2005年03月24日
谢谢
请问在APPLET和SERVLET两端的具体传递和接受代码怎么写?
比如我在APPLET上面输入北京
然后SERVLET能通过数据库输出一串东西再返回APPLET
回复 点赞
wwwalpha 2005年03月24日
String urlSuffix = "/foldername/" + getServletName();
URL m_urlServlet = new URL(protocol, host, port, urlSuffix);

回复 点赞
发动态
发帖子
Java SE
创建于2007-09-28

3.4w+

社区成员

30.7w+

社区内容

Java 2 Standard Edition
社区公告
暂无公告