Ajax代理的Java Servlet实现方法

来源:爱站网时间:2021-02-22编辑:网友分享
今天小编将在文中为大家介绍Ajax代理的Java Servlet实现方法,想必很多用户们都是非常好奇的吧,那么下面我们就一起去看看吧。

今天小编将在文中为大家介绍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;
 }
}

文中就是小编介绍Ajax代理的Java Servlet实现方法,在实际工作与开发中,将工作中的点滴记录下来,回首这些过往,你也会收获很多。 

上一篇:java中如何使用super

下一篇:JAVA如何实现caesar凯撒加密算法

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载