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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Q&A

解決済

2回答

2335閲覧

サーブレットとJSPについて

退会済みユーザー

退会済みユーザー

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

0グッド

1クリップ

投稿2016/09/20 01:16

サーブレットとJSPについての質問です。
「プロになるためのWeb技術入門」という本に以下のような記述があります。

「前節ではサーブレットとJSPを連携させることで互いの利点を生かしてWebアプリケーションを構築する方法を学びました。実は、これにはソフトウェア開発で非常に重要な考え方が含まれています。それは「ロジックとデザインの分離」とい考え方です。
前節で取り上げた「ピザ・ペントミノ」(非常に簡単なピザの注文ができるWebサイトです)のログイン画面から商品一覧画面への繊維では、「入力されたユーザーIDとパスワードが正しいかどうかを判定する処理」が「ロジック」部分であり、それ以外は全て画面表示のための「デザイン」部分でした。
サーブレットとJSPのどちらも「ロジック」と「デザイン」の両方を実現することができます。しかし、そもそもサーブレットとJSPはロジックとデザインを分離するために考えられた仕組みです。そこで、両者の特性を生かせるようにサーブレットとJSPを連携させていたのです。」

上の文章の「しかし、そもそもサーブレットとJSPはロジックとデザインを分離するために考えられた仕組みです。」というのが理解できませんでした。
本の説明によると、PerlやCでCGIを用いてWebアプリを開発すると、
(i)大規模開発が難しい
(ii)いちいちプロセスを起動するため、処理速度が遅い
という二つの欠点があるため、この両方の欠点を克服できるサーブレット/JSPでのWebアプリケーションの開発が普及した、とありました。
この流れと上の文章中の「サーブレットとJSPはロジックとデザインを分離するために考えられた仕組み」というのはマッチしていない気がするのです。
私はPerlもCも勉強したことはないのですが、PerlやCというのはロジック(処理部分)とデザイン(html生成部分)がごちゃまぜになっているのでしょうか?
そして、サーブレットやJSPというのは、PerlやCに比べると、ロジックとデザインの分離ができているという意味なのでしょうか?

詳しい方、回答お願いします。

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

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

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

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

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

guest

回答2

0

           

投稿2016/09/28 16:03

編集2016/09/29 14:36
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

ベストアンサー

一つずつ順を追って回答します。
#前提
オブジェクト指向というものがありまして、簡単に言うと
・機能(部品)ごとにページを作成する
・同じ機能(部品)は使いまわす
と理解して頂ければよいです。
(上記だけでは正確な理解にはつながらないので、後ほど検索して頂ければと思います)

#回答1

この流れと上の文章中の「サーブレットとJSPはロジックとデザインを分離するために考えられた仕組み」というのはマッチしていない気がするのです。

大規模な開発を行うと、同じ機能を何度も使いまわします。
また、誰かが作成した機能の検証を行います。
その際に、長く様々な機能(部品)が混在するソースコードを読むより、
この機能(部品)だけを記載しているページを読む方が簡単ですし、時間の短縮にもなりますし、管理しやすいですよね。

#回答2

PerlやCというのはロジック(処理部分)とデザイン(html生成部分)がごちゃまぜになっているのでしょうか?

こちらは開発の現場や規模にもよりますが、現在開発する際には基本的には分離・分解して作成する、というのが主流です。
ただし、古いソースコードを読み返すと長々と1ファイルで完結しているものも見ますし、1ファイルで完結出来てしまいます。
これを防ぐために、

そもそもサーブレットとJSPはロジックとデザインを分離するために考えられた仕組み

という考えのもとに作成されました。(私も違う本で同じような記述を見たことがあります)

#回答3

サーブレットやJSPというのは、PerlやCに比べると、ロジックとデザインの分離ができているという意味なのでしょうか?

その通りです。
ロジックとデザインの分離をすることで、より管理しやすくなり工数を削減できます。

投稿2016/09/20 03:55

kpiyohiko

総合スコア658

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

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

退会済みユーザー

退会済みユーザー

2016/09/22 10:51

回答ありがとうございます。 サーブレットとJSPというのはCGIの欠点を克服するために使用されたのが先なのでしょうか? それとも、PerlやCではロジックとデザインの分離ができていなかったから、普及したのでしょうか? はたまた、これらの二つの理由のためでしょうか? それと全体の文章の中で、「サーブレットとJSP」あるいは「サーブレット」と「JSP」というふうにみるべきかどちらなのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問