手机
当前位置:查字典教程网 >编程开发 >Java >深入Ajax代理的Java Servlet的实现详解
深入Ajax代理的Java Servlet的实现详解
摘要:代码如下所示:复制代码代码如下:importjava.io.IOException;importjava.io.InputStream;im...

代码如下所示:

复制代码 代码如下:

import java.io.IOException;

import java.io.InputStream;

import java.net.URL;

import javax.servlet.ServletConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletOutputStream;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

/**

* Take any request and proxy it to the given REDIRECT_BASE.

* For example, if this servlet lives at

*

* http://foo.com/forward

*

* and is inititialized with the REDIRECT_BASE

*

* http://bar.com/some/path

*

* then a GET request like

*

* http://foo.com/forward?quux=mumbley

*

* will return the results of a GET from

*

* http://bar.com/some/path?quux=mumbley

*

* This is not robust and generalized; it's simple and quick.

*

* @author jdf

*

*/

public class ProxyServlet extends HttpServlet

{

private final static String COPYRIGHT = com.ibm.dogear.Copyright.SHORT;

public static final String REDIRECT_BASE = "com.ibm.bl.servlet.RedirectServlet.redirect_base";

private String redirectBase;

@Override

public void init(ServletConfig config) throws ServletException

{

super.init(config);

redirectBase = getRequiredParam(REDIRECT_BASE);

}

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException

{

String queryString = req.getQueryString();

URL url = new URL(redirectBase + (queryString != null ? "?" + queryString : ""));

copyInputStreamToOutputStream(url.openStream(), resp.getOutputStream());

}

private void copyInputStreamToOutputStream(InputStream in, ServletOutputStream out)

throws IOException

{

try

{

try

{

byte[] buffer = new byte[1024];

int n;

while ((n = in.read(buffer)) != -1)

out.write(buffer, 0, n);

}

finally

{

out.close();

}

}

finally

{

in.close();

}

}

protected String getRequiredParam(String param) throws ServletException

{

String result = getServletConfig().getInitParameter(param);

if (result == null) {

throw new ServletException(getClass() + " requires " + param + " param");

}

return result;

}

}

【深入Ajax代理的Java Servlet的实现详解】相关文章:

深入java内存查看与分析详解

深入Java Robot实现控制鼠标和键盘的方法详解

Java IO文件编码转换实现代码

深入分析Java内存区域的使用详解

深入分析java文件路径的详解

java中 spring 定时任务 实现代码

基于Java字符编码的使用详解

java 发送邮件的实例代码(可移植)

Java中 URL实现断点下载

Java字符编码解码的实现详解

精品推荐
分类导航