繁体   English   中英

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

[英]Why it is shown HTTP Status 405 - HTTP method POST is not supported by this URL?

我在春季从事过演示登录应用程序的工作。 这是我的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>

这是我的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>

它显示输入的用户名和密码如下:

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

类型状态报告

此URL不支持消息HTTP方法POST

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

我怎么解决这个问题?

您的<servlet-class>应该是com.pran.pal.controller.LoginController ,但是您还应该从此处对Spring Web有依赖性。

另外,您没有正确使用Spring @Controller批注。 请按照此处的逐步教程进行操作。

暂无
暂无

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

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