質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

2022閲覧

MV

noririn

総合スコア37

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

MVC

MVC(Model View Controller)は、オブジェクト指向プログラミングにおけるモデル・ビュー・コントローラーの総称であり、ソフトフェア開発で使われている構築パターンとしても呼ばれます。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2016/07/02 15:36

編集2016/10/20 12:19

oooooooooooooooooooooooooooooooooooooo

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

画面の呼ばれ方でパスが異なってしまうケースにあたっているようですね。
その場合は相対パスは使わずに、コンテキストパスを指定したURLの記述方法が良いです。

例:

<a href="${pageContext.request.contextPath}/jsp/index.jsp">index.jspへ</a>

その原因として、

<welcome-file>に指定したhtmlやJSPへの自動遷移はフォワードで遷移しています。
このwelcome-fileで指定したJSPを表示する=Webアプリケーションのルートパスとなりますので、例えば welcome-fileにて、WebContentにある jsp/index.jsp を指定したときは、次のことが起こります。

表示する内容は jsp/index.jsp
リクエストしたURL は /プロジェクト名(コンテキストパス)/

そしてJSPから出力されたHTMLは、URLが /プロジェクト名(コンテキストパス)/ 対して、CSSやJSを読み込むことになりますから、例えばCSSの読み込み時のパスを、 ./css/style.css としておくと、この時CSSを読み込むURLは、/プロジェクト名/css/style.css となります

また、<a href="/プロジェクト名/jsp/top.jsp"> と指定したリンクを押したときのURLは、/プロジェクト名/jsp/top.jsp になりますので、この時に ./css/style.cssとするとCSSを読み込むURLは、/プロジェクト名/jsp/css/style.css となります。

そのため相対パスを使う場合には、リクエストされるURLのパス階層が一致していることが必須となってしまいますので、今回のように都合悪いケースが出てきてしまうのです(´・ω・`)

投稿2016/07/03 15:49

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

noririn

2016/07/04 11:58

A-pZ様 遅くなり申し訳ありません。 ご回答ありがとうございます! そうなっているんですね・・・ まだはっきり理解できてはおりませんが・・(><) 皆さんそういった点に注意されながらパスを書かれてるってことですよね 勉強になります。 ありがとうございます。
guest

0

JSPの表示をServlet経由(servletのforward)で行っている場合、JSPの配置が意図していないパスになっている可能性があります。(変なことではなく、普通のことですが。)

と「..」としないとcssが反応してくれません。

この時にブラウザに表示されているURLはどのようなものでしょうか。
ブラウザで表示されているパスから見た相対パスを指定する必要があります。

投稿2016/07/03 08:15

編集2016/07/03 08:39
takyafumin

総合スコア2335

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

noririn

2016/07/03 12:13

takyafumin様 お忙しいところいつもお返事ありがとうございます。 servletからフォワードで行うと、そうなるのですか・・ 知りませんでした。 >この時にブラウザに表示されているURLはどのようなものでしょうか。 ブラウザで表示されているパスから見た相対パスを指定する必要があります。 現在確認できる状態でないため、明日確認してみます! いつもありがとうございます。 また、合わせて質問させて頂きたいことがあるのですが・・ doGetとdoPostの違いとして、ざっくり言ってリンクやURIに情報が乗ってもいい場合はdoGet、個人情報の場合はdoPostと理解しておりますが doGetで処理をするはずの、リンク先である登録画面のフォームの一部(セレクトボックスの内容)がまずservletを読み込んでDBからの情報を取得して表示しないといけない場合、 welcom-fileにて/jsp/top.jspをまず読み込むようにしておりますが servletを読み込まないといけないため <welcom-file>servletクラス名</welcom-file> <welcom-file>/jsp/top.jsp</welcom-file> とするという考えでいいのでしょうか・・? 調べ方が悪いのは分かっているのですが、どうにも情報がない状態で・・ 何かご教示頂けると幸いです。 質問が多く申し訳ありません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問