2013-04-04 72 views
0

在我正在做的一个项目中,由于浏览器中“同源策略”的限制,我不得不开发一个服务器端部件,以防止AJAX向外部发出任何请求页面的域名。Servlet从URL中检索XML并返回XML响应

所以我建立一个Java Servlet的,将作为处理程序的页面,并将会从外部网站XML的使用AJAX

我会用GET参数来指示该servlet将其返回给客户端页面从哪个URL获取XML。

我与Java初学者,我可以很容易地做到这一点在PHP中,但遗憾的是没有环境availale托管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功能对于这一点,等

感谢

回答

1

按照要求,一些高层次的想法,让你开始: 首先,您可以通过请求参数外部URL:

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

然后,您需要从外部URL检索响应。目前已经有各种Q'a和对主题进行的,其中包括How do I do a HTTP GET in Java?

最后,你需要编写使用所提供的OutputStream的响应到你的回应:

agentResponse.getOutputStream();