用AjaxProxyServlet 跨域ajax请求

老庄的代码里用了DataInputStream,这个类的readLine()不被推荐使用,所以换成了 InputStreamReader
添加了代码来处理Ajax请求中的参数。
java 代码
 
  1. /* 
  2.  * Created on 2007-1-16 
  3.  */  
  4. import javax.servlet.http.HttpServlet;

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;

    import java.net.URL;

    import java.util.Enumeration;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    public class AjaxProxyServlet extends HttpServlet {
        protected void service(HttpServletRequest req,
                               HttpServletResponse resp) throws ServletException,
                                                                IOException {
            resp.setContentType("text/html");
            PrintWriter pw = resp.getWriter();
            Enumeration paramNames = req.getParameterNames();
            StringBuffer bfParams = new StringBuffer();
            bfParams.append(req.getParameter("url")).append("?1=1");
            while(paramNames.hasMoreElements()) {
                String param = (String)paramNames.nextElement();
                if("url".equals(param)){continue;}
                bfParams.append("&").append(param).append("=").append(req.getParameter(param));
            }
            
            URL url = new URL(bfParams.toString());
            BufferedReader bf =
                new BufferedReader(new InputStreamReader(url.openStream()));
            String line;
            while ((line = bf.readLine()) != null) {
                pw.println(line);
            }
            bf.close();
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值