为了账号安全,请及时绑定邮箱和手机立即绑定

get方法没问题,post方法报405错误

HTTP Status [405] – [Method Not Allowed]

Type Status Report

Message HTTP method POST is not supported by this URL

Description The method received in the request-line is known by the origin server but not supported by the target resource.

Apache Tomcat/9.0.0.M21

代码:index.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%  
String path = request.getContextPath();  
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
%> 
<!DOCTYPE html>
<html>
<head>
<base href="<%=basePath%>"> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!-- <link rel="stylesheet" type="text/css" href=""> -->
<title>Insert title here</title>
</head>
<body>
<h1>第一个servlet小例子</h1>
<hr>
<a href="servlet/HelloServlet">Get方法请求HelloServlet</a>
   <form action="servlet/HelloServlet" method="post">
   <input type="submit" value="用post方式提交HelloServlet" />
   </form>
</body>
</html>


HelloServlet.java:

package servlet;
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 HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
System.out.println("处理Get请求……");
PrintWriter out = response.getWriter();
response.setContentType("text/html;charset=utf-8");
out.println("<b>Hello Servlet</b>");
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("处理Post请求……");
PrintWriter out = response.getWriter();
response.setContentType("text/html;charset=utf-8");
out.println("<b>Hello Servlet</b>");
}
}

web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<!-- 欢迎页面 -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/servlet/HelloServlet</url-pattern>
</servlet-mapping>
</web-app>


正在回答

4 回答

换个浏览器吧,大概是缓存问题

0 回复 有任何疑惑可以回复我~

去掉super.doPost(req, resp);

3 回复 有任何疑惑可以回复我~

问题解决了。

代码没有错,引起错误的是我的项目里Java Build Path 出了点问题(之前不晓得哪里出了错,按照度娘上找的方法,手残在点了build path,在Libraries那里加了不属于它的文件,导致项目出错。)。这个问题解决了就OK了。

Markers报错:Archive for required library: 'WebContent/WEB-INF/web.xml' in project 'ServletDemo' cannot be read or is not a valid ZIP file ServletDemo Build path Build Path Problem

http://img1.sycdn.imooc.com//59376d380001d08b12890344.jpg

0 回复 有任何疑惑可以回复我~
index.jsp页面写错了  不需要servlet/


0 回复 有任何疑惑可以回复我~
#1

Tsukiis 提问者

servlet/去掉就是报404错误了
2017-06-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JAVA遇见HTML——Servlet篇
  • 参与学习       160616    人
  • 解答问题       1029    个

本门课程在JSP课程的基础上,深入介绍Servlet的基础知识

进入课程

get方法没问题,post方法报405错误

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信