提取JSP页面内容

时间:2010-10-13 16:54:10

标签: java api jsp javamail

我正在开发一个Mail API模块,我必须开发一个通用功能,根据Appliication中的各种功能发送Mails。

有一个提议的功能,其中模块将公开一个方法,该方法连同一些必需的参数将采用JSP模板。 它希望这将提取JSP的内容,这将是一个格式良好的邮件模板并发送邮件。

在JAVA中有什么方法我可以从这个JSP页面中提取内容(HTML),这样我就可以将这些HTML内容用于Mail。

提前致谢

2 个答案:

答案 0 :(得分:3)

你有两条路可走,第一条路要短一些:

  • 使用new URL("http://site.com/url/to/page.jsp").openConnection(),获取InputStream并阅读内容 - 这就好像您的服务器向自己发送请求并获得结果

  • 使用FilterHttpServletResponseWrapper,并返回自定义Writer / OutputStream。每次将某些内容写入writer / stream时,将其委托给原始对象,并将其写入可以在以后读取的位置。这种解释是不够的,因为这不太可能是你需要的,但如果你愿意采取这条道路,请告诉我。

然而,这不是通常的方式。您最好为您的电子邮件模板使用FreemakerVelocity等模板技术。

答案 1 :(得分:1)

听起来你正在尝试使用JSP作为电子邮件的模板引擎,这是它不打算做的事情。还有其他技术更适合你想要的东西,比如Velocity和Freemarker。

但是,如果您在使用JSP时已经死定,则有两种选择: 1)您可以使用Bozho描述的方法,基本上,连接到您自己的网站,让它为您生成内容 2)您可以编写JSP,在编译时编译它,并在生成的电子邮件生成器中包含生成的servlet文件,并模拟生成的JSP servlet期望从已编译的JSP中提取内容的Servlet API的输入。