- ベストアンサー
JSPとサーブレットは両方勉強する必要があるのですか。
こんにちは。大学3年生で情報系学部に通っています。 質問はタイトルのとおり、 「JSPとサーブレットは両方勉強する必要があるのですか。」です。 もちろんあると思っているのですが、なぜなのでしょうか。 また「人事管理システム」のようなのものを作りたいと思っています。 名前や住所を登録して、検索したり、印刷したりできるというものです。 jsp&sevletどちらも使うのでしょうか。 javaは「やさ○いjava」で勉強しました。 「やさ○いjava」活用編でjsp&sevletをやりました。 jsp&sevletをもっと勉強したいと思っています。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
がると申します。専門職です。一応「個人的雑感」ということで読んでいただければ。 サーブレット一本で組むことは十分に可能です。JSPは…個人的にはあまり好まないので割合に「回避」するほうなのですが。無論組み合わせることで「便利になる」ことを否定は致しません。 JSPは、イメージ的にはMVCのVの部分に近しい、或いは、一時期流行っていた「HTML内にソースがかけるメリット」を追求したものになるかと思うのですが。 現実問題として、現在業務で「HTMLとロジックを混在させる」ことは稀ですし(通例、テンプレートエンジンなどを用いて分離させます)、そういった意味合いも込めて、JSPについては、私の周囲では比較的に減少傾向にあるように感じられます。 で、上述の話を抜きにすると、基本的には結局「Javaの文法」ですので、そのあたりは概ね似たり寄ったりです。 あと、JavaScriptについて言及があるようですが、別に「必須」ではありません(というか業務でアレが必須というのは、基本的には想定しにくいです。昨今はやりのAjaxを考慮して、なお)。JavaScriptは基本的に「なくてもOKなんだけどもし動いたら操作性がよくなる」にとどめておかないと、色々と厄介ごとを生みますので。 以上、個人的雑感で恐縮ですが、現場からの1見解でした。
その他の回答 (4)
- dekopa-
- ベストアンサー率42% (161/378)
あるといえばありますが、Servletはさわりだけでいいと思います。 #JSPは実行時にServletに変換され、コンパイルされ、実行されるので結局同じ事ですけど。 昨今はStrutsを代表とするフレームワークの利用が必須で、サーバー上のロジックはServletの上にビジネスロジックを被せた状態で動きます。 PGが作るのはこのビジネスロジックだけになる(深い部分は共通チームが片付けます)ので、Servletに依存した処理はめったに書きません。 大してJSPは、テンプレートエンジンが多く出回っていてもまだ使われています。仕事によってJSFが絡んだりAJAXが絡んだりしますが。 しかし、こちらはHTMLが基本です。JSP独自の部分よりむしろ、きちんとしたHTMLとCSS、JavaScriptを必要に応じて使いこなせることが重要です。 なので、業務での重要度は ビジネスロジック>フレームワークやORMツール>HTML,CSS,JavaScript>JSP>Servlet 位だと思います。まあ、どれも「知らない」では済まされませんが。 フレームワークを使っていても、基本はServletですし、JSPだって結局使います。全部知っていて、適材適所で使い分けるのです。
お礼
"Strutsを代表とするフレームワークの利用が必須"なのですね。 jsp/sevletの後でやろうと思っていたので、近いうちに重点的にやろうと思います。 ”JSPはまだ使われています””こちらはHTMLが基本です。”JSPのことも念頭においておきます。 仕事によって使われてる技術が違うんだなと感じました。 早く”ビジネスロジック”、”テンプレートエンジン”などの意味が判るようになりたいと思いました。
- myst_scientist
- ベストアンサー率27% (10/37)
学生で実務経験はないことを先に申し上げておきます。 結論から言えば、どちらも出来たほうが良いともいます。 JSPで出来ることはサーブレットで実現できますし、その逆も可能(らしい)です。 (分かっていたらここは読み飛ばしてください) しかし、手間の側面から考えると out.println("Hallo World"); と綴り誤り等を発見した(おまけに処理と直接関係ない)場合、 out.println("Hello World"); と書き直した際も手動コンパイルが必要になります。 しかしJSPであれば修正して、そのページを呼び出せば自動でコンパイルがかかります(初回は時間がかかる)。 ので私は勉強したほうが良いと思います。 がるさんの言うように減少傾向かもしれませんが、再興もありえないとも限らないですし。 以降はお礼から >”JavaScriptも必須”なのには驚きました。 必須ではないと思います。 ブラウザの設定ひとつで無効に出来てしまうので、信頼できず、「JavaScriptを有効にしてください」などと出ると私はムッときます。(ユーザ視点の一例と考えてください) >javaは万能じゃないってことが感じられました。 人間が作ったものだから仕方ないと思います。 >”両者の切り分けがよく飲み込めていない”です。 「表示に関する部分はJSP、処理はservlet」と参考書には書かれています。深く考えなくても感覚で良いと思います(仕事でないなら)
お礼
”JavaScriptは必須ではない”との意見も多いですね。 私もHPづくりで使ってみて使いにくいなと思っていました。 仕事によっては”必須”というくらいにとどめておきます。 またサイトを作る際さいの選択肢の一つであると。 ”JSPは再興もありえないとも限らない”ので両方ともやろうと思います。 私はコンパイルが結構好きなのでサーブレット派かな。
>JSPとサーブレットは両方勉強する必要があるのですか 実際、多少勉強されたならわかっていることと思いますが、JSPとサーブレットというのは、実は「同じもの」です。ですので、分けて片方だけ勉強するというのは、逆に難しいかと。 もし、そのあたりがまだよくわかっていないということでしたら、もう少し勉強されるとよいと思いますよ。そうすると「どっちを勉強すべきか」という発想自体が間違いだったことがわかってくると思います。 >また「人事管理システム」のようなのものを作りたいと思っています。 >名前や住所を登録して、検索したり、印刷したりできるというものです。 >jsp&sevletどちらも使うのでしょうか。 インターフェイスはJSP、ロジックはサーブレットでしょう。このあたりも、まだ両者の切り分けがよく飲み込めていないのだろうと思います。 Javaでサーバサイドをやろうというのでしたら、正直に言いまして「JSPとサーブレットのどっちか」というところで悩んでいる時点でちょっと心もとないです。それは、いわば「数学を勉強するのに、足し算と引き算のどっちを勉強すべきか」みたいなものですから。どっちも使えて当たり前、それがわかってようやくスタートライン、と考えたほうが良いでしょう。
お礼
そうです。”同じもの”だからこそどっちもやる必要あるの?と思っていたのです。 ”両者の切り分けがよく飲み込めていない”です。 ”どっちも使えて当たり前”ですね。 大変勉強不足でした。 javaの文法からjsp/servletからもっと勉強します。
- lv4u
- ベストアンサー率27% (1862/6715)
JSPとサーブレットだけではなくて、それなりに使えるサイトを作りたい場合は、JavaScriptも必須だと思います。 これは、Web構築で使われているJSPやServletの技術が良く言えば「発展途上の技術」悪くいえば、「場当たり的な(できそこない)技術の集大成」なので、「これ1つでOK!」って言えない状況なんです。 以前、「JSP&Serevlet&JavaScript」という構成で大手企業のシステムの開発を数十人のチームでやったことがありますが、「あんなに作りにくいものを苦労して仕上げたけど、出来上がりはいまいち、2度とやりたくない!」って印象を持ちました。 で、本来の質問に戻りますが、Servletのみでシステムを作ることは可能です。が、それはJavaでプログラムを書いて、コンパイルしないといけない。バグや変更があると、これらを繰り返すことになります。とーーーてもめんどくさい!でもJSPはHTMLの中に命令を「混ぜご飯」するだけでいい。コンパイルも不要(まあ、実際はコンパイルされているらしいが、人間がコマンドを打つ必要はない)で楽です。 でも、当然ながら、JSPだけでは、出来ないこともイロイロあってServletが必要になるし、エラーチェックや操作性の向上にはJavaScriptも必要になってしまうんです。 JSPやServletという単語を見ると、ちょっと感情的になってしまいます。すいません。
お礼
”JavaScriptも必須”なのには驚きました。 ”「Web構築で使われているJSPやServletの技術が良く言えば発展途上の技術」悪くいえば、「場当たり的な(できそこない)技術の集大成」”なのですね。 JSPやServlet両方ともやることにします。 javaは万能じゃないってことが感じられました。
お礼
がるさんが私の質問に答えてくれた(喜)。 JSPではなくてサーブレットのほうがよく使うというのは以外でした。サーブレットから学んでいきます。 >現実問題として、現在業務で「HTMLとロジックを混在させる」ことは稀ですし(通例、テンプレートエンジンなどを用いて分離させます) まさに専門的ですね。こういう仕事したいなーと思います。 >「Javaの文法」ですので、そのあたりは概ね似たり寄ったり javaの文法を意識してやろうと思います。すごくわかりやすかったです。