Sevletとjsp

2,747 views

Published on

ServletとJSPの簡単なまとめ

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,747
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Sevletとjsp

  1. 1. 2012 LightHouse All Right Reserved. SevletとJSP 講義の想定対象者 Javaを一通り学習して、Javaの基本的な知識を得ている者 Webの仕組ついても基礎知識をもっている者 ServletとJSP 1
  2. 2. 2012 LightHouse All Right Reserved. Webアプリケーションとは Webアプリケーションとはネット通販、掲示板、オンライン バンキングなどWebの技術を利用して構築されたアプリケー ションのことである。 ①クライアントにはブラウザを利用 ②HTTPプロコルによりサーバーとの通信を行う ③データの表現はHTMLを用いる 2
  3. 3. 2012 LightHouse All Right Reserved. Webアプリケーションを実現するためのJavaテクノロ ジー Servlet/JSPとは ①サーブレットコンテナと呼ばれるミドルウェア上で動 作する ②ServletはJavaクラス ③JSPは HTMLにJavaプログラムを埋め込む形 3
  4. 4. 2012 LightHouse All Right Reserved. Servletとは ①HttpServletクラスを継承したjavaクラス ②HTMLの出力が可能 ③配置するだけだは動かない。 デプロイメント記述子(web.xml)への登録が必要 4
  5. 5. 2012 LightHouse All Right Reserved. Servletの例 1 package jp.lighthouse.example; 2 import java.io.*; 3 import javax.servlet.*; 4 import javax.servlet.http.*; 5 /** Hello World!表示サーブレット **/ 6 public class HelloServlet extends HttpServlet { 7 public void doGet (HttpServletRequest req, HttpServletResponse res) throws 8 ServletException, IOException { 9 10 PrintWriter out; 11 res.setContentType("text/html; charset=Shift_JIS"); 12 13 out = res.getWriter(); 14 out.println("<html><body>"); 15 out.println("<h1>Hello World!</h1>"); 16 out.println("<p>Servletのサンプル(HelloServlet.java)</p>"); 17 out.println("</body></html>"); 18 } 19 } Servletのサンプルプログラム 5
  6. 6. 2012 LightHouse All Right Reserved. デプロイメント記述子 1 <?xml version="1.0" ?> 2 <!DOCTYPE web-app PUBLIC 3 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 4 "http://java.sun.com/dtd/web-app_2_3.dtd"> 5 6 <web-app> 7 <servlet> 8 <servlet-name>HelloServlet</servlet-name> 9 <servlet-class>jp.lighthouse.example.HelloServlet</servlet-class> 10 </servlet> 11 12 <servlet-mapping> 13 <servlet-name>HelloServlet</servlet-name> 14 <url-pattern>/HelloServlet</url-pattern> 15 </servlet-mapping> 16 </web-app> Web.xmlの記述例 6
  7. 7. 2012 LightHouse All Right Reserved. Servletのまとめ ①サーブレットはJavaプログラム ②マルチスレッドで動作する ③一度呼ばれるとメモリ上に常駐する。 ④ServletはJavaコードとHTMLが1つのファイルになる ため 煩雑であり、コード可読性がよくない。 7
  8. 8. 2012 LightHouse All Right Reserved. JSPの特徴 ①HTMLベースにJavaコードを埋め込む ②拡張子は .jsp ③コンパイル不要 ④Servletのように登録も不要 8
  9. 9. 2012 LightHouse All Right Reserved. JSP 1 <html> 2 <body> 3 <h1>Hello World!</h1> 4 <p> 5 <% 6 String hello = "Hello World!"; 7 out.println(hello); 8 %> 9 </p> 10 </body> 11 </html> JSPのサンプルプログラム 9
  10. 10. 2012 LightHouse All Right Reserved. JSPのディレクティブ ディレクティブ ①pageディレクティブ JSPプログラム全体の動作に関する定義を行う。 <%@ page contentType="text/html; charset=Windows- 31J“> <%@ page import="java.util.*, java.io.*" ②includeディレクティブ 共通の機能などを別のJSPに記述しておき、インク ルード する。 <%@ include file="param.jsp" %> 10
  11. 11. 2012 LightHouse All Right Reserved. JSPの宣言とスクリプトレット 「<% ~ %>」で囲まれた部分をスクリプトレットと言う。 このスクリプトレット内ではif や while などjavaのコード を記述することができる。 スクリプトレットで定義した変数は、リクエストの都度 初期化されれる。 「<% !~ %>」で囲まれた部分を宣言と言う。 変数や定数などの定義を行う。宣言部で定義した変数は 初回アクセス時に初期化されサーバ終了時まで保持され る。 11
  12. 12. 2012 LightHouse All Right Reserved. JSP 1 <%@ page language="java" %> 2 <%@ page contentType="text/html; charset=UTF-8" %> 3 <%! 4 // 宣言部で定義された変数は 5 // 状態が保持される 6 int count = 0; 7 %> 8 <% 9 // カウントを 1 増やす 10 count++; 11 %> 12 <html> 13 <head> 14 <title>宣言部テスト</title> 15 </head> 16 <body><%= count %>回目のアクセスです.</body> 17 </html> 宣言を使った例 12
  13. 13. 2012 LightHouse All Right Reserved. JSP 1 <%@ page language="java" %> 2 <%@ page contentType="text/html; charset=UTF-8" %> 3 <% 4 // スクリプトレットで定義された変数は 5 // アクセスの度に状態が初期化される 6 int count = 0; 7 %> 8 <% 9 // カウントを 1 増やす 10 count++; 11 %> 12 <html> 13 <head> 14 <title>宣言部テスト</title> 15 </head> 16 <body><%= count %>回目のアクセスです.</body> 17 </html>p スクリプトレットの例 13
  14. 14. 2012 LightHouse All Right Reserved. スコープ スコープとはデータの有効範囲のことで, 後述の四種類ある。 変数などは適切なスコープで管理しないとメモリを圧迫したり, 予期せぬ動作を 引き起こすことがある。 ①Page スコープ 有効範囲が対象の JSP 内となる. JSP 内での処理結果の一時的な保持などで 利用する. ②Requestスコープ 有効範囲が HTTP リクエスト単位となる.単一の Servletや JSPで処理が終了す る 場合は前述の pageスコープと違いはないが, forwardなどで処理が複数に跨っ て いる場合に意味を持ってくる. 14
  15. 15. 2012 LightHouse All Right Reserved. スコープ ③Sessionスコープ 有効範囲が端末単位となる.ぺージ間で共有されるため, ユーザ認証や通販 サイトのショッピングカートなどで利用する. 本来 HTTP はステートレスな通 信であ るが, Cookie などで 端末 を判別し, セッションを実現している. ④Applicationスコープ 有効範囲が Web アプリケーション全体に及ぶ. ユーザ間でも共有されるため, 何らかの設定値や全体で不変なマスタデータのキャッシュなどを保持するた めに 利用する. 15
  16. 16. 2012 LightHouse All Right Reserved. 開発の実際は 実際の開発は、どのように行っているかというと。。。 ServletとJSPの組わせにより開発している。 ・処理の振り分け、ロジックの実行はサーブレットに任 せる ・画面表示部分はJSPに任せる これらはフレームワークと呼ばれるミドルウェアを利用 することで簡単に実現できています。 フレームワークの例 Struts, SAStruts,Spring, Slim 16
  17. 17. 2012 LightHouse All Right Reserved. 終わり END 17

×