如何避免将Java请求从Java Web服务器发送到自身?
实际情况是这样的:
Java Web服务器(Weblogic)接收来自用户的请求,它必须发送一个ZIP存档作为响应.存档必须从用户要求的某些文件和服务器本身生成的一个HTML报告动态生成.我想重新使用服务器在其他情况下已经使用的JSF servlet来生成此报告.所以,基本上我用的是:
HttpURLConnection self = new URL ("http://me.myself.com/report.jsf?...").openConnection (); String report_html = fetchHtmlFromConnection (self); 然后创建请求的ZIP,包括生成的HTML. 问题是,我可以避免在这种情况下发出内部HTTP请求(report.jsf)吗?这涉及到基本上没有意义(因为应用程序只是“谈论”自己),通过操作系统,HTTPD(可能在不同的机器上)等等. 解决方法
我对JSF不是很熟悉,但是从我所了解的这些,您可以使用也适用于JSP页面的技术:
>创建自己的HttpServletResponseWrapper(容器使用的类,允许您修改响应) 有一个漂亮简单的教程,向您展示如何做到这一点: 然后 >如gyan所示,从你的servlet中获取一个ServletRequestDispatcher,让你调用JSF的渲染 所以压缩Servlet就像: TempFileRespWrapper respWrapper = new TempFileRespWrapper(); RequestDispatcher dispatcher = getServletContext().getRequestDispatcher( "/report.jsf"); dispatcher.forward(request,respWrapper); File f = respWrapper.getOutputPath(); addFileToZip(f); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |