忍者ブログ
[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



2017/08/20 11:20 |
Java2-1:JSPでHelloWorld

Javaサーブレットは結局のところJava言語そのものであり、たかだかWebページを作成するためにJavaサーブレットを用いるというのは鶏を割くのに牛刀を用いるようなものです。
他にも、ちょっとでもソースを変更するたびにコンパイルが必要だったり、ヒアドキュメントが無いので文字表示を行うたびに
response.getWriter().println("Hello World");
等面倒なコードを書かなければならなかったり、デザインとロジックの分離がまったく出来ないという問題点もあり、Webアプリとしてはお話になりません。

また複数言語で同じ処理を行うコードの例を載せているところがありますが、だいたいJavaサーブレットだけコード量が1.5倍から2倍くらいになっています。
いくら理念が優れていたところで現実的に面倒なら使う意味がないのが世の常です。

その欠点を解消すべく登場したのがJSPです。

例によってとりあえずHelloWorldと書いてみましょう。
配置場所はWebContentフォルダ内です。

HelloWorld.jsp

<html>
<head>
      <title>Hello, World!!</title>
</head>
<body>
      <% out.println("<p>Hello,World!!</p>"); %>
</body>
</html>


PHPやASPにしか見えません。

JSPには、サーブレットで面倒だったコンパイルやクラスファイルの配置が一切必要ありません。
普通にHTMLを作成する感覚で作成することができます。
また、必要となるクラスのインポートやHttpServletの継承、一部オブジェクトのインスタンス化等も自動的に行ってくれるうえ、ややこしいweb.xmlの記入も基本的に必要ありません。
どうして最初からこれらの機能を搭載しなかったのか不思議でなりません。

内部的には、JSPは初めて呼び出されたときに自動的にJavaサーブレットに変換され、さらにコンパイルされてクラスファイルとして実行されます。
では今後JavaサーブレットはすべてJSPに置き換えてしまえばいいかというと全くそういうことはありません。
JSPだけだと却って面倒になったり見難くなったりするからです。

最後に、例によってJavaサーブレットでも行った簡単カウンターをさくっと作ってみます。

counter.jsp

<%@ page contentType="text/html;charset=Shift_JIS" %>
<%
      //アプリケーションスコープのcntを引いてくる
      String strCnt=(String)(application.getAttribute("cnt"));

      //+1する
      if(strCnt==null){
            strCnt="1";
      }else{
            strCnt=Integer.toString(Integer.parseInt(strCnt)+1);
      }

      //アプリケーションスコープにセット
      application.setAttribute("cnt",strCnt);
%>

<html>
<head>
<title>簡易アクセスカウンタ</title>
</head>
<body>
      <%--↓でstrCntの内容を表示する-->
      現在のアクセス数は<%=strCnt%>です。
</body>
</html>

PR


2008/06/15 13:23 | Comments(0) | TrackBack(0) | Java

トラックバック

トラックバックURL:

コメント

コメントを投稿する






Vodafone絵文字 i-mode絵文字 Ezweb絵文字 (絵文字)



<<その他1-4:セキュリティ対策4:クロスサイトリクエストフォージェリ | HOME | Java1-4:JavaServletでフィルタ>>
忍者ブログ[PR]