2016-03-30 67 views
0

我開始學習servlet。 代碼的Servlet:簡單Servlet HTTP狀態405 - 此方法不支持HTTP方法GET

package arver; 

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

/** 
* Created by 35717 on 30.03.2016. 
*/ 
public class MainServlet extends HttpServlet { 
    @Override 
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 
     super.doGet(req, resp); 
     PrintWriter out = resp.getWriter(); 
     out.print("servlet"); 
    } 

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

文件的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" 
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
      version="3.0"> 

     <servlet> 
      <servlet-name>MainServlet</servlet-name> 
      <servlet-class>arver.MainServlet</servlet-class> 
     </servlet> 

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

    </web-app> 

服務器響應: HTTP狀態405 - HTTP GET方法不受此URL支持

類型狀態報告

消息HTTP方法GET不受此URL支持

description所請求的資源不允許指定的HTTP方法。

的Apache Tomcat/9.0.0.M4

爲什麼我會收到HTTP狀態405 - HTTP GET方法不是由這個程序該URL錯誤支持。

+0

後從正在attept提交到這個servlet你的JSP/HTML文件。 –

+0

你是怎麼稱這個servlet的?網址? –

+0

爲什麼使用url-pattern作爲'/',給它一些子路徑。 –

回答

0

我們擴展了HttpServlet和@Override doPost,但是在我們的實現中,我們不會調用它的super,因爲調用super會給出這個消息。

當你做super.doGet(request,response);在你的Servlet的doGet()方法中,你實際上調用了HttpServlet類的doget()。所以放下超級通話。這不是必需的。

就刪除這些行:

super.doGet(req, resp); 
super.doPost(req, resp); 
1

使用GET或POST方法

MainServlet.java

package arver; 

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

/** 
* Created by 35717 on 30.03.2016. 
*/ 
public class MainServlet extends HttpServlet { 
    @Override 
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException 
{   
     PrintWriter out = resp.getWriter(); 
     out.print("servlet"); 
    } 
} 

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" 
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
      version="3.0"> 
<welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
</welcome-file-list> 

     <servlet> 
      <servlet-name>MainServlet</servlet-name> 
      <servlet-class>arver.MainServlet</servlet-class> 
     </servlet> 

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

    </web-app> 

地址必須是這樣的:http://localhost:8080/Project名/嘛inServlet

+0

是的,據我所知,顯示所有標籤的方式並不意味着響應和正確使用jsp,但我想明白爲什麼我會得到這個錯誤, 我以爲我可以out.print(「」); out.print(「」); out.print(「」); out.print(「」); out.print(「」); out.print(「」); out.print(「servlet」); out.print(「」); 出來。print(「」); –

+0

您不應該在一個servlet中使用get和post方法。您必須使用get或post方法 –

+0

感謝您的幫助,但不幸的是,沒有足夠的聲譽被視爲有用的響應。 –

相關問題