在.jsp页面/ GAE上显示电子邮件内容

时间:2015-01-28 16:14:58

标签: java jsp google-app-engine servlets

我正在使用Google App Engine编写应用程序。 该应用程序现在可以接收电子邮件,我可以在控制台中看到这些。

我想要的是前端(guestbook.jsp)中可以看到三个变量(摘要,地址和文本)。 我尝试了各种选项(参见注释代码),但没有一个向我展示前端的信息。 到现在为止,我只尝试传递一个变量(摘要)。

稍后我想将信息存储在数据库中。

的Servlet

package com.example.mail;

import java.io.IOException; 
import java.util.Properties; 
import javax.mail.Session; 
import javax.mail.internet.MimeMessage; 
import javax.servlet.http.*; 
import javax.mail.Address;

public class MailHandlerServlet extends HttpServlet { 
    @Override
    public void doPost(HttpServletRequest req, HttpServletResponse resp) 
            throws IOException { 
                Properties props = new Properties(); 
                Session session = Session.getDefaultInstance(props, null); 

            try{    
                MimeMessage message = new MimeMessage(session, req.getInputStream());
                String summary = message.getSubject();
                Address[] addresses = message.getFrom();
                String text = message.getContent().toString();
                System.out.println("Subject: " + summary);
                System.out.println("Sender: " + addresses);
                System.out.println("Text: " + text);  

                req.setAttribute("summary",summary);
                req.getRequestDispatcher("/mail.jsp").forward(req, resp); 


            } catch (Exception e) {
                e.printStackTrace();
            }
        }
}

mail.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.util.List" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

<html>
<head>
    <link type="text/css" rel="stylesheet" href="/stylesheets/main.css"/>
</head>

<body>

Hello World!

<p>E-Mail Summary '${summary}'.</p>

</body>
</html>

Web.xml中:

<servlet>
  <servlet-name>mailhandler</servlet-name>
  <servlet-class>com.example.mail.MailHandlerServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>mailhandler</servlet-name>
  <url-pattern>/_ah/mail/string@appid.appspotmail.com</url-pattern>
</servlet-mapping>

如果有人可以帮助我会很好。

1 个答案:

答案 0 :(得分:0)

您需要使用request.setAttribute("summary", summary);添加摘要作为请求属性,并且由于重定向不是服务器端,它的客户端,属性不再显示,您需要使用req.getRequestDispatcher("mail.jsp").forward(req, resp);