Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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
Java 谷歌应用引擎-提交表单_Java_Google App Engine_Jsp_Servlets - Fatal编程技术网

Java 谷歌应用引擎-提交表单

Java 谷歌应用引擎-提交表单,java,google-app-engine,jsp,servlets,Java,Google App Engine,Jsp,Servlets,我创建了这个servlet方法: /** * Create the entity and persist it. */ protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { logger.log(Level.INFO, "Creating User!!!"); PrintWriter out =

我创建了这个servlet方法:

/**
 * Create the entity and persist it.
 */
protected void doPut(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
    logger.log(Level.INFO, "Creating User!!!");
    PrintWriter out = resp.getWriter();

    String email = req.getParameter("email");
    String password = req.getParameter("password");
    try {
        user.insert(email, password);
        Log.info("Inserted: " + email + "    " + password);
    } catch (Exception e) {
        String msg = DAOUser.getErrorMessage(e);
        out.print(msg);
    }
}
并希望通过以下from值插入GAE DB:

    <form class="form-horizontal" action="/user" method="put">
                                        <fieldset>
                                            <div class="control-group">

                                                <!-- Text input-->
                                                <label class="control-label" for="input01">Email:</label>
                                                <div class="controls">
                                                    <input name="email" placeholder="email" class="input-xlarge" type="text">
                                                    <%=request.getParameter("email") %>
                                                </div>
                                            </div>

                                            <div class="control-group">

                                                <!-- Text input-->
                                                <label class="control-label" for="input01">Password:</label>
                                                <div class="controls">
                                                    <input name="password" placeholder="password" class="input-xlarge"
                                                        type="text">
                                                    <%=request.getParameter("email") %>
                                                </div>
                                            </div>

                                        </fieldset>
                                    </form>
<div class="modal-footer">
                                    <a href="#" class="btn" data-dismiss="modal">Close</a> <a
                                        href="#" class="btn btn-primary" type="submit" value="Submit">Save
                                        Changes</a>
                                </div>
为什么?

Servlet类gaeTrader2.server.dao.DAOServletUser不是javax.Servlet.Servlet

我的Servlet如下所示:

import java.io.IOException;
import java.io.PrintWriter;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.mortbay.log.Log;


public class DAOServletUser extends HttpServlet {
    private static final Logger logger = Logger.getLogger(DAOServletUser.class.getCanonicalName());
    /**
     * Get the entities in JSON format.
     */

    IDAOUser user;

    /**
     * Create the entity and persist it.
     */
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        logger.log(Level.INFO, "Creating User!!!");
        PrintWriter out = resp.getWriter();

        String email = req.getParameter("email");
        String password = req.getParameter("password");
        try {
            user.insert(email, password);
            Log.info("Inserted: " + email + "    " + password);
        } catch (Exception e) {
            String msg = DAOUser.getErrorMessage(e);
            out.print(msg);
        }
    }
}

我认为您应该在服务器上使用doGet或doPost,在客户端使用相应的dig方法

UPD: web.xml中的servlet描述似乎也不完整:

DAOServletUser
your.package.name.YourServletClass
DAOServletUser
/使用者

我认为您应该在服务器上使用doGet或doPost,在客户端使用相应的方法

UPD: web.xml中的servlet描述似乎也不完整:

DAOServletUser
your.package.name.YourServletClass
DAOServletUser
/使用者


您的DAOServletUser类应该从HttpServlet扩展。

您的DAOServletUser类应该从HttpServlet扩展。

您得到了什么错误?我没有收到任何错误消息。。。因此,应用程序的配置肯定是错误的。但是,我真的没有看到错误,请帮助我!你有什么错误?我根本没有收到错误信息。。。因此,应用程序的配置肯定是错误的。但是,我真的没有看到错误,请帮助我!顺便说一句,我将html标记中的
method=“post”>
以及servlet方法从名称
doPut
更改为名称
doPost
。但是我什么也没有得到(firebug中也没有请求…@maximus您确定表单提交了吗?您确定servlet是可访问的吗?你能证实这两件事吗?你绝对是对的。我确信servlet应该是可访问的,因为我在我的
web.xml
中使用了与您在上面发布的相同的servlet配置。另一方面,当我按下
submitchanges
按钮时,我实际上没有得到响应,而且firebug也没有显示任何
POST
请求。你需要一个标签。顺便说一句,我将html标签中的
method=“POST”>
以及servlet方法从名称
doPut
更改为名称
doPost
。但是我什么也没有得到(firebug中也没有请求…@maximus您确定表单提交了吗?您确定servlet是可访问的吗?你能证实这两件事吗?你绝对是对的。我确信servlet应该是可访问的,因为我在我的
web.xml
中使用了与您在上面发布的相同的servlet配置。另一方面,当我按下
submitchanges
按钮时,我实际上没有得到响应,而且firebug也没有显示
POST
请求。您需要在标记中添加一个标记。您使用的是doPost而不是doPut?gaeTrader2.server.dao.daoservlet用户不是javax.servlet.servlet用户?您正在使用javex.servlet.HttpServlet导入?DAOServletUser是我的servlet。然而,当我在eclipse中导入我需要的类时,我得到:
import javax.servlet.ServletException;导入javax.servlet.http.HttpServlet;导入javax.servlet.http.HttpServletRequest;导入javax.servlet.http.HttpServletResponse;导入org.mortbay.log.log这些类是否错误?导入是否正确。顺便说一句,表单中的提交按钮在哪里?让我们看看,您使用的是doPost而不是doPut?gaeTrader2.server.dao.DAOServletUser不是javax.servlet.servlet用户?您正在使用javex.servlet.HttpServlet导入?DAOServletUser是我的servlet。然而,当我在eclipse中导入我需要的类时,我得到:
import javax.servlet.ServletException;导入javax.servlet.http.HttpServlet;导入javax.servlet.http.HttpServletRequest;导入javax.servlet.http.HttpServletResponse;导入org.mortbay.log.log这些类是否错误?导入是否正确。顺便说一句,在您的表单中提交按钮在哪里?让我们看看
Mär 22, 2013 6:46:07 AM com.google.appengine.tools.development.ApiProxyLocalImpl log
SEVERE: javax.servlet.ServletContext log: unavailable
javax.servlet.UnavailableException: Servlet class gaeTrader2.server.dao.DAOServletUser is not a javax.servlet.Servlet
    at org.mortbay.jetty.servlet.ServletHolder.checkServletType(ServletHolder.java:362)
    at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:243)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685)
    at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
    at org.mortbay.jetty.Server.doStart(Server.java:224)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
    at com.google.appengine.tools.development.JettyContainerService.startContainer(JettyContainerService.java:228)
    at com.google.appengine.tools.development.AbstractContainerService.startup(AbstractContainerService.java:255)
    at com.google.appengine.tools.development.AbstractServer.startup(AbstractServer.java:79)
    at com.google.appengine.tools.development.DevAppServerImpl$Servers.startup(DevAppServerImpl.java:451)
    at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:198)
    at com.google.appengine.tools.development.gwt.AppEngineLauncher.start(AppEngineLauncher.java:97)
    at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:509)
    at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1093)
    at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:836)
    at com.google.gwt.dev.DevMode.main(DevMode.java:311)
import java.io.IOException;
import java.io.PrintWriter;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.mortbay.log.Log;


public class DAOServletUser extends HttpServlet {
    private static final Logger logger = Logger.getLogger(DAOServletUser.class.getCanonicalName());
    /**
     * Get the entities in JSON format.
     */

    IDAOUser user;

    /**
     * Create the entity and persist it.
     */
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        logger.log(Level.INFO, "Creating User!!!");
        PrintWriter out = resp.getWriter();

        String email = req.getParameter("email");
        String password = req.getParameter("password");
        try {
            user.insert(email, password);
            Log.info("Inserted: " + email + "    " + password);
        } catch (Exception e) {
            String msg = DAOUser.getErrorMessage(e);
            out.print(msg);
        }
    }
}
<servlet> <servlet-name>DAOServletUser</servlet-name> <servlet-class>your.package.name.YourServletClass</servlet-class> </servlet> <servlet-mapping> <servlet-name>DAOServletUser</servlet-name> <url-pattern>/user</url-pattern> </servlet-mapping>