簡體   English   中英

如何處理servlet?

[英]How to handle servlet?

我正在嘗試創建一個簡單的servlet應用程序,但是當我將其部署到Tomcat服務器(8.5)中時,localhost:8080給了我405方法不允許錯誤 我不知道要處理這個錯誤

在此處輸入圖片說明

我的pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.devcolibri</groupId>
    <artifactId>com.devcolibri.servlet</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <dependencies>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
        </dependency>
    </dependencies>

</project>

我的MainServlet.java

    package com.devcolibri.servlet;

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

    public class MainServlet extends HttpServlet {


    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {

        PrintWriter out = resp.getWriter();
        out.print("<h1>Hello Servlet</h1>");

    }
}

我的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>com.devcolibri.servlet.MainServlet</servlet-class>
    </servlet>

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

</web-app>

我想我似乎一直沒想到:我懷疑您的war文件沒有以斜線部署。 它可以部署在您的工件ID下。 要將其部署在主機的根目錄上,需要進行更多配置。 嘗試http:// localhost:8080 / com.devcolibri.servlet /

編輯:

http:// localhost:8080 / com.devcolibri.servlet-1.0-SNAPSHOT /應該是您的war文件名。

看來,訪問servlet的方式不適用於受保護類型的doGet方法。 請嘗試以公共身份獲取doGet。

public void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {

    PrintWriter out = resp.getWriter();
    out.print("<h1>Hello Servlet</h1>");

}

您可以在此處參考有關受保護的和公共的更多信息: httpservlet的public service()方法和protected service()方法之間有什么區別

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM