1

私はJavaコードを使用してWebアプリケーションに取り組んでいますが、各ページをサーブレットクラスから開始するようにコードを変更しました。

サーブレット「indexServlet」のJavaコード:

protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        DataGathering dBConnector = new DataGathering();
        List<Long> lstDetailVewOID;
        lstDetailVewOID = dBConnector.getDetailVewOID();
        request.setAttribute("detailVewLst", lstDetailVewOID);
        // pass the list to jsp page.
        request.getRequestDispatcher("/index.jsp").forward(request, response);
    }

それ以来、CSSコードは機能しなくなり、次のエラーが発生します。

リソースはスタイルシートとして解釈されますが、MIMEタイプtext / htmlで転送されます: "http:// localhost:8080 / firstApplication / Style-Sheet/Template-Style.css"。

コードをトレースするとdoGet()、クラス内でメソッドservletを実行すると、ページが呼び出されて実行され、再びサーブレットに戻ってメソッドが閉じられることがわかりました。このプロシージャが原因でエラーが発生したと思いますが、よくわかりません。それを解決することはできません。

インターネットを検索したとき、タイプはtext / cssである必要があると思いましたが、すでにそれを実行しており、コードを変更する前に同じCSSファイルが機能していたことがわかりました。

jspページ内でCSSファイルを呼び出す:

<link href="Style-Sheet/Template-Style.css" rel="stylesheet" type="text/css">

編集:web.xmlマッピング:

<servlet>
        <servlet-name>Index</servlet-name>
        <servlet-class>com.Teklabz.Servlets.IndexServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Index</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
4

1 に答える 1

2

サーブレットを介してcssや画像などの静的リソースを返すと思います。これ自体は悪いことですが、そうする場合は、応答ヘッダーに正しいmimeタイプを設定する必要があります。実際、サーブレットからURLへのマッピングを/*から/*.jspのようなものに変更する必要があると思います。したがって、他のすべての静的リソースはtomcat / jettyによって処理され、正しく実行されます。

<web-app>
    <servlet>
         <servlet-name>Servlet1</servlet-name>
         <servlet-path>foo.Servlet</servlet-path>
    </servlet>
    <servlet-mapping>
         <servlet-name>Servlet1</servlet-name>
         <url-pattern>/*.jsp</url-pattern> <!-- right here! -->
    </servlet-mapping>
</web-app>
于 2013-01-13T14:02:50.523 に答える