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);
}
}
分享到:
相关推荐
在IT行业中,Web开发是至关重要的领域,而`Applet`、`Servlet`和`JSP`是Java Web开发中的核心组件,它们在构建基于MVC(Model-View-Controller)模式的应用程序时发挥着关键作用。让我们深入探讨这三个概念以及它们...
在Java编程领域,Applet和Servlet是两种不同的技术,它们分别在Web应用的不同层面发挥作用。Applet是嵌入在HTML页面中的小型Java程序,能够提供客户端的交互功能,而Servlet则是运行在服务器端的Java程序,负责处理...
7. **使用 RMI (Remote Method Invocation)**:虽然 RMI 不是为浏览器环境设计的,但在特定情况下,通过加密和隧道技术,可以实现 Applet 与 Servlet 之间的 RMI 通信。 每种通信策略都有其优缺点,开发者应根据...
Java Applet与Java Servlet是两种在Web开发中用于交互的技术。Applet是早期Java技术的一种,它允许在浏览器中运行Java代码,而Servlet则是在服务器端处理HTTP请求的Java程序。两者结合,可以构建动态、交互式的Web...
5. **Servlet调用Applet方法**:在服务器端,一个Servlet可以加载并调用Applet的方法,传递参数,然后Applet执行特定的任务,最后将结果返回给Servlet,再由Servlet传递给JSP显示。 6. **使用Java RMI(远程方法...
通过分析这个项目,开发者可以学习到如何在Servlet中创建处理请求的方法,如何在Applet中构造和发送请求,以及如何解析和展示Servlet返回的数据。同时,这也涉及到网络编程的基本概念,如HTTP协议、异步通信和数据...
Applet是Java的一种小程序,它可以在用户的Web浏览器中运行,为用户提供交互式体验。而Servlet则是Java Web应用中的服务器端组件,用于处理HTTP请求并生成响应。在Applet和Servlet之间进行通信,通常是为了实现一些...
- **JDBC (Java Database Connectivity)**:如果需要访问数据库,Applet可以通过JDBC直接与Servlet共享数据库连接,Servlet执行SQL操作,然后返回结果给Applet。 - **Java Socket编程**:Applet和Servlet可以通过...
Applet通过`URLConnection`对象打开连接,然后通过`ObjectInputStream`反序列化Servlet返回的`CachedRowSet`对象,从而可以在客户端处理查询结果。 ### 关键技术点总结 - **Applet与Servlet通信**:使用HTTP协议,...
在Java编程领域,`Applet`和`Servlet`是两种重要的技术,它们分别在客户端和服务器端发挥着关键角色。本篇文章将详细探讨`Applet`与`Servlet`的网络通信,以及它们如何协同工作来实现动态交互。 首先,让我们了解...
在Java Web开发中,Servlet和Applet是两种不同的技术,它们可以协同工作以实现特定的交互功能。Servlet是在服务器端运行的Java程序,用于处理HTTP请求并生成响应,而Applet是嵌入在HTML页面中的小Java程序,可以在...
通过深入研究JSP Applet源码,开发者可以更好地理解Java在Web环境中的运行机制,同时也可以为向现代Web技术迁移做好准备。虽然Applet的使用已不如以前广泛,但其背后的原理和编程思想仍具有学习价值。
在Web开发领域,JSP(JavaServer Pages)和Applet是两种常见的技术,它们结合可以创建动态、交互式的在线应用,如我们的主题——“基于JSP Applet的聊天室”。这个聊天室系统利用了JSP的强大服务器端处理能力和...
Java开发指南——Applet与JSP篇主要涵盖了两个核心概念:Java小应用程序(Applet)和Java服务器页面(JSP)。这两个技术都是Java在Web开发中的重要组成部分,它们各自有其独特的作用和应用场景。 首先,Java Applet...
JSP文件在服务器端被转换为Servlet,然后执行。JSP的主要优点在于它使HTML设计人员和Java程序员能够更有效地协作,因为HTML模板和Java逻辑可以在同一个文件中定义,但逻辑部分可以通过Java脚本元素或JSP标签进行隔离...
3. **JSP内置对象**:JSP提供了九个内置对象,包括request、response、session、application、page、pageContext、out、exception和config,这些对象可以直接在JSP页面中使用,无需显式创建。 4. **EL(Expression ...
Java中的Applet是一种小型的Java程序,它可以在用户的Web浏览器中运行,提供了通过Web应用程序访问本地资源的能力。这种技术在早期的互联网应用中被广泛使用,允许开发者创建交互式的、动态的网页内容。然而,随着...
材料列表: 1.applet 数字签名 安全问题 2.Applet访问mysql数据库 3.Applet和Servlet利用http对象流通信 4.J2EE企业应用:Applet和Servlet的通信...等等
综上所述,JSP和Servlet在Web开发中扮演着互补的角色,JSP专注于视图展示,Servlet负责逻辑控制。了解和熟练掌握它们的特性及用法,对于构建高效、健壮的Web应用程序至关重要。在实际项目中,常常结合MVC设计模式,...