More Related Content
PDF
Storytelling For The Web: Integrate Storytelling in your Design Process PDF
2024 Trend Updates: What Really Works In SEO & Content Marketing PDF
Artificial Intelligence, Data and Competition – SCHREPEL – June 2024 OECD dis... PPT
Spring3.1概要 データアクセスとトランザクション処理 PDF
How to Leverage AI to Boost Employee Wellness - Lydia Di Francesco - SocialHR... PDF
PDF
PDF
Featured
PDF
Everything You Need To Know About ChatGPT PDF
The six step guide to practical project management PDF
Introduction to Data Science PDF
ChatGPT and the Future of Work - Clark Boyd PDF
Google's Just Not That Into You: Understanding Core Updates & Search Intent PDF
PDF
Getting into the tech field. what next PDF
Time Management & Productivity - Best Practices PDF
PEPSICO Presentation to CAGNY Conference Feb 2024 PDF
Social Media Marketing Trends 2024 // The Global Indie Insights PPTX
How to Prepare For a Successful Job Search for 2024 PDF
AI Trends in Creative Operations 2024 by Artwork Flow.pdf PDF
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright... PDF
2024 State of Marketing Report – by Hubspot PDF
Product Design Trends in 2024 | Teenage Engineerings PDF
How to have difficult conversations PDF
5 Public speaking tips from TED - Visualized summary PDF
How Race, Age and Gender Shape Attitudes Towards Mental Health PDF
Trends In Paid Search: Navigating The Digital Landscape In 2024 PDF
Content Methodology: A Best Practices Report (Webinar) Sevletとjsp
- 1.
2012 LightHouse AllRight Reserved.
SevletとJSP
講義の想定対象者
Javaを一通り学習して、Javaの基本的な知識を得ている者
Webの仕組ついても基礎知識をもっている者
ServletとJSP
1
- 2.
2012 LightHouse AllRight Reserved.
Webアプリケーションとは
Webアプリケーションとはネット通販、掲示板、オンライン
バンキングなどWebの技術を利用して構築されたアプリケー
ションのことである。
①クライアントにはブラウザを利用
②HTTPプロコルによりサーバーとの通信を行う
③データの表現はHTMLを用いる
2
- 3.
2012 LightHouse AllRight Reserved.
Webアプリケーションを実現するためのJavaテクノロ
ジー
Servlet/JSPとは
①サーブレットコンテナと呼ばれるミドルウェア上で動
作する
②ServletはJavaクラス
③JSPは HTMLにJavaプログラムを埋め込む形
3
- 4.
2012 LightHouse AllRight Reserved.
Servletとは
①HttpServletクラスを継承したjavaクラス
②HTMLの出力が可能
③配置するだけだは動かない。
デプロイメント記述子(web.xml)への登録が必要
4
- 5.
2012 LightHouse AllRight 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.
2012 LightHouse AllRight 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.
2012 LightHouse AllRight Reserved.
Servletのまとめ
①サーブレットはJavaプログラム
②マルチスレッドで動作する
③一度呼ばれるとメモリ上に常駐する。
④ServletはJavaコードとHTMLが1つのファイルになる
ため
煩雑であり、コード可読性がよくない。
7
- 8.
2012 LightHouse AllRight Reserved.
JSPの特徴
①HTMLベースにJavaコードを埋め込む
②拡張子は .jsp
③コンパイル不要
④Servletのように登録も不要
8
- 9.
2012 LightHouse AllRight 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.
2012 LightHouse AllRight 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.
2012 LightHouse AllRight Reserved.
JSPの宣言とスクリプトレット
「<% ~ %>」で囲まれた部分をスクリプトレットと言う。
このスクリプトレット内ではif や while などjavaのコード
を記述することができる。
スクリプトレットで定義した変数は、リクエストの都度
初期化されれる。
「<% !~ %>」で囲まれた部分を宣言と言う。
変数や定数などの定義を行う。宣言部で定義した変数は
初回アクセス時に初期化されサーバ終了時まで保持され
る。
11
- 12.
2012 LightHouse AllRight 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.
2012 LightHouse AllRight 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.
2012 LightHouse AllRight Reserved.
スコープ
スコープとはデータの有効範囲のことで, 後述の四種類ある。
変数などは適切なスコープで管理しないとメモリを圧迫したり, 予期せぬ動作を
引き起こすことがある。
①Page スコープ
有効範囲が対象の JSP 内となる. JSP 内での処理結果の一時的な保持などで
利用する.
②Requestスコープ
有効範囲が HTTP リクエスト単位となる.単一の Servletや JSPで処理が終了す
る
場合は前述の pageスコープと違いはないが, forwardなどで処理が複数に跨っ
て
いる場合に意味を持ってくる.
14
- 15.
2012 LightHouse AllRight Reserved.
スコープ
③Sessionスコープ
有効範囲が端末単位となる.ぺージ間で共有されるため, ユーザ認証や通販
サイトのショッピングカートなどで利用する. 本来 HTTP はステートレスな通
信であ
るが, Cookie などで 端末 を判別し, セッションを実現している.
④Applicationスコープ
有効範囲が Web アプリケーション全体に及ぶ. ユーザ間でも共有されるため,
何らかの設定値や全体で不変なマスタデータのキャッシュなどを保持するた
めに
利用する.
15
- 16.
2012 LightHouse AllRight Reserved.
開発の実際は
実際の開発は、どのように行っているかというと。。。
ServletとJSPの組わせにより開発している。
・処理の振り分け、ロジックの実行はサーブレットに任
せる
・画面表示部分はJSPに任せる
これらはフレームワークと呼ばれるミドルウェアを利用
することで簡単に実現できています。
フレームワークの例 Struts, SAStruts,Spring, Slim
16
- 17.