在我正在进行的项目中,由于浏览器中“同源策略”的限制,我被迫开发服务器端部分,这阻止了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
}
我不想要一个完整的代码解决方案,只需要参考和想法让我朝着正确的方向前进!
e.g。用于此的java功能等等。
由于
答案 0 :(得分:1)
根据要求,一些高级别的想法可以帮助您入门: 首先,从请求参数中获取外部URL:
//equivalent of PHP $_GET["url"]
String externalUrl = agentRequest.getParameter("url");
然后您需要从外部URL检索响应。关于该主题已经有各种Q'a和A,包括How do I do a HTTP GET in Java?
最后,您需要使用提供的OutputStream将响应写入您的响应:
agentResponse.getOutputStream();