メディプロ1 Javaサーブレット補足資料.ppt

Similar documents
Microsoft PowerPoint - Lecture_3

PowerPoint Presentation

Microsoft PowerPoint - Lecture_2

Servlet/JSP ( 作成中 ) 2010 年 x 月 x 日作成 Firebird 日本ユーザー会 Naoyuki Sano 1

WebOTXマニュアル

スライド 1

Web JavaScript Java Applet Flash ActionScript CGI (C, perl, ruby ) PHP Servlet, JSP (JavaServer Pages) ASP 7-2

II 2 p.2 2 GET POST form action URL Aisatsu 2.1 Servlet GET GET : Query String QueryStringTest.java 1 import java.io.ioexception; 2 import java.io.pri

第 7 回の内容 動的な Web サイト フォーム Web システムの構成

第13回講義

Web 1 p.2 1 Servlet Servlet Web Web Web Apache Web Servlet JSP Web Apache Tomcat Jetty Apache Tomcat, Jetty Java JDK, Eclipse

Web Servlet/JSP JSP

HTML Java Tips dp8t-asm/java/tips/ Apache Tomcat Java if else f

HTML Java Tips dp8t-asm/java/tips/ Apache Tomcat Java if else f

Servlet JSP JSP Servlet/JSP における 日 本 語 の 処 理 - 1

II 1 p.1 1 Servlet 1.1 Web Web WWW HTML CGI Common Gateway Interface Web HTML Web Web CGI CGI CGI Perl, PHP C JavaScript Web CGI HTML 1.2 Servlet Java

PowerPoint Presentation

9iAS_DEV.PDF

Javaの作成の前に

B2-Servlet-0112.PDF

メディプロ1 Javaプログラミング補足資料.ppt

SystemDirector Developer's Studio(V3.2) 適用ガイド

Web のしくみと応用 ('15) 回テーマ 1 身近なWeb 2 Webの基礎 3 ハイパーメディアとHTML 4 HTMLとCSS 5 HTTP (1) 6 HTTP (2) 7 動的なWebサイト 8 クライアントサイドの技術 回 テーマ 9 リレーショナルデータベース 10 SQL とデータ

PowerPoint プレゼンテーション

実験 5 CGI プログラミング 1 目的 動的にWebページを作成する手法の一つであるCGIについてプログラミングを通じて基本的な仕組みを学ぶ 2 実験 実験 1 Webサーバの設定確認と起動 (1)/etc/httpd/conf にある httpd.conf ファイルの cgi-bin に関する

<4D F736F F D A B C982E682E98F6F90C88A6D E646F63>

プレポスト【問題】


Web データ管理 JavaScript (1) (4 章 ) 2011/12/7( 水 ) 湘南工科大学講義資料 Web データ管理 (2011) 阿倍 1/21

Webプログラミング演習

Microsoft PowerPoint - 04WWWとHTML.pptx

C:\Apache Software Foundation\Apache2.2\htdocs\sample\login.html サンプルプログラム passworddisc.php <head><title> ログイン </title></head> $user=$_post['user']; $

Webデザイン論

ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spar

目次

Javaと マルチスレッド

SpringSecurity

スライド 1

intra-mart Accel Platform — Slack連携モジュール 利用ガイド   初版  

WebOTXマニュアル

Microsoft Word 基_シラバス.doc

PowerPoint プレゼンテーション

2013メディアP演習1Java資料

ネットワーク Ⅳ 32 ページ Servlet と JSP と Ajax 紹介 <body> <p > 商品名 :<input type="text" value="goodsa" id="nameid"></p> <p > 在庫数 :<i

HTML/JSP/Servlet... 7 JSP... 7 Servlet Struts Struts Struts FormBean LoginForm

PowerPoint プレゼンテーション

1

スライド タイトルなし

PowerPoint プレゼンテーション

think9i Oracle Internet File System i を使用した ソフトウェア開発手法 日本オラクル株式会社製品本部システム製品マーケティング部 Copyright 2001 Oracle Corporation Japan. All Rights Reserved.

2

JavaScript 演習 2 1

WebOTXマニュアル

Webプログラミング演習

サーブレット (Servlet) とは Web サーバ側で動作する Java プログラム 通常はapache 等のバックグラウンドで動作する Servletコンテナ上にアプリケーションを配置 代表的な Servlet コンテナ Apache Tomcat WebLogic WebSphere Gla

PowerPoint プレゼンテーション

Microsoft Word - PHP演習資料.doc

PowerPoint Presentation

デジタル表現論・第6回

forever朝活


Another HTML-lint 導入マニュアル(JSP)版

PowerPoint プレゼンテーション

Microsoft PowerPoint - web_and_dm08_servlet2.pptx

--- サーバ側処理 Java servlet の例 // 通常の Java servlet での POST で受信と同じ protected void dopost(httpservletrequest request, HttpServletResponse response) throws S

情報システム設計論II ユーザインタフェース(1)

intra-mart マスカット連携ガイド

PowerPoint プレゼンテーション

第7回 Javascript入門

Microsoft PowerPoint ppt

演習室の PC のハードディスクには演習で作成したデータは保管できません 各 PC の ネットワーク接続 ショートカットからメディア情報センターのサーバーにアクセスしてください (Z ドライブとして使用できます ) 講義で使うフォルダ 2/23

PowerPoint プレゼンテーション

内容 ( 演習 1) 脆弱性の原理解説 基礎知識 脆弱性の発見方法 演習 1: 意図しない命令の実行 演習解説 2

9 WEB監視

第1章 ビジュアルプログラミング入門

<48746D6C8AEE91628D758DC02E786C73>

Prog2_6th

intra-mart Accel Platform — IM-共通マスタ スマートフォン拡張プログラミングガイド   初版  

プログラミング入門1

19 ステップで 2 大人気スクリプト言語を学ぶ GUI のあるアプリを作る STEP11 から STEP12 までまとめ 1.Python での GUI アプリ作成 Python は標準ではグラフィックスの機能を持ちませんが ライブラリを使うことで GUI のアプリを作成することができる そこで

演習室の PC のハードディスクには演習で作成したデータは保管できません 各 PC の ネットワーク接続 ショートカットからメディア情報センターのサーバーにアクセスしてください (Z ドライブとして使用できます ) Web プログラミング 1 CGI (3 章 ) 2012/6/12( 水 ) 講義

V8.1新規機能紹介記事

GEC-Java

はじめに インフォマート API の呼び出しには OAuth2.0 による認証を受ける必要があります OAuth2.0 を使うことで インフォマート API を利用するサービスは インフォマートプラットフォーム ID( 1 以下 PFID) とパスワードを保存したり処理したりすることなく PFID

Webアプリケーション構築 Java 7版

Prog2_6th

intra-mart im-JavaEE Framework

HCI プログラミング 10 回目テキストフィールドとキーイベント 今日の講義で学ぶ内容 テキストフィールドの利用 キーイベントの処理 テキストフィールドの利用 1 テキストフィールドを配置してみましょう テキストフィールドを用いることにより 数値や文字列などのデータ入力が可能になります ソースファ

基本情報STEP UP演習Java対策

Prog2_12th

目次

intra-mart Accel Platform — 外部ソフトウェア接続モジュール 仕様書   第3版  

ボタンイベントアプリイベント処理を含むアプリとして, ボタンをもち, ボタンを押すと文字列を表示するアプリを作る. このアプリは,HelloWorld アプリを改造して作成するため, アプリ作成の途中からの手順を示す. 1. ボタンの設置 (1) レイアウトにボタンを追加するパレットの フォーム ウ

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

Part1 159 a a

オブジェクト指向プログラミング・同演習 5月21日演習課題

目次

Gartner Day

Microsoft PowerPoint - oas4082_NewFeature.ppt[fiLJݔæ‡è’êŠp]

Oracle JDeveloper 10g ADF Creation Date: Jul 07, 2004 Last Update: Jul 08, 2004 Version 1.0

Transcription:

メディアプロジェクト演習 1 Java サーブレット補足資料 CGI の基本 CGI と Java サーブレットの違い Java サーブレットの基本

インタラクティブな Web サイトとは Interactive q 対話 または 双方向 q クライアントとシステムが画面を通して対話を行う形式で操作を行っていく仕組み 利用用途 Web サイト, シミュレーションシステム, ゲームなど WWW = インタラクティブなメディア テレビやラジオと異なり ユーザの側から積極的に 情報にアクセスする (w3.org より ) Web サイトなどを介したシステム JavaScript, CGI, Java servlet など

JavaScript とは インタプリタ型のスクリプト言語として Web ページ上で動作 q q q HTML 文書は静的なWebページを表示するのみ JavaScriptを用いることで 動的な情報表示が可能 C 言語と文法が少し似てる q あくまでも クライアントサイドで動作 (HTMLファイルへの埋め込み) q Javaとは全く違うもの! 利用用途 q q クライアント側で計算やページの動的操作目的に応じた様々なアクションなど 動作場所クライアントの環境下 リクエスト レスポンス Web サーバ

CGI とは Common Gateway Interface:CGI ブラウザから送信されたデータを Web サーバで受け 受け取ったデータを処理するアプリケーションに渡す仕組み 利用用途 アンケートや掲示板など データ転送方法 GET と POST

データの転送方法 (GET, POST の違い ) GETとPOSTによるデータ転送 q Webシステムを介した情報通信のメソッド q HTTPにおけるリクエストの形式 GET q 送信するデータを引数として連結し, 取り扱う q 人目に送信情報が表れる && 大量のデータ送信には不向き q CGIを指定するURLの末尾に? を加え その後にURLエンコードしたデータを追加する例 : http://www.hogenet.jp/cgi-bin/faq/faq.cgi?year=2011&month=6 ここで,? の後ろについた year=2011 と month=6 が引数で, 複数ある場合は & で連結 POST q フォームを用いて, パラメータをつけて情報要求を行う. q 大量のデータ送信に向いており, 送信情報は人目にあらわれない

CGI の仕組み ブラウザ側の要求ごとに応じてそれぞれ対応するプロセスが起動 処理の膨大化

Java サーブレット Java 言語によって作成された,Web サーバ上で実行されるモジュール クライアント側からの要求に応じて, 動的に HTML 文書を作成し, クライアントに送信 ( インタラクティブを実現 )

Java サーブレット サーバコンテナといわれるサーバー上で, 処理 Webサーバー上でひとつのインスタンス ( プロセス ) を共有 要求をひとつのスレッドとして起動するので, 負担をかけない.

Java サーブレットのファイル構成 ブラウザ上で表示される HTML 文書 名前空間の定義 作成したクラスファイル

Java サーブレットの準備 1. Tomcatの設定 2. LinkするためのHTMLファイルの用意 3. サーブレットプログラム ~~.java ~~.class の作成 4. コンテンツ定義のための web.xml の用意 5. その他, 必要に応じて

Java サーブレットの準備 ( 1. Tomcat の設定 ) 1. Tomcat サーブレットや JSP を実行するためのサーブレットコンテナ ( サーブレットエンジン ) のことサーブレットコンテナとは,HTML などの Web ページを動的に生成することができる Java サーブレットを動作させるためのソフトウェア 2. 以下のスクリプトを実行 /kyozai/amaeda/mp1/scripts/tomcatsetup.sh( 初期環境設定 ) $CATALINA_HOME/bin/startup.sh(Tomcat の起動 ) 3. URL の確認 q http://www.ritsumei.ac.jp/~loginid:8080 (WAN 側からの確認 ) q http://localhost:8080/ ( 各自の PC, ローカル環境からの確認 ) Servlet の動作は必ず Port8080 を用いること

Java サーブレットの準備 ( 2. Link するための HTML ファイルの用意 ) Web アプリケーションなので, 必ず HTML 上にリンクさせましょう. <html> <head> <title>helloworld</title> </head> <body> <a href= http://localhost:8080/mysite/myserve"> クリックして下さい </a> <br> </body> </html>

Java サーブレットの準備 ( サーブレット用のプログラムの作成 ~~.java) サーブレットは実際に doxxxx メソッドを呼び出す ( ロジック ) /* Sample9 Myserv.java */ import java.io.*; import javax.servlet.*; import javax.servlet.http.*; サーブレットとなる Myserv サーブレットの親クラス public class Myserv extends HttpServlet { doget: GET リクエスト public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { } Response.setContentType( text/html;charset=utf-8 ); PrintWriter out = response.getwriter(); out.println( <html><body><h1>hell World!</h1> </body></html> ); } HTML 文書の記述この文書がサーバ側から動的に提供

Java サーブレットの準備 ( サーブレット用のプログラムの作成 ~~.java) サーブレットは実際に doxxxx メソッドを呼び出す ( ロジック ) /* Sample9 Myserv.java */ import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Myserv extends HttpServlet { サーブレットに必要なクラスをインポート HttpServlet の doget メソッドはここでオーバーライド ( 再定義 ) されている public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { } Response.setContentType( text/html;charset=utf-8 ); PrintWriter out = response.getwriter(); out.println( <html><body><h1>hell World!</h1> </body></html> ); } オーバーライドとは : 継承時のスーパークラスで定義されたメソッドと同じ名前 引数を持つメソッドを サブクラスで再定義すること

Java サーブレットの準備 ( サーブレット用のプログラムの作成 ~~.java) /* Sample9 Myserv.java */ クライアントからの要求オブジェクト /*<snip>*/ public class Myserv extends HttpServlet { public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { クライアントからの応答オブジェクト Response.setContentType( text/html;charset=utf-8 ); 文字列出力 PrintWriter out = response.getwriter(); out.println( <html>\n ); out.println( <body> ); out.println( <h1> ); out.println( Hell World! ); out.println( </h1> ); out.println( </body> ); out.println( </html> ); } } 文字列を表示するための PrintWriter オブジェクトを取得 先のスライドを分解した形

Java サーブレットの準備 ( コンテンツの設定 :web.xml) サーブレットの呼び出し方や初期値などの設定を行うサーブレットを動作させるためには必ず用意する web.xml の基本的な構成 <?xml version="1.0" encoding="iso-8859-1"?> DTD 宣言 <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <servlet>... </servlet> 利用するサーブレットの定義 </web-app>

Java サーブレットの準備 ( コンテンツの設定 :web.xml) <servlet>~ </servlet> 内に利用するサーブレット名を記述する サーブレットを動作させるためには必ず用意する servlet の基本的な構成 ( 続き ) <servlet> <servlet-name>myserv</servlet-name> <servlet-class>myserv</servlet-class> </servlet> サーブレットの名前 利用するクラスファイル名の定義 以上の記述をサーブレットの数だけ定義する

Java サーブレットの準備 ( コンテンツの設定 :web.xml) <servlet-mapping>~ </servlet-mapping> 内に利用する サーブレット名を記述する リクエストされた URL がどのサーブレットに処理されるかを示す servlet-mapping の基本的な構成 ( 続き ) <servlet-mapping> <servlet-name>myserv</servlet-name> <url-pattern>myserv</url-pattern> </servlet-mapping> サーブレットの名前 サーブレット URL の指定 以上の記述をサーブレットの数だけ定義する

Java サーブレットの dopost について 1 ( クライアント側への最初に応答する ) /* Sample10 ReadForm.java */ /* HTTP の GET メソッドで呼び出される関数 */ まずは doget で情報取得のサーブレットを行う public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { response.setcontenttype("text/html;charset=utf-8"); Postを用いた情報取得の指示 PrintWriter out = response.getwriter(); out.println("<html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"></head><body>"); out.println("<form action=\"readform\" method=\"post\">"); out.println(" 名前を入力してください :"); out.println("<input type=\"text\" name=\"username\">"); out.println("<input type=\"submit\" value=\" 送信 \">"); out.println("</form></body></html>"); usernameというパラメータに文字列入力の指示

Java サーブレットの dopost について 1 ( クライアントの要求をフォームで受け付ける処理 ) /* Sample10 ReadForm.java */ Post の処理は dopost メソッドのオーバーライド /*snip */ /* HTTP の POST メソッドで呼び出される関数 */ public void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { request.setcharacterencoding("utf-8"); String username = request.getparameter("username"); response.setcontenttype("text/html;charset=utf-8"); } PrintWriter out = response.getwriter(); out.println("<html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"> </head><body><h1> こんにちは," + username + " さん </h1> </body></html>"); }

Java サーブレットの dopost について 2 ( クライアントから送られた要求の処理 ) /* Sample10 ReadForm.java */ //snip /* HTTP の POST メソッドで呼び出される関数 */ public void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { /*<snip> */ request.setcharacterencoding("utf-8"); データ文字コードの指定 String username = request.getparameter("username"); doget のパラメータ username を String オブジェクト username に入れる response.setcontenttype("text/html;charset=utf-8"); コンテントタイプの設定

Java サーブレットの dopost について 2 ( クライアントに対する応答 HTML の処理 ) /* Sample10 ReadForm.java */ //snip /* HTTP の POST メソッドで呼び出される関数 */ public void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { /*snip */ PrintWriter out = response.getwriter(); out.println("<html><head><meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\"> </head><body><h1> こんにちは," + username + " さん </h1> </body></html>"); } } 先ほど得られたString usernameの文字列オブジェクト

Java サーブレットの dopost の HTML <html><head> <meta http-equiv="content-type" content="text/html; charset=utf-8"></head> <body> <form action= ReadForm method= post > <input type= text name= username > <input type= submit value= 送信 > </form> </body></html>