2

MainContent という名前のサーブレットを作成しました。そして私はそのようなマッピングを持っています

<servlet>
    <display-name>MainContent</display-name>
    <servlet-name>MainContent</servlet-name>
    <servlet-class>ge.test.servlet.MainContent</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>MainContent</servlet-name>
    <url-pattern>/main</url-pattern>
</servlet-mapping>

そのため、リンク //localhost:8080/MyAppl/mainにアクセスすると、サーブレットの doGet() メソッドに入ります。次に、index.jsp に転送する RequestDispatcher を作成します。

すべてが機能します!

RequestDispatcher rd = context.getRequestDispatcher("/index.jsp?language="+ lang);
rd.forward(request, response);

すべてが機能します!

質問:

ここで、url-pattern を変更する必要があります。そのようなものが必要です-: localhost:8080/MyAppl/に入ると、サーブレットにリダイレクトされる必要があります。だから私はそのようなものを作成します:

<url-pattern>/</url-pattern>

わかりました、うまくいきます!サーブレットにリダイレクトされます。しかし、ここで何か問題が発生しました。サーブレットが RequestDispatcher forward を作成したとき、index.jsp に画像と css がありませんでした。firebug コンソールで見ると、次のエラーが表示されました。

Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://localhost:8080/MyApp/font/font_big.css". localhost/:15
Resource interpreted as Image but transferred with MIME type text/html: "http://localhost:8080/MyApp/IMG/company.gif".

どうすれば修正できますか?

4

1 に答える 1

2

はい、@DwBが指摘したように、「/」コンテキストは問題のあるURLパターンであり、問​​題を引き起こします。

使用する

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

代わりは。これを行うのが「サーブレット 3.0 方式」です。

ソース

[1] http://www.coderanch.com/t/366340/Servlets/java/servlet-mapping-url-pattern

[2]他のスクリプトを実行できるように「ルート」サーブレットをマップするにはどうすればよいですか?

于 2013-08-23T18:02:01.683 に答える