Я вижу несколько решений:
1) Создайте свой JSP обычно, сделать запрос к нему из класса Java и поместить содержимое ответа в вашей почте. (Найдено в SO here)
URL urlPage = new URL(url);
HttpURLConnection conn = (HttpURLConnection)urlPage.openConnection();
conn.connect();
BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
//then loop through lines of webpage with br.readLine();
//and add it to your mail to send
2) Вы можете вводить пользовательское внедрение JspWriter redirectiong весь вывод в файл (или чтения ...). Легко (но немного грязный) осуществление этого может быть: В вашей JSP:
<%@page import="foo.bar.JspFileWriter"%>
<%
String fileName = "JspStartContent" + System.currentTimeMillis() + ".html";
out = new JspFileWriter(new File("c:\\Mobile", fileName), out);
%>
Имея следующую реализацию JspWriter
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();
}
...
3) Это не ответ на ваш вопрос, но вы могли бы подумать о XSLT, чтобы сгенерировать ваш HTML.