phpとJava(Servlet等)のメリット、デメリットを比較

このQ&Aのポイント
  • phpとJava(Servlet等)のメリット、デメリットを比較してみました。Servletは高速で動くがメモリ消費量が大きいため、一部のレンタルサーバでは非対応です。一方、phpは実験結果ではJavaよりも早く動くこともあります。
  • 一般的にJavaは高速に動作すると言われていますが、実際のところはphpとも結果によります。Servletは堅牢なWebアプリケーションを作成できる特徴がありますが、具体的にどのような点で堅牢なのか詳しくは明確にされていません。
  • 上記の要約をまとめると、phpとJava(Servlet等)のメリット、デメリットを比較してみました。Servletは高速で動くがメモリ消費量が大きいため、一部のレンタルサーバでは非対応です。一方、phpは実験結果ではJavaよりも早く動くこともあります。一般的にJavaは高速に動作すると言われていますが、実際のところはphpとも結果によります。Servletは堅牢なWebアプリケーションを作成できる特徴がありますが、具体的にどのような点で堅牢なのか詳しくは明確にされていません。
回答を見る
  • ベストアンサー

php、Java(Servlet等)の両方をやっている方にお聞きしたいです

phpとJava(Servlet等)のメリット、デメリットを模索しています。 調べているとServletは 1.phpなど他のサーバサイド言語と比較して高速で動く代わりにメモリの消費量が大きい (※ だからレンタルサーバの多くはServletをサポートしていない) 2.Servletの方が堅牢なWebアプリケーションを作成できる。 と謳っているサイトが数多くありました。 しかし、下記サイトの実験結果ではphpの方が早く動くという結果が出ているようです。(ちょっと古いですが‥ http://www.gitc.pref.nagano.lg.jp/joho/kaisetsu/web-db/index.html#one-client 上記サイトの実験結果はさておき、一般的にJavaの方が高速に動作すると本当に言えるのでしょうか? また、「堅牢な」とは何を以ってServletのほうが堅牢と言えるのでしょうか? よろしくお願いします。

  • Java
  • 回答数3
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • newta777
  • ベストアンサー率58% (20/34)
回答No.3

Javaで仕事してます。 サイトのソースを見ましたが、Javaのソースはあんまりきれいでは無かったです。 そのせいで遅いかも。 あとはJavaのバージョンがあがって最適化が行われて、いくらか早くなっています。 ちなみに新しい結果だとこんな感じです http://www.thinkit.co.jp/cert/compare/2/4/2.htm 堅牢さですが、 Javaは結構しっかり書かないと動きませんが、PHPはちょっと適当なところがあっても動いたりします。 そういった意味では堅牢だと思います。 しかし、どの言語を使ってもきっちり書かなければセキュリティーホールの原因になります。 でも、理解して使っている人にとってはどちらも対して差は無いでしょう。 あとは好みと注文しだいでしょうか。 ちなみにServletが堅牢と言うのは少し違和感があります。 Servlet + JSP (JSPタグ利用) でHTMLの値表示を堅牢に。 Javaの言語使用で間違った型に間違った計算がされない堅牢さ。 DBのSQL問い合わせで?とパラメータを指定してクエリを投げることで、SQLインジェクションが起きない堅牢さ。 等でしょうか。Servletだけでは正直、全然堅牢じゃないです。

その他の回答 (2)

  • takeshif
  • ベストアンサー率38% (18/47)
回答No.2

Javaは、画面にSwingやjava appletを使用していれば表示されるのが遅いです。 PHPは、HTMLの中にPHPのコードを埋め込んでいるだけです。 JavaにもJSPを使用するば同じことができます。 フレームワークを使用するときは、JSPとは、タグの記述が違います。 Javaの場合は、商用で使用するときは、データベースにOracleを使用する案件しか聞いたことがないです。 一方、PHPの方は、MySQLが多いと思います。 レンタルサーバでデータベースにOracleを使用しているところは、 私は、知りません。 堅牢なアプリケーションのシステムということですが、 JavaはMVCモデルという作り方をしているのでそういうことだと思います。 でも、PHPでもそういう考え方はあります。 OracleのほうがMySQLよりCPUやメモリ消費が多いと思います。 Javaは、社内で使用する業務システム。 PHPは、一般向けに公開するシステムという位置づけなのではないかと思います。 Javaは、classファイルを作成してwarやearファイルにしてアプリケーションサーバーにデプロイしないと実行できません。 その分手間がかかります。 一方、PHPは、テキストエディタなどで編集すれば、ブラウザにアクセスして実行してすぐに確かめることができる手軽さがメリットだと思います。 データベースやアプリケーションサーバーに何を使用するのかや データベースのコネクションの部分はどんな技術を使用するのかは、いろいろ組み合わせがあると思います。 また、フレームワークを使用するのかも考慮にいれると思います。 それらの組み合わせによってパフォーマンスが変わると思います。 実験結果の内容は、古いバージョンの結果です。 新しいバージョンでは、改良が加えられて速くなっているはずです。 私は、以前は参照系はMySQL,更新系はPostgreSQLという考え方でしたが、PostgreSQLのバージョンが上がって速くなっているという記事をどこかで読んだ記憶があります。 今どんな技術が使われていて、どちらの方が需要が多いかは、派遣の求人内容をみればわかると思います。 Javaの方が勉強することが多いような気がします。 勉強がんばってください。

  • ani00
  • ベストアンサー率37% (241/640)
回答No.1

こんちゃ プロの端くれの20年ものの出がらしでございます。 まあ、正直、その辺は状況によるんじゃないかな? と思います。 似たようなことを先日後輩にも聞かれましたが、 以外に個々人で認識に相違があるので、逆にそういう勉強会とかには いきました? こういう場で聞くよりも、プロ同士の意見交換はいい意味でも刺激 になりますから、一度見てみるといいと思いますよ。 私の答えは、そうともいえるし、違うともいえるですな。 最善と最適が違うようにどっちが優れているではなく、 どっちがこの案件で有用かを自分で考える。 このプロセスが大切なんですよ。矛盾してるけど。 (こないだ聞かれたときにこう答えればよかったなぁ) 答えになっていないので、不満に感じるかも知れませんが、 考えて見てくださいな。 がんばって

関連するQ&A

  • servletコンパイル

    今、自分は、forteを使って、servletをコンパイルしています。 それで、今回は別マシンでforteを使わずにservletをコンパイル することができなくて困っています。 それは、servletをコンパイルするにあたって、jsdkを使って コンパイルするという事はここ↓ http://oshiete1.goo.ne.jp/kotaeru.php3?q=107825 で知りました。で、試したのですが、うまく行きません。 と、言うのもpathの設定で、servlet.jarが、自分の落とした、 jsdkには入っていないのです。jsdkは、ここ↓ http://java.sun.com/products/servlet/archive.html のjsdk2.1のwin95/NTを落としまして、インストールしました。 そして、pathを、j2sdk1.4.0_02を使っているので、 c:\j2sdk1.4.0_02\bin;d:\jsdk2.1\webpages\WEB-INF\servlets\server.jar; c:\jsdk2.1\webpages\WEB-INF\servlets\servlet.jar\test.java としました。 しかし、「シンボルを処理できません」と怒られます。 その中で、どうも、servletクラスを設定できてないと思われます。 他の方法でも、HPでもかまいませんので、ご教授願います。 よろしくお願いします。 環境は、 win2k j2sdk 1.4.0_02 JRun 3.0 です。

    • ベストアンサー
    • Java
  • JAVA ServletでSQL Serverに接続できないんですが。

    マイクロソフトのサイト(SQL SERVER2000 Driver for JDBC)から ドライバーを取ってきて、JAVAからDB接続テストを行っています。 最初に簡単なJAVAアプリを作って実行したところ、うまく動作しました。その後、Servletで同様のtestをしたところ、Tomcatのコンソール画面に、ClassNotFoundExceptionが出て、実行できません。 下記の命令が、処理できないようです。 Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); CLASSPATHの設定もコマンドプロンプトで、setコマンド実行結果で確認済みです。 他のデータベース(MySQL)では、Servlet,JSP,JAVAアプリすべて、うまく実行できました。 ご存知の方、よろしくお願いいたします。 環境:(1台のマシン内での仮想ネットワーク) windows XP Pro (SP1) j2SDK 1.4.1_03 Tomcat4.1 SQL Server2000

  • Web開発言語の選択 Perl? PHP? Java Servlet? Java Applet?

    Perl? PHP? Java Servlet? Java Applet? その他(あまりマイナーなのはNG)? 【Q1】Webシステム開発に当たり、開発効率という意味で、どの言語が手っ取り早いと思いますか? 【Q2】他のWebページを参照して表組やフォームの値をとってきたり、フォームに値を代入してサブミットしたりもしたいと思っています、その場合、Window Scripts HostのようにHTMLタグをオブジェクト(DOM)のように扱えるの言語はありますでしょうか?(オブジェクトとして扱えないと成るとこの辺の処理はテキストを処理することになってしまいますよね?) ※サーバーOSはLinux系 ※一番経験が長いのはC言語。Perl, Java Servlet Java Appletの経験は少々。PHPは本を読んだレベル。しかし、PHPもまったく抵抗ありません。 みなさんのご意見お待ちしております。 どうぞよろしくお願いします。m(__)m

    • ベストアンサー
    • CSS
  • Java Servletでのバックグラウンド処理

    eclipseを利用してjavaのServletシステムの開発を行っております。 昨日納品したプログラム内で、エクセル出力処理があるのですが 一度に生成されるファイル数が多いため、実行側のブラウザでタイムアウトエラーが発生してしまいます (エクセル自体はサーバー側の所定の場所に正常に生成されている) そこで、エクセル出力処理をバックグラウンドで実行させ、ブラウザ側でタイムアウトとならないようにするという方針になりました いろいろWeb上の情報を調べてみましたが、解決には到っておりません 解決策をご存知の方、おりましたらお教えいただけたらと思います よろしくお願い致します

  • 現在phpを勉強中なのですが、他の人のサイトでphpの中身がどのように

    現在phpを勉強中なのですが、他の人のサイトでphpの中身がどのように組まれているか参考にしようと思いまして、webページを完全保存したのですがphpのプログラムが書かれたファイルがダウンロードできません。form action = "***."の***の部分が見たいのですが・・。 私はあまりweb関係の事は分かりませんが、普通ダウンロードできないものなのでしょうか? ***の部分がphpプログラムだとして、処理はwebページを見ているユーザ側のブラウザで行っているのですよね? サイトのサーバー側で処理後、結果のみを発信しているのでしょうか?(これだとダウンロードできない気がしますが・・) 詳しいかたいましたらアドバイスいただけませんか?

    • ベストアンサー
    • HTML
  • Servletによるファイルアクセス

    いま、Servletによるサーバーサイドの勉強をしているのですが ちょっと詰まってしまったので、質問させてください。 WEBサーバー上にあるフォルダAには、不定期にImage01.jpg、Image02.jpgといった具合に ImageXX.jpgという規則的なファイルが作成されていきます。 そのImageXX.jpgの、一番新しいファイルにアクセスしてWEB上に表示をしたいのですが、 (要するに、一番新しいファイルにアクセスしたいのですが) どのようにしてサーブレットからそのファイルを指定すればいいのでしょうか? 分かりにくい質問ですみません。 もし分かる方がいらっしゃいましたら、よろしくお願いしますm(__)m

    • ベストアンサー
    • Java
  • PHPについて詳しい方、教えてください!

    PHPについて詳しい方、教えてください。 PbScriptさんの(http://pbs.darkgray.net/)PbsChatv2.2をダウンロードして設置しました。 説明書通りに、新しいフォルダも作り、admin.phpをエディタで編集して管理用パスワードも決めましたが、サーバーにアップロードして、admin.phpで正しいパスワードを入力しても、何故か同じパスワード入力画面に戻ってしまいます。 サーバーのPHPバージョンは4です。 配布サイトではサポートをしていないとのことですので、どなたかご存知の方いらっしゃいましたら、よろしくお願いいたします。

  • JAVAの利点

    現在、Webサイトの立ち上げを企画中です。 動的コンテンツ(機能ページ)をどんな環境(技術)で行うかの判断に悩んでいます。 その候補の一つがJAVAなのですが、 実際にJAVA(servlet,jsp)でサイト構築している方の意見を聞かせてください。 JAVAで構築する利点って何でしょう? なぜCGI(perl他)、php等では無く、JAVAを選択したのでしょうか? 是非、アドバイスを下さい。

  • Servlet/JSPのアクセス制限

    Apache 2.2.x + Tomcat 5.5.xでサーバをたてています。 そこに、とあるサーブレット、ないしはJSPのファイルがあるとします。  www.somewhere.com/apps/servlet_or_jsp これを、通常は、同一サイト内にあるhtmlファイルのフォームから呼び出しています。  www.somewhere.com/foo.html   <form action="apps/servlet_or_jsp" ...> ここで、別サイトにあるhtmlファイルのフォームから、上記のファイルを呼び出そうとしてみます。  www.somewhereelse.com/bar.html   <form action="www.somewhere.com/apps/servlet_or_jsp" ...> すると、件のファイルを実行できてしまうのですが、これを外部サイトから実行できないようにするにはどうすれば良いのでしょうか? もしかしたら、とてつもなくくだらないことなのかもしれませんが、入門書を見たりWebで検索してみても答えが見つからなかったので、質問させてください。

  • PHPにおいてJAVAのWEB-INFに対応するもの

    PHP4、apache2.0でWebアプリケーションを作ろうと思っているPHP初心者です。 Javaでwebアプリケーションを構築するときには、WEB-INFディレクトリにclassファイルやライブラリファイル、プロパティファイルなどを格納しますが、PHPの場合にはどのようなディレクトリ構成にするのが一般的なのでしょうか? また、classとして定義したPHPファイルを外部からのアクセス不可にするためには、apacheの.htaccessで該当ディレクトリをアクセス不可にするなど、HTTPサーバの設定で行うものなのでしょうか? ご存知の方、いらっしゃいましたらご回答よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう