質問: ### 前提・実現したいこと とある名簿のWEBアプリをecripseにて製作しています。 input.jspのフォームから名前を入力し、登録ボタンを押しますと サーブレットに情報が送信され、DB検索を行い、 重複する名前があるとinput.jspに遷移し「重複するデータがあります」 との表記をし、再入力の要求を行うものです。 重複の確認プログラムと、メッセージ表記は出来ましたが、問題があります。 http://8080/projectName/jsp/input.jspに直接アクセスした際はCSSが反映されますが 重複するデータを送信した際のjspにCSSが反映されません。 (jsp(反映) → servlet → jsp(反映されない)) このときのアドレスバーは http://8080/projectName/servletになっています。 試しにjspにCSSをふたつ記載すると、エラーメッセージ表記時のjspにも反映されます。 つまりはjspフォルダからjspを見ているのか、 servletからjspを見ているのか、の違いが起きていると解釈していますが、 そうするとCSSを2つ記載する以外に方法が無いのでは?と思っています。 絶対パスを使わず、コンテキストパスとやらを使ってくださいとの指示です。 いくら調べてもコンテキストパスというものが理解できませんので、使い方も分からない状況です。 ### 発生している問題・エラーメッセージ クロームのコンソールより Failed to load resource: the server responded with a status of 404 (Not Found) カレントフォルダが変わるため、CSSへのパスも変わってしまうものかと解釈しています ### 該当のソースコード ``` 顧客名簿 登録画面 ``` ### 試したこと など、思いつく限りのパスを書きました。 http://projectName/css/design.cssは使わないようにとの指示です。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: EL式が使える場合は: ``` ${pageContext.request.contextPath} ``` 使えない場合は: ``` <%= request.getContextPath() %> ``` で取得できます。 以下は記述例です。 ``` ```