深入Ajax代理的Java Servlet的实现详解

尛俗男

尛俗男

2016-02-19 09:21

今天图老师小编要跟大家分享深入Ajax代理的Java Servlet的实现详解,精心挑选的过程简单易学,喜欢的朋友一起来学习吧!
代码如下所示:
代码如下:

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;
 }
}
展开更多 50%)
分享

猜你喜欢

深入Ajax代理的Java Servlet的实现详解

编程语言 网络编程
深入Ajax代理的Java Servlet的实现详解

快速排序的深入详解以及java实现

编程语言 网络编程
快速排序的深入详解以及java实现

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

java 静态代理 动态代理深入学习

编程语言 网络编程
java 静态代理 动态代理深入学习

Java动态代理实现AOP

Java JAVA基础
Java动态代理实现AOP

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

代理模式之Java动态代理实现方法

编程语言 网络编程
代理模式之Java动态代理实现方法

java网络编程-Ajax+servlet实例

Web开发
java网络编程-Ajax+servlet实例

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

oracle10g 数据备份与导入

oracle10g 数据备份与导入

深入java垃圾回收的详解

深入java垃圾回收的详解
下拉加载更多内容 ↓