我正在开发一个Mail API模块,我必须开发一个通用功能,根据Appliication中的各种功能发送Mails。
有一个提议的功能,其中模块将公开一个方法,该方法连同一些必需的参数将采用JSP模板。 它希望这将提取JSP的内容,这将是一个格式良好的邮件模板并发送邮件。
在JAVA中有什么方法我可以从这个JSP页面中提取内容(HTML),这样我就可以将这些HTML内容用于Mail。
提前致谢
答案 0 :(得分:3)
你有两条路可走,第一条路要短一些:
使用new URL("http://site.com/url/to/page.jsp").openConnection()
,获取InputStream
并阅读内容 - 这就好像您的服务器向自己发送请求并获得结果
使用Filter
和HttpServletResponseWrapper
,并返回自定义Writer
/ OutputStream
。每次将某些内容写入writer / stream时,将其委托给原始对象,并将其写入可以在以后读取的位置。这种解释是不够的,因为这不太可能是你需要的,但如果你愿意采取这条道路,请告诉我。
答案 1 :(得分:1)
听起来你正在尝试使用JSP作为电子邮件的模板引擎,这是它不打算做的事情。还有其他技术更适合你想要的东西,比如Velocity和Freemarker。
但是,如果您在使用JSP时已经死定,则有两种选择: 1)您可以使用Bozho描述的方法,基本上,连接到您自己的网站,让它为您生成内容 2)您可以编写JSP,在编译时编译它,并在生成的电子邮件生成器中包含生成的servlet文件,并模拟生成的JSP servlet期望从已编译的JSP中提取内容的Servlet API的输入。