2016-08-10 4 views
1

web.xmlのデフォルトサーブレットとしてサーブレットを設定しました。サーブレットマッピングについて混乱しました

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

私は http://localhost:8080/abc.jspを要求するようにJSPのために要求されたとき、私は正しいHTMLコンテンツで正しい応答を得て、サーブレットはこの要求に役立つしませんでした。

http://localhost:8080/abc.htmlのようなHTMLをリクエストしたときにabc.htmlファイルを取得できず、service()というサーブレットのメソッドが呼び出されました。

なぜサーブレットコンテナがこのように動作しますか?

サーブレットをこのように設定すると、サーブレット内の静的ファイルに対するリクエストを処理する必要がありますか?

更新

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" 
    id="WebApp_ID" version="3.0"> 
    <display-name>Servlet test</display-name> 

    <servlet> 
     <servlet-name>myServlet</servlet-name> 
     <servlet-class>com.test.MyServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>myServlet</servlet-name> 
     <url-pattern>/</url-pattern> 
    </servlet-mapping> 
</web-app> 

MyServlet.java

package com.test; 

import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 

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 MyServlet extends HttpServlet { 

    private static Logger LOG = LoggerFactory.getLogger(MyServlet.class); 

    @Override 
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 
     super.service(req, resp); 
     LOG.info("Served"); 
    } 
} 
+0

サーブレットクラスでもコードを共有できますか? –

+0

あなたのweb.xmlも共有してください – jr593

答えて

1

あなたが<url-pattern>/</url-pattern>を使用している場合、これはデフォルトのサーブレットとコンテナのJSPサーブレットを無効にすることはありません。 。すべての要求をMyServletで処理する場合は、<url-pattern>/*</url-pattern>を使用してください。

Difference between/and /* in servlet mapping url pattern

+0

ありがとうございます。私は多くの興味深い情報を得た:) – RichardMZ

関連する問題