社区
Web 开发
帖子详情
applet和servlet通信的菜鸟问题(一定给分!)
fallingkent
2002-03-15 10:39:38
在一个project里编了一个applet和一个servlet,把他们放到服务器端了。在applet中应该怎样调用那个servlet呢?看一个例子说这样:
URL theURL = new URL("http://servername/myservlet");
theURL.openStream();
可是不成啊,那个myservlet的名字用.class或者不用都不行。
应该如何通信?
...全文
105
9
打赏
收藏
applet和servlet通信的菜鸟问题(一定给分!)
在一个project里编了一个applet和一个servlet,把他们放到服务器端了。在applet中应该怎样调用那个servlet呢?看一个例子说这样: URL theURL = new URL("http://servername/myservlet"); theURL.openStream(); 可是不成啊,那个myservlet的名字用.class或者不用都不行。 应该如何通信?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fallingkent
2002-03-16
打赏
举报
回复
服务器不是我配置的,我也不知道。
看来这是一个错误的选择,不如在服务器上直接放一个application算了
magus_yang
2002-03-16
打赏
举报
回复
你用jswdk还是tomcat?
fallingkent
2002-03-15
打赏
举报
回复
你这里也是通过
url=new URL("http://localhost/PostServer");
con=url.openConnection();
来操作的,可是我把它放在服务器上就
Exception : java.io.FileNotFoundException: File not found
要怎么设置它的名字吗?
peacock_king
2002-03-15
打赏
举报
回复
去www.cn-java.com看看,讲得很清楚。
magus_yang
2002-03-15
打赏
举报
回复
rmi看了,不过一直没时间实践一下
socket用vc和vb写多了,java应该不会有很大差别。这就是没有实践的理由,呵呵
corba没看过,你要另请高明了,呵呵
magus_yang
2002-03-15
打赏
举报
回复
下面是我写的post的例子,三部分applet,servlet和嵌有applet的网页
//PostClient.java
import java.net.*;
import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
class PostClientPanel extends JPanel implements ActionListener
{
public PostClientPanel()
{
strOutput=new String("输出初始化!");
vctFromServ.clear();
vctFromServ.add("输入初始化!");
cmdStep1=new JButton("第一步");
cmdStep2=new JButton("第二步");
add(cmdStep1);
add(cmdStep2);
cmdStep1.addActionListener(this);
cmdStep2.addActionListener(this);
}
public void actionPerformed(ActionEvent evt)
{
Object source=evt.getSource();
if(source==cmdStep1)
{
strOutput="第一步";
try
{
//向server发送消息
System.out.println("Before Step1 connection!");
url=new URL("http://localhost/PostServer");
con=url.openConnection();
con.setUseCaches(false);
con.setDoOutput(true);
con.setDoInput(true);
ByteArrayOutputStream byteout=new ByteArrayOutputStream();
DataOutputStream out=new DataOutputStream(byteout);
out.writeUTF("第一步");
out.flush();
byte buf[]=byteout.toByteArray();
con.setRequestProperty("Content-type","application/octet-stream");
con.setRequestProperty("Content-length",""+buf.length);
DataOutputStream dataout=new DataOutputStream(con.getOutputStream());
dataout.write(buf);
dataout.flush();
dataout.close();
byteout.close();
out.close();
}
catch(IOException e)
{
System.out.println("OUTPUT ERROR:"+e);
}
try
{
//从server接收消息
DataInputStream in=new DataInputStream(con.getInputStream());
vctFromServ.clear();
String strInput;
while((strInput=in.readUTF())!=null)
{
vctFromServ.add(strInput);
}
in.close();
}
catch(IOException e)
{
System.out.println("INPUT Error " + e);
}
}
else
{
strOutput="第二步";
try
{
System.out.println("Before Step2 connection!");
url=new URL("http://localhost/PostServer");
con=url.openConnection();
con.setUseCaches(false);
con.setDoOutput(true);
con.setDoInput(true);
ByteArrayOutputStream byteout=new ByteArrayOutputStream();
DataOutputStream out=new DataOutputStream(byteout);
out.writeUTF("第二步");
out.flush();
byte buf[]=byteout.toByteArray();
con.setRequestProperty("Content-type","application/octet-stream");
con.setRequestProperty("Content-length",""+buf.length);
DataOutputStream dataout=new DataOutputStream(con.getOutputStream());
dataout.write(buf);
dataout.flush();
dataout.close();
DataInputStream in=new DataInputStream(con.getInputStream());
vctFromServ.clear();
String strInput;
while((strInput=in.readUTF())!=null)
{
vctFromServ.add(strInput);
}
}
catch(IOException e)
{
System.out.println("Error " + e);
}
}
repaint();
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawString(strOutput,200,200);
int tmpX=200;
int tmpY=250;
for(int i=0;i<vctFromServ.size();i++)
{
g.drawString((String)vctFromServ.elementAt(i),tmpX,tmpY);
tmpY+=50;
}
}
private String strOutput;
private Vector vctFromServ=new Vector();
private JButton cmdStep1;
private JButton cmdStep2;
private URL url;
private URLConnection con;
}
public class PostClient extends JApplet
{ public void init()
{ Container contentPane = getContentPane();
contentPane.add(new PostClientPanel());
}
}
//PostServer.java
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class PostServer extends HttpServlet
{
public void service(HttpServletRequest req,HttpServletResponse resp)
{
try
{
//接收从客户端发来的数据
in=new DataInputStream(req.getInputStream());
strChoice=in.readUTF().trim();
System.out.println("strChoice="+strChoice);
//向客户端发送数据
resp.setContentType("application/octet-stream");
byteout=new ByteArrayOutputStream();
out=new DataOutputStream(byteout);
if(strChoice.equals("第一步"))
{
out.writeUTF("第一步回复1!");
out.writeUTF("第一步回复2!");
}
else if(strChoice.equals("第二步"))
{
out.writeUTF("第二步回复1!");
out.writeUTF("第二步回复2!");
out.writeUTF("第二步回复3!");
out.writeUTF("第二步回复4!");
}
out.flush();
buf=byteout.toByteArray();
resp.setContentLength(buf.length);
servletout=resp.getOutputStream();
servletout.write(buf);
}
catch(IOException ex)
{
System.out.println("out3 ERROR:"+ex);
}
}
public void destroy()
{
try
{
in.close();
servletout.close();
byteout.close();
out.close();
}
catch(Exception e)
{
System.out.println(e);
}
}
private DataInputStream in;
private String strChoice;
private byte[] buf;
private ServletOutputStream servletout;
private ByteArrayOutputStream byteout;
private DataOutputStream out;
}
//PostClient.html
<html>
<title>xyAxisApplet</title>
<body>
<!--"CONVERTED_APPLET"-->
<!-- CONVERTER VERSION 1.3 -->
<p>Applet和Servlet通讯测试:Post方法</p>
<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
WIDTH = 400 HEIGHT = 400 codebase="http://java.sun.com/products/plugin/1.3/jinstall-13-win32.cab#Version=1,3,0,0">
<PARAM NAME = CODE VALUE = "PostClient" >
<PARAM NAME="type" VALUE="application/x-java-applet;version=1.3">
<PARAM NAME="scriptable" VALUE="false">
<COMMENT>
<EMBED type="application/x-java-applet;version=1.3" CODE = "PostClient" WIDTH = 400 HEIGHT = 400 scriptable=false pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html"><NOEMBED></COMMENT>
</NOEMBED></EMBED>
</OBJECT>
<!--
<APPLET CODE = "CheckTestApplet" WIDTH = 950 HEIGHT = 342>
</APPLET>
-->
<!--"END_CONVERTED_APPLET"-->
</body>
</html>
magus_yang
2002-03-15
打赏
举报
回复
http://www.csdn.net/expert/topic/298/298350.xml?temp=.5500605
这里有个get的例子,我再找找post的,好久以前写的了,呵呵
fallingkent
2002-03-15
打赏
举报
回复
我靠,这么牛比,呵呵
我想用最简单的,对服务器要求最少的。
谢谢前辈!
magus_yang
2002-03-15
打赏
举报
回复
applet和servlet通讯的四种方法
http的get或post
socket
rmi
corba
你决定选哪一种呢?
Applet
与
Servlet
的
通信
前段时间给公司做LMS系统,需要在
Applet
与
Servlet
间进行数据
通信
,查了很多的资料,看了很多高人写的,竟不得要领,许是高人都太高了,以高人之心度了
菜鸟
之腹,后来自己结合高人的指点,多方摸索,终于算是整成功了,通己痛,以及人之痛,决定以
菜鸟
的角度写出来跟大家交流交流,希望大家多多给出宝贵的意见: 1、用输入输出流传递对象:
Applet
:import java.net.*;i
Javaweb01--
servlet
详解
一,学习目标 1、
Servlet
相关架构图 2、Serlvet生命周期 3、
Servlet
工作原理 4、请求和响应 5、转发和重定向 1.1 什么是
Servlet
和
applet
相对应,是运行在服务器端的小程序,用来处理客户端的请求并给予响应的java类,继承了Http
Servlet
类。 1、
servlet
体系结构 2、
Servlet
接口
Servlet
的框架是由两个Java包组成的:javax.
servlet
与javax.
servlet
.http。在javax.
servlet
包中.
Servlet
到底是个什么东西?教你玩转
Servlet
详细解说!!
一、
Servlet
简介 1.什么是
Servlet
? 2.实现过程 3.生命周期 4.功能 二、如何使用
Servlet
1.准备好web项目 ①新建工程 ②添加.xml配置文件 2.部署到服务器 ①安装并配置Tomcat ②配置xml文件 ③
Servlet
配置 ④项目部署 3.开启服务器 ①编写index.html代码、
Servlet
代码 ②在Tomcat服务器上运行程序 4.浏览器访问
java框架 -
Servlet
基础框架
一,
servlet
定义
Servlet
(Server
Applet
)是Java
Servlet
的简称,称为服务器端小程序、小服务程序或服务连接器,是一种使用 Java 语言来开发动态网站的技术(用Java编写的服务器端程序),具有独立于平台和协议的特性,
Servlet
是sun公司提供的一门用于开发动态web资源的技术。Sun公司在其API中提供了一个
servlet
接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤: 1、编写...
tomcat,
servlet
菜鸟
入门 如何部署一个服务器
web相关概念回顾 1. 软件架构 1. C/S:客户端/服务器端 2. B/S:浏览器/服务器端 2. 资源
分
类 1. 静态资源:所有用户访问后,得到的结果都是一样的,称为静态资源.静态资源可以直接被浏览器解析 * 如: html,css,JavaScript 2. 动态资源:每个用户访问相同资源后,得到的结果可能不一样。称为动态资源。动态资源被访问后,需要先转换为静态资源,在返回...
Web 开发
81,117
社区成员
341,740
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章