java - 我是 jsp 和 google 应用引擎的新手,收到此错误 : HTTP method GET is not supported by this URL

标签 java google-app-engine jsp servlets

这是我的 JSP 文件。它有 3 个文本字段和一个提交按钮..

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

"http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
  </head>
<body>
   <form action="buttontoserv" method="post">
    <input type="text" name="name"/><br>        
    <input type="text" name="group"/>
    <input type="text" name="pass"/>
    <input type="submit" value="submit">            
  </form>
</body>
</html> 

这是我的 web.xml

<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<servlet>
    <servlet-name>ButtontoServ</servlet-name>
    <servlet-class>pack.exp.ButtontoServServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>ButtontoServ</servlet-name>
    <url-pattern>/buttontoserv</url-pattern>
</servlet-mapping>
<welcome-file-list>
    <welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>

这是pack.exp包下的servlet,文件名为ButtontoServServlet.java

package pack.exp;
import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.*;

@SuppressWarnings("serial")
public class ButtontoServServlet extends HttpServlet 
{
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException 
    {
    String name = request.getParameter("name");
    String group = request.getParameter("group");
    String pass = request.getParameter("pass");
    System.out.println("Name :"+ name);
    System.out.println("group :"+ group);
    System.out.println("pass :"+ pass);
    }
}

当我将其部署到谷歌应用程序引擎时,它抛出此错误 “错误:此 URL 不支持 HTTP 方法 GET”

我也在tomcat上尝试过,错误提示 “HTTPO 405 方法不允许。网站无法显示页面 HTTP 405 最可能的原因: •网站存在编程错误。”

最佳答案

因为您的 servlet 只有 doPost 方法。因此,您无法通过 URL 访问 servlet。您的 URL 应该是分配了 action="buttontoserv" 的 JSP 页面。当您单击 JSP 页面的提交按钮时,它将转发到 /buttontoserv servlet。

要解决您的问题,您应该在 Servlet 上包含一个 doGet 方法,或者通过从 JSP 页面提交表单转发到 Servlet。

public class ButtontoServServlet extends HttpServlet {

    protected void processRequest(HttpServletRequest request,
        HttpServletResponse response)
            throws ServletException, IOException {
    String name = request.getParameter("name");
    String group = request.getParameter("group");
    String pass = request.getParameter("pass");
    System.out.println("Name :"+ name);
    System.out.println("group :"+ group);
    System.out.println("pass :"+ pass);

    }    
    @Override
    protected void doGet(HttpServletRequest request,
             HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, 
            HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }
}

关于java - 我是 jsp 和 google 应用引擎的新手,收到此错误 : HTTP method GET is not supported by this URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20487646/

相关文章:

java - 在Reducer.reduce 方法中写入context 时,为什么调用的是toString 方法而不是write 方法?

java - 将 ArrayList<customtype> 转换为 CharSequence[]

java - 使用带有 JOGL 的 maven assembly 插件创建可执行 jar

java - Mockito 在模拟方法的参数上调用方法

python - 如何在 App Engine 中表示一对一关系

google-app-engine - 有什么方法可以访问本地网络中的 GAE 开发应用服务器吗?

google-app-engine - 谷歌应用引擎 : Ignore URL Case when finding appropriate Handler

在只有 Java 代码的 JSP 文件中启用、禁用下拉菜单的 Javascript,直接没有 HTML

javascript - IE动态图片缓存问题?

css - Bootstrap Pop-up Modal 未显示。相反,我得到黑屏