中小企業の働き方改革をサポート>>

にあると思いますが
JSPよりPHPを使うメリット
PHPよりJSPを使うメリットを教えてください
どちらがどんなプログラムを作るのに適しているのでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (4件)

Web屋です。

OkWebの様なサイトを設計, 開発する仕事をしています。

プロの立場で見ると、PHPとJSPは同じような位置づけにあるとは思えません。

JSPはServletと連携して利用するパターンが多いです。画面描画はJSPで行ってビジネスロジックはServletを利用して記述する。などと言う連携が考えられます。
特に、基盤機能がある程度しっかりとしている場合、JSPが基盤機能と直接やりとりする事はあまり考えられないですね。

PHPでは画面描画もビジネスロジックもPHPだけで記述しますね。(当然ですが)
そう言う意味では、CGI的存在により近いのかも知れません。
PHPは寧ろASPやCGI寄りと考えた方がピンと来る様な気がします。

Webシステムは、最終的にHTMLを出力する事を主目的としているので、PHPの方が向いているプログラム、JSPの方が向いているプログラムと言うのは無いのではないかな。と思います。
CGI, ASPも同様です。

あえて、JSPの利点とPHPの利点を挙げると。。

JSP/Servletは、業務開発のための言語。
例えば、企業内の管理システムはJSP/Servletで書かれている場合が多いです。

PHPは、初心者のための言語。
Perlほど難しくは無いし、同程度の仕事はできる。特に日本では初心者のための言語と言う位置づけが定着している様なイメージがあります。


メリットと言う意味では、

JSP/Servletは、既に蓄積されている部品がたくさんあり、再利用が容易。
その分、チーム開発に適していますね。

PHPは、文法を理解するのが容易で、入門書も多数販売されている。
画面とロジックが1本にまとまっているので、ロジックを把握するのが簡単かも知れません。

って感じでしょうか。


プログラムの種類で選ぶより、開発規模やそのシステムがどこで利用されるのか。
などで決定される様な気がします。

この回答への補足

ありがとうございます

サイト上にオセロゲームがあったので
それをしたりしているのですが
それを作るとなるとどのようなプログラムを使ってどんな概略で作るのがいいでしょうか?

補足日時:2004/12/24 09:42
    • good
    • 0

>クライアントAがサーバSに知らせることはできますが


サーバSがAの操作をクライアントBに知らせることはできませんね?
>クライアントBがサーバSに問い合わせるまでクライアントBはアンタッチャブルではないのでしょうか?


>その場合Bで走っているアプレットはSからの通信を待っている状態にできるのでしょうか?

クライアントBはソケットを開けてサーバ上からの通信を待っている状態になっています。

口を開けて待っている状態のクライアントBが在り、クライアントAがスイッチを操作し、クライアントAがスイッチ押されたのをSがわかったあと、Bに対して餌を与えます。
その後、クライアントAが次の通信を受け取る準備をします。

その繰り返しになるかと
    • good
    • 0
この回答へのお礼

ありがとうございます
口をあけて待っていられるのは魅力ですね
ただJavaに対応していないブラウザクライアントを切り捨てるのがもったいない気がします

お礼日時:2004/12/24 17:32

JSPよりPHPを使う


・開発工数がJSP/サーブレットの同等なシステムに比べて比較的少なく済む場合が多い。(どちらも0から作ったら)
・短時間で習得できることが可能
・DBとの連携が簡単

PHPよりJSP+サーブレットを使う
・部品分けや再利用がしやすい
・画面と内部処理をわけられる


JavaAplettはローカルで動いてますが、
あまり詳しくはないのですが、ソケット通信が可能だった気がします。
そうすれば、何か動作を起こしたことを知らせ、受け取ることが可能です。

この回答への補足

ありがとうございます
何か動作を起こしたことを知らせ、受け取ることが可能です。:
クライアントAがサーバSに知らせることはできますが
サーバSがAの操作をクライアントBに知らせることはできませんね?
クライアントBがサーバSに問い合わせるまでクライアントBはアンタッチャブルではないのでしょうか?

補足日時:2004/12/24 13:27
    • good
    • 0

#1 です。



そのオセロゲームがどの様な方法で表示しているのか、確認しないと正しいことは言えませんが、
多分、Java Appletで書かれているのだと思います。

PHPとJSP/Servlet(CGI, ASPも同様に)は、HTMLを動的に作成する事に主眼が置かれています。(CGIは主眼とまでは行かないかも知れませんが。)
駒をひとつ置くたびに、画面をリフレッシュして再描画するのであれば、PHPやJSP/Servletでも可能ですが、オセロゲームの様な場合、毎回再描画をするのは非効率的ですので、Java Appletが適しているでしょう。

この回答への補足

ありがとうございます
Java Appletの場合対戦相手の打った手やタイミングをどうやってサーバ経由で知ることができるのでしょうか?
私の危うい知識によるとJavaAppletはクライアント側でローカルに実行されているだけではないかと思うのですが?

補足日時:2004/12/24 12:16
    • good
    • 0
この回答へのお礼

クライアントAとクライアントBがサーバSを通じてオセロをやっているときに
打った手をAがSに送りSが処理してBにその結果を送らなければなりませんが
その場合Bで走っているアプレットはSからの通信を待っている状態にできるのでしょうか?

お礼日時:2004/12/24 13:54

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング