0

在我正在做的一个项目中,由于浏览器中“同源策略”的限制,我被迫开发服务器端部分,这会阻止 AJAX 向页面域之外的任何内容发出请求。

因此,我正在构建一个 Java Servlet,它将充当页面的处理程序,并将从外部站点检索 XML 并使用 AJAX 将其返回到客户端页面

我将使用 GET 参数来指示 servlet 从哪个 URL 获取 XML。

我是 Java 的初学者,我可以在 PHP 中轻松做到这一点,但遗憾的是没有可用的环境来托管 PHP 或 Apache

骨架代码

public void doGet(HttpServletRequest agentRequest, HttpServletResponse agentResponse) 
throws ServletException, IOException
{

    agentResponse.setContentType("text/xml");


    //determine if agentRequest is for templateList or templateDetails


        //build URL for specific request

    //if no parameters sent or invalid send error response


    //fetch XML from URL 


    //output response XML to client  

}

我不想要一个完整的代码解决方案,只是参考和想法让我朝着正确的方向前进!

例如,为此使用什么 Java 功能等。

谢谢

4

1 回答 1

1

根据要求,一些高级想法可以帮助您入门:首先,从请求参数中获取外部 URL:

//equivalent of PHP $_GET["url"]
String externalUrl = agentRequest.getParameter("url"); 

然后您需要从外部 URL 检索响应。关于该主题已经有各种 Q'a 和 A's,包括How do I do a HTTP GET in Java?

最后,您需要使用提供的 OutputStream 将响应写入响应:

agentResponse.getOutputStream();
于 2013-04-04T11:28:40.977 回答