import java.applet.Applet;
import java.io.BufferedInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.net.URLConnection;
import javax.swing.JApplet;
public class AppletTest extends JApplet {
public void init(){
try{
String addr = "http://192.168.100.162:8080/Payment/Dser";
URL url = new URL(addr);
URLConnection conn = url.openConnection();
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
conn.setRequestProperty("Content-Type",
"application/x-java-serialized-object");
InputStream inS = conn.getInputStream();
String header = conn.getHeaderField(0);
inS = new BufferedInputStream(inS);
Reader r = new InputStreamReader(inS);
int c;
System.out.println("===================输出结果======================");
while ( (c = r.read()) != -1)
System.out.print( (char) c);
inS.close();
}catch(Exception e){
}
}
}
上面这是applet代码。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>here</title>
</head>
<body>
<APPLET codebase="." code="AppletTest.class" WIDTH=200 HEIGHT=100 >
</APPLET>
</body>
</html>
上面是页面代码。
package com.jhhz.test;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class Dser
*/
public class Dser extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Dser() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request, response);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setHeader("pragma", "no-cache");
response.setHeader("cache-control", "no-cache");
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.print("123456789");
System.out.println("in!");
out.flush();
out.close();
}
}
上面是servlet代码。
把applet代码复制到jsp中测试完全成功,可是一用html调用applet,servlet就没反应,这是怎么回事呢?
问题解决了servlet应该这样写:
package com.jhhz.test;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet implementation class CallServlet
*/
public class Dser extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Dser(){
super();
}
public void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, java.io.IOException {
(req.getInputStream());
resp.setContentType("application/octest-stream");
ByteArrayOutputStream byteout = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(byteout);
out.writeUTF("11232");
out.flush();
byte buf[] = byteout.toByteArray();
resp.setContentLength(buf.length);
ServletOutputStream servletout = resp.getOutputStream();
servletout.write(buf);
servletout.close();
System.out.println("in!");
}
}
而applet应该这样写:
import java.applet.Applet;
import java.awt.Graphics;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
public class Applet2 extends Applet {
/**
*
*/
private static final long serialVersionUID = -7072407105533722380L;
String response;
public void init() {
try {
String addr = "http://192.168.100.162:8080/Payment/Dser";
java.net.URL url = new java.net.URL(addr);
java.net.URLConnection con = url.openConnection();
con.setUseCaches(true);
con.setDoOutput(true);
con.setDoInput(true);
DataInputStream in = new DataInputStream(con.getInputStream());
response = in.readUTF();
in.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public void paint(Graphics g) {
g.drawString("read from server :" + response, 10, 20);
}
}
分享到:
相关推荐
用applet+servlet+jsp根据MVC模式进行从数据库中取数据进行动态描点。
材料列表: 1.applet 数字签名 安全问题 2.Applet访问mysql数据库 3.Applet和Servlet利用http对象流通信 4.J2EE企业应用:Applet和Servlet的通信...等等
NULL 博文链接:https://self4j.iteye.com/blog/914068
JSP page指令 12、 在JSP页面中包含文件和applet 13、JavaBean组件在JSP文档中的应用 14、Servlet和JSP的集成:模型-视图-控制器构架 15、简化对Java代码的访问 JSP 2.0表达式语言 <br>
如何实现java applet与servlet通讯
JSP page指令 12、 在JSP页面中包含文件和applet 13、JavaBean组件在JSP文档中的应用 14、Servlet和JSP的集成:模型-视图-控制器构架 15、简化对Java代码的访问 JSP 2.0表达式语言 <br>
JSP轉譯之後就是Servlet,各個隱含物件都對應於Servlet API中的某個物件,如果您對隱含物件的功能有什麼不瞭解的,查詢Servlet API文件中該物件的說明就可以瞭解了。 out request response config application ...
第13章 在jsp页面中包含文件和applet 13.1 在请求期间包含页面:jsp:include动作 13.2 在页面转换期间包含文件:include指令 13.3 使用jsp:forward转发请求 13.4 包含使用java插件的applet 第14章 ...
一个servlet 和 applet 通讯的完整项目 自己做的 很好 有说明文档
JSP Applet 源码
Java Applet与Java Servlet的安全通信策略与实现
24. 在JSP中如何调用浏览器中的"另存为"功能? 25. 网页全屏显示 26. 求两个日期相隔了多少天:输入时间格式为(yyyy-mm-dd) 27. 上传文件对话框 28. 分页测试 29. 下载文件 30. 简单汉字判断 31. 将JSP的变量或者bean...
applet请求servlet,然后servlet读取文件流,并把文件流返回给applet,供applet打印
Applet只有一个唯一的通信路径,但是我们可以有几种在Applet和Servlet之间交换信息的方式。Sun公司的应用程序模型所推荐的策略和我们在这里讨论的一样。将事务逻辑从界面中分离可以使得应用程序更加灵活,易于升级,...
web开发一些技术的业务流程描述 包括(java,http,applet,jsp,servlet,cookie,session的数据流向)
基于JSP applet的聊天室
java 开发指南_applet和jsp篇
Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指...
Java中用Applet画sinx,代码是比较全,使用Eclipse开发。
JSP page指令 12、 在JSP页面中包含文件和applet 13、JavaBean组件在JSP文档中的应用 14、Servlet和JSP的集成:模型-视图-控制器构架 15、简化对Java代码的访问 JSP 2.0表达式语言 <br>