java - 此 URL 不支持 HTTP 方法 POST 在 tomcat 上使用 java httpservlet

标签 java tomcat servlets

<分区>

当通过 html 表单调用我的 httpservlet 时,我不断收到此 URL 不支持 HTTP 方法 POST 的消息。我看不出哪里错了。我在 Tomcat 服务器上运行它。提前致谢。

servlet 应该向浏览器打印一组随机数。

这是我的 servlet:

package servlets;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Iterator;
import java.util.TreeSet;

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

import utilities.RandNumSet;

public class RandomServlet extends HttpServlet {

/**
 * 
 */
private static final long serialVersionUID = 1L;

public RandomServlet() {
    // TODO Auto-generated constructor stub
}

@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {
    doPost(req, resp);

}

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {

    PrintWriter out = resp.getWriter();
    resp.setContentType("text/html");
    TreeSet<Integer> randNum = RandNumSet.generateRandNumSet();
    Iterator<Integer> iterator = randNum.iterator();
    String numString = "";
    while (iterator.hasNext()){
        numString = numString + iterator.next() + " ";
    }


    out.println("<head>");
    out.println("<title>");
    out.println("Your Random Numbers!");
    out.println("</title>");
    out.println("</head>");
    out.println("<body>");
    out.println("<h1> Your Random Numbers! </h1>");
    out.println("<h1> "+ numString + " </h1>");
    out.println("</body>");
}

}

这是调用 html 表单片段:

<div id ="form">
    <form action="RandomServlet" method="post">
        <input type="submit" value="Randomize!"/>
    </form>
</div>

这是 web.xml 片段

    <servlet>
        <display-name>RandomServlet</display-name>
        <servlet-name>RandomServlet</servlet-name>
        <servlet-class>servlets.RandomServlet</servlet-class>
    </servlet>


    <servlet-mapping>
        <servlet-name>RandomServlet</servlet-name>
        <url-pattern>/RandomServlet</url-pattern>
    </servlet-mapping>

最佳答案

我正在使用以下方式及其工作方式......

首先:首先检查您创建的目录,例如-

com.ServletExample 
|-JavaResource 
   |-src
      |-com.servletExample
          |-RandomServlet.java 
   |-WebContent
      |-META-INF
      |-WEB-INF
          |-Lib
          |-web.xml
   |-index.jsp

第二个:index.jsp来了

<%@ 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>
<div id ="form">
    <form action="RandomServlet" method="post">
        <input type="submit" value="Randomize!"/>
    </form>
</div>
</body>
</html>

第三:RendomServlet.java来了

package com.servletExample;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class RandomServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

public RandomServlet() {
super();
}

protected void doGet(HttpServletRequest request,
    HttpServletResponse response) throws ServletException, IOException {

}

protected void doPost(HttpServletRequest request,
    HttpServletResponse response) throws ServletException, IOException {

PrintWriter out = response.getWriter();
response.setContentType("text/html");

out.println("<head>");
out.println("<title>");
out.println("Your Random Numbers!");
out.println("</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1> Your Random Numbers! </h1>");
out.println("<h1> " + "Hello" + " </h1>");
out.println("</body>");
}

}

第四: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" 
    id="WebApp_ID" version="2.5">
  <display-name>JSPExample</display-name>
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>

  <servlet>
        <display-name>RandomServlet</display-name>
        <servlet-name>RandomServlet</servlet-name>
        <servlet-class>com.servletExample.RandomServlet</servlet-class>
    </servlet>


    <servlet-mapping>
        <servlet-name>RandomServlet</servlet-name>
        <url-pattern>/RandomServlet</url-pattern>
    </servlet-mapping>
</web-app>

我希望这会奏效。

关于java - 此 URL 不支持 HTTP 方法 POST 在 tomcat 上使用 java httpservlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24855800/

相关文章:

java - 在java play调度程序任务中注入(inject)类实例

java - 在不重新启动应用程序服务器或在运行时重新初始化 spring bean

java - 如何在我的代码中使用 BigInteger 来计算素数?

java - 如何不在循环的阶乘表达式末尾打印乘号?

java - 在 Spring Boot 应用程序之间传递文件/流

tomcat - Tomcat 上的 Grails 和 Quartz : how to gracefully shutdown

XMLHttpRequest 忽略 Tomcat maxpostsize 值?

javascript - CouchDB AJAX 交互

html - 如何使用 Servlet 流式传输 MP3、MP4、AVI 等音频/视频文件

java - 在服务器(servlet)端检测下拉列表的值时出现问题