javaweb はどのようにしてサーブレット サーバー アプリケーションを登録するのでしょうか。

あるServletで特定のパス (「/first」など) を処理し、別の Servlet で他のすべてのパス (「/*」など) を処理する場合は、「 web.xml」ファイルで次のように構成できます。 :

```xml

<web-app>
    <!-- 注册第一个Servlet,处理特定路径 /first -->
    <servlet>
        <servlet-name>MyFirstServlet</servlet-name>
        <servlet-class>com.example.MyFirstServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>MyFirstServlet</servlet-name>
        <url-pattern>/first</url-pattern>
    </servlet-mapping>

    <!-- 注册第二个Servlet,处理所有其他路径 -->
    <servlet>
        <servlet-name>MySecondServlet</servlet-name>
        <servlet-class>com.example.MySecondServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>MySecondServlet</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
</web-app>


「」

上記の設定では、最初のサーブレット (`MyFirstServlet`) をパス `/first` にマップし、2 番目のサーブレット (`MySecondServlet`) をパス `/*` にマップします。これは、すべての不一致リクエストを処理することを意味します。他のサーブレット。

注:サーブレット マッピングが優先されます。複数のサーブレット マッピングが同じパスに一致する場合、サーブレット コンテナは登録順で最初に一致するサーブレットを選択します。したがって、リクエストが `/first` と `/*` に同時に一致した場合、`/first` は `/*` より前に登録されているため、リクエストは `MyFirstServlet` によって処理されます。

Web で使用されるサーブレットのバージョンと JSP バージョン番号を表示する project_jsp version_oille101 のブログ - CSDN ブログ

Java Servlet 3.0以降の仕様を使用している場合は、サーブレットの登録「web.xml」の代わりにアノテーションを使用することも検討できます。アノテーションを使用したサンプルコードは次のとおりです。

```ジャバ

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

@WebServlet("/first")
public class MyFirstServlet extends HttpServlet {
    // 与之前相同的处理逻辑
}

@WebServlet("/*")
public class MySecondServlet extends HttpServlet {
    // 与之前相同的处理逻辑
}


「」

このように、注釈を使用すると、`web.xml` で追加の設定を行わなくても、サーブレット クラスにマップされた URL パスを直接指定できます。アノテーションを使用してサーブレットを登録できるように、サーブレット コンテナがサーブレット 3.0 以降の仕様をサポートしていることを確認してください。

おすすめ

転載: blog.csdn.net/qq_58647634/article/details/131952335