Java 为什么显示HTTP状态405-此URL不支持HTTP方法POST?

Java 为什么显示HTTP状态405-此URL不支持HTTP方法POST?,java,eclipse,maven,spring-mvc,tomcat,Java,Eclipse,Maven,Spring Mvc,Tomcat,我在spring上开发了演示登录应用程序。这是我的LoginController.java: package com.pran.pal.controller; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import or

我在spring上开发了演示登录应用程序。这是我的LoginController.java:

       package com.pran.pal.controller;


    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest; 
    import javax.servlet.http.HttpServletResponse;   
    import org.springframework.stereotype.Controller; 
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.servlet.ModelAndView; 

   @Controller

public class LoginController extends HttpServlet{

     @RequestMapping(value="/login" ,method=RequestMethod.GET) 
     public ModelAndView login(HttpServletRequest request, HttpServletResponse response) { 

         String userName=request.getParameter("userName"); 
         String password=request.getParameter("password"); 
         String message; 
         if(userName != null && !userName.equals("") && userName.equals("admin") 
         && password != null && !password.equals("") && password.equals("123")){ 
             message = "Welcome " +userName + "."; 
        return new ModelAndView("index", "message", message);   
        }
         else{ 
             message = "Wrong username or password."; 
        return new ModelAndView("index", "message", message); 
        } 
    } 
我用过eclipse Neon,Tomcat v9

这是我的pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.pran.pal</groupId>
  <artifactId>LoginSystemPAL</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>LoginSystemPAL Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
   <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>4.3.4.RELEASE</version>
   </dependency>
  </dependencies>
  <build>
    <finalName>LoginSystemPAL</finalName>
  </build>
</project>

4.0.0
com.pran.pal
登录系统时间
战争
0.0.1-快照
LoginSystemPAL Maven Webapp
http://maven.apache.org
朱尼特
朱尼特
3.8.1
测试
org.springframework
弹簧网
4.3.4.1发布
登录系统时间
这是我的web.xml

    <!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <servlet> 
  <servlet-name>LoginController</servlet-name> 
  <servlet-class>com.pran.pal.controller.LoginController</servlet-class> 
  <load-on-startup>1</load-on-startup> 
  </servlet>   
  <servlet-mapping> 
  <servlet-name>LoginController</servlet-name> 
  <url-pattern>/login</url-pattern>
   </servlet-mapping>   

</web-app>

Web应用程序创建的原型
登录控制器
com.pran.pal.controller.LoginController
1.
登录控制器
/登录
它显示了输入用户名和密码:

HTTP状态405-此URL不支持HTTP方法POST

类型状态报告

此URL不支持消息HTTP方法POST

说明指定的HTTP方法不允许用于请求的 资源

如何解决此问题?

您的
应该是
com.pran.pal.controller.LoginController
,但您也应该依赖Spring Web

此外,您没有正确使用Spring
@Controller
注释。请遵循类似的逐步教程。

您的
应该是
com.pran.pal.controller.LoginController
,但您也应该依赖SpringWeb


此外,您没有正确使用Spring
@Controller
注释。请遵循像这样的一个循序渐进的教程。

好吧,你的类不是
com.pran.pal.controller
——而是
com.pran.pal.controller.LoginController
。为什么您只指定了包名?我已经尝试了这两种方法。但是这两种方法都显示了相同的错误。它们不会显示相同的错误-并且您应该在那里使用类名。考虑到这一点,我建议您使用正确的名称再试一次,然后相应地编辑您的问题。您的整个设置都有缺陷。您的
LoginController
不是servlet,因此将其作为servlet添加到
web.xml
中是行不通的。我建议您开始学习基本的Spring MVC教程。您的课程不是
com.pran.pal.controller
——而是
com.pran.pal.controller.LoginController
。为什么您只指定了包名?我已经尝试了这两种方法。但是这两种方法都显示了相同的错误。它们不会显示相同的错误-并且您应该在那里使用类名。考虑到这一点,我建议您使用正确的名称再试一次,然后相应地编辑您的问题。您的整个设置都有缺陷。您的
LoginController
不是servlet,因此将其作为servlet添加到
web.xml
中是行不通的。我建议您开始学习一个基本的SpringMVC教程。有趣的是,您没有编译错误,也没有对SpringWeb的依赖。您的类路径中有Jar吗?没有-看起来
LoginController
不是servlet。我想应该是框架中的某个Servlet,有趣的是,您没有编译错误,也没有对SpringWeb的依赖。您的类路径中有Jar吗?没有-看起来
LoginController
不是servlet。我想应该是框架中的某个Servlet。