源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2022-02-04 06:36 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:深入Ajax代理的Java Servlet的实现详解
代码如下所示:
[u]复制代码[/u] 代码如下:
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;  } }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部