首页 | 注册 | 登陆
首页 >> 技术专栏 >> java文章 >> Applet/Swing 

通过自建代理服务器增强Applet的功能(2)


作者爱心 来源爱心 加入时间:2006年01月26日
摘要:
通过自建代理服务器增强Applet的功能(2)

· 代理服务器

除了"数字签名技术"这种高级技术外,我们还可以使用其它的方法来加以实现。比如,你可以建一个网页,它可以内嵌你想要运行的小应用程序(这时它用的是存储你的服务器的假数据)。你可以提供一个按钮,用户可以使用这个按钮下载这个小应用程序和相应的策略文件,这样用户就可以从这个小应用程序运行的浏览器中运行它了。虽然这是一个可行的方法,但却使你的小应用程序的"魅…


转载:转载请保留本信息,本文来自
http://www.51dibs.com
/html/2006/article/info/a_0b7f1a2afb007db4.htm




通过自建代理服务器增强Applet的功能(2)


站点:爱心种子小博士 关键字:通过自建代理服务器增强Applet的




通过自建代理服务器增强 Applet 的功能(2)

· 代理服务器

除了"数字签名技术"这种高级技术外,我们还可以使用其它的方法来加以实现。比如,你可以建一个网页,它可以内嵌你想要运行的小应用程序(这时它用的是存储你的服务器的假数据)。你可以提供一个按钮,用户可以使用这个按钮下载这个小应用程序和相应的策略文件,这样用户就可以从这个小应用程序运行的浏览器中运行它了。虽然这是一个可行的方法,但却使你的小应用程序的"魅力"大打折扣。好在还有另外一种方法。

代理服务器方法是另外一种突破安全性的限制,实现信息的提取,现在我们就详细的介绍一下。

在你的WEB服务器上安装一个代理服务器。它是一个服务程序,随着服务器的启动而自动运行,这个程序可以获取来自于网页的请求信息,并发送给请求它的任何人。举个例子来看一下:假设你的小应用程序向驻留在同一台主机上的代理服务器发关一个GET请求
http://www.server.com/proxysvr?URL=http://www.yahoo.com/search.pl?Name=ddvip

那么代理服务器会为这个小应用程序取回网页,并把它做为GET请求的答复发送回来,这样小应用程序就可以处理取回的信息了(参图三)

图三 通过代理服务器获取数据的流程
图三 通过代理服务器获取数据的流程

由此可见代理服务器可以实现这个功能,但现有的代理服务器都是功能丰富,而我们只是利用它的最基本的功能,所以建议大家用JAVA自己写一段代码。我们是用Servlet来实现的,一个Servlet是由一个Servlet引擎来启动的。现在大部分的网络服务器都可以运行Servlet。
代理服务器源代码(ProxySvr.java)

import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class ProxySvr extends HpptServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws SevletException, IOException {
String query = null;
response.setContentType("text/html");
PrintWriter out = response.getWriter();
query = request.getParameter("URL");
if(query == null) {
response.sendError(HttpServletResponse.SC_BAD_REQUEST,
"Missing URL parameter");
return;
}
try {
query = URLDecoder.decode(query);
} catch(Exception exception) {
response.sendError(HttpServletResponse.SC_BAD_REQUEST,
"URL decode error " + exception);
return;
}
try {
URL url = new URL(query);
BufferedReader in = new BufferedReader(new
InputStreamReader(url.openStream()));
String line;
while((line = in.readLine()) != null)
out.println(line);
out.flush();
} catch(IOException exception) {
response.sendError(HttpServletResponse.SC_NOT_FOUND,
"Exception: " + exception);
}
}
}




发布人:love
→ 推荐给我的好友 → 报告错误链接
上篇文章:通过自建代理服务器增强 Applet 的功能(1...
下篇文章:Java、Java Applet与 JavaScri...
〖文章打印〗
〖关闭窗口〗
发表评论
查看评论
中“通过自建代理服务器增强Applet的功能(2)”相关内容 中“通过自建代理服务器增强Applet的功能(2)”相关内容
中“通过自建代理服务器增强Applet的功能(2)”相关内容 中“通过自建代理服务器增强Applet的功能(2)”相关内容
中“通过自建代理服务器增强Applet的功能(2)”相关内容 中“通过自建代理服务器增强Applet的功能(2)”相关内容

关于我们网站留言友情链接与我在线与我聊天领取红包管理TOP