Java 为什么显示HTTP状态405-此URL不支持HTTP方法POST?
我在spring上开发了演示登录应用程序。这是我的LoginController.java: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
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。