繁体   English   中英

Google App引擎:如何发送表格POST?

[英]Google App engine: How to send a Form POST?

我有一个简单的Servlet ,可以发送电子邮件和html-form

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>A form</title>
 </head>
 <body>
 <form action="feedback" method="post">

  <!-- Simple text field -->
 <label for="name">Name </label>
 <input type="text" name="name"/>
 <br/>

  <!-- Email -->
 <label for="email">Email </label>
 <input type="email" name="email"/>
 <br/>


  <!-- Textarea -->
 <label for="description">Description </label>
 <textarea  name="description" cols="50" rows="5">Type your comment here</textarea>
 <br/>


 <input type="submit" name="submit" value="Send Request"/>
 </form>
 </body>
</html>

在web.xml文件夹中,我注册并映射了servlet。 但是,当我按下发送按钮时,我只会得到:

HTTP错误404

访问/反馈时出现问题。 原因:

NOT_FOUND

我的问题还在哪里?

-更新-http: //java.sun.com/xml/ns/javaee/web-app_2_5.xsd“ version =” 2.5“ xmlns =” http://java.sun.com/xml/ns/javaee “>

<!-- Servlets -->
<servlet>
    <servlet-name>FeedbackServlet</servlet-name>
    <servlet-class>org.wunderapps.mailservice.server.FeedbackServlet</servlet-class>
</servlet>

<servlet>
    <servlet-name>TestAppServlet</servlet-name>
    <servlet-class>org.wunderapps.mailservice.server.TestAppServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>FeedbackServlet</servlet-name>
    <url-pattern>/wunderapps_mail_service/mail</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>TestAppServlet</servlet-name>
    <url-pattern>/wunderapps_mail_service/test</url-pattern>
</servlet-mapping>

<!-- Default page to serve -->
<welcome-file-list>
    <welcome-file>Wunderapps_mail_service.html</welcome-file>
</welcome-file-list>

Servlet的:

package org.wunderapps.mailservice.server;

import java.io.IOException;
import java.util.Properties;

import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@SuppressWarnings("serial")
public class FeedbackServlet extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        String name = req.getParameter("name");
        String description = req.getParameter("description");
        String email = req.getParameter("email");
        Properties props = new Properties();
        Session session = Session.getDefaultInstance(props, null);

        String msgBody = name  + " :Name" + "\n" + description + " :Description" + "\n" + email + " :EMAIL";

        try {
            Message msg = new MimeMessage(session);
            msg.setFrom(new InternetAddress("apps@gmail.com",
                    "it works"));
            msg.addRecipient(Message.RecipientType.TO, new InternetAddress("testtesttest@gmail.com", "Your name"));
            msg.setSubject("Bestellung");
            msg.setText(msgBody);
            Transport.send(msg);

        } catch (Exception e) {
            resp.setContentType("text/plain");
            resp.getWriter().println("Something went wrong. Please try again.");
            throw new RuntimeException(e);
        }

        resp.setContentType("text/plain");
        resp.getWriter().println(
                "Thank you for your feedback. An Email has been send out.");
    }
}

从您的web.xml ,似乎URL模式存在一些问题,因此仅它会出现404错误。 <form action="feedback" method="post">更改为<form action="/wunderapps_mail_service/mail" method="post">或者也可以更改web.xml。

<servlet-mapping>
    <servlet-name>FeedbackServlet</servlet-name>
    <url-pattern>/feedback</url-pattern>
</servlet-mapping>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM