Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tomcat 如何在Servlet代码中将JSP页面作为电子邮件内容获取_Tomcat - Fatal编程技术网

Tomcat 如何在Servlet代码中将JSP页面作为电子邮件内容获取

Tomcat 如何在Servlet代码中将JSP页面作为电子邮件内容获取,tomcat,Tomcat,我想在Servlet代码中通过Google或其他电子邮件服务发送电子邮件。 由于电子邮件内容是一种动态的——接收者的名称或其某些其他部分会因情况而异,因此我想使用其中的JSP页面和JSTL特性来生成电子邮件内容 如何在Servlet代码中从内部获取JSP生成的页面内容 如果可能,我不想与电子邮件内容页建立任何本地HTTP连接。 我的web服务器环境将是Tomcat 6和Servelt 2.5。我看到了几种解决方案: 1) 正常地创建JSP,从java类向它发出请求,并将响应内容放入邮件中。(见S

我想在Servlet代码中通过Google或其他电子邮件服务发送电子邮件。 由于电子邮件内容是一种动态的——接收者的名称或其某些其他部分会因情况而异,因此我想使用其中的JSP页面和JSTL特性来生成电子邮件内容

如何在Servlet代码中从内部获取JSP生成的页面内容

如果可能,我不想与电子邮件内容页建立任何本地HTTP连接。
我的web服务器环境将是Tomcat 6和Servelt 2.5。

我看到了几种解决方案:

1) 正常地创建JSP,从java类向它发出请求,并将响应内容放入邮件中。(见SO)

2) 您可以将JspWriter的自定义实现注入到一个文件(或读取器…)中,将所有输出重定向。一个简单(但有点脏)的实现可以是: 在JSP中:

<%@page import="foo.bar.JspFileWriter"%>
<% 
   String fileName = "JspStartContent" + System.currentTimeMillis() + ".html";
   out = new JspFileWriter(new File("c:\\Mobile", fileName), out); 

%>

3)这不是你的问题的答案,但是你可以考虑XSLT来生成HTML。使用JSP,

对于这种事情常常是非常尴尬的。每当我需要为web以外的任何内容动态生成内容时,我都会使用完全不同的框架。我有点偏爱,但也有一些人喜欢。我肯定还有其他人

我发现一个单独的框架比JSP更可移植、更可靠、更易于使用

<%@page import="foo.bar.JspFileWriter"%>
<% 
   String fileName = "JspStartContent" + System.currentTimeMillis() + ".html";
   out = new JspFileWriter(new File("c:\\Mobile", fileName), out); 

%>
public class JspFileWriter extends JspWriter {

BufferedWriter out;
JspWriter originalOut;
/**
 * @param bufferSize
 * @param autoFlush
 */
public JspFileWriter(File file, JspWriter originalOut) {
    super(originalOut.getBufferSize(), originalOut.isAutoFlush());
    try {
        this.originalOut = originalOut;
        FileWriter fw = new FileWriter(file);
        out = new BufferedWriter(fw); 
    } catch (IOException ex) {
        ;
    }


/**
 * @see javax.servlet.jsp.JspWriter#clear()
 */
@Override
public void clear() throws IOException {
    originalOut.clear();

}

/**
 * @see javax.servlet.jsp.JspWriter#clearBuffer()
 */
@Override
public void clearBuffer() throws IOException {
    originalOut.clearBuffer();

}

/**
 * @see javax.servlet.jsp.JspWriter#close()
 */
@Override
public void close() throws IOException {
    originalOut.close();
    out.close();

}
    ...