サンプルプログラムで - 名古屋大学 › ... ›...
TRANSCRIPT
![Page 1: サンプルプログラムで - 名古屋大学 › ... › sample-system-hello.pdfちょっとおまじない •Javaパースペクティブを選ぶ •sample_helloを右クリック-[Tomcatプロジェクト]](https://reader035.vdocuments.net/reader035/viewer/2022070817/5f11c2740ab3676c5c4f93c8/html5/thumbnails/1.jpg)
サンプルプログラムで
Servletの仕組みを勉強しましょう
河口研 助教
梶 克彦
IB電子情報館北棟4F 403
内線:3942
![Page 2: サンプルプログラムで - 名古屋大学 › ... › sample-system-hello.pdfちょっとおまじない •Javaパースペクティブを選ぶ •sample_helloを右クリック-[Tomcatプロジェクト]](https://reader035.vdocuments.net/reader035/viewer/2022070817/5f11c2740ab3676c5c4f93c8/html5/thumbnails/2.jpg)
一番簡単なWebシステムを
動かしてみましょう
• sample_hello
• 手順
– Eclipseを起動
– Subversionでサンプルをチェックアウト
–ちょっとおまじない
– EcilpseからTomcatを起動
–ブラウザで開く
![Page 3: サンプルプログラムで - 名古屋大学 › ... › sample-system-hello.pdfちょっとおまじない •Javaパースペクティブを選ぶ •sample_helloを右クリック-[Tomcatプロジェクト]](https://reader035.vdocuments.net/reader035/viewer/2022070817/5f11c2740ab3676c5c4f93c8/html5/thumbnails/3.jpg)
Eclipseを起動
• Window-Open Perspective-Java
![Page 4: サンプルプログラムで - 名古屋大学 › ... › sample-system-hello.pdfちょっとおまじない •Javaパースペクティブを選ぶ •sample_helloを右クリック-[Tomcatプロジェクト]](https://reader035.vdocuments.net/reader035/viewer/2022070817/5f11c2740ab3676c5c4f93c8/html5/thumbnails/4.jpg)
プロジェクトのチェックアウト
• 用意した簡単なWebシステム
– sample_hello: Webシステムの基本構造を学ぶプロジェクト
– sample_bbs: 一行掲示板システム
– sample_map: GoogleMapsを利用した経路検討システム
• それぞれ右クリック-[Check Out]
![Page 5: サンプルプログラムで - 名古屋大学 › ... › sample-system-hello.pdfちょっとおまじない •Javaパースペクティブを選ぶ •sample_helloを右クリック-[Tomcatプロジェクト]](https://reader035.vdocuments.net/reader035/viewer/2022070817/5f11c2740ab3676c5c4f93c8/html5/thumbnails/5.jpg)
ちょっとおまじない
• Javaパースペクティブを選ぶ
• sample_helloを右クリック-[Tomcatプロジェクト] -[コンテキスト定義を更新]
• sample_helloを右クリック-[Properties]- [Java Build Path]
• Librariesタブでtomcat-api.jarを選んで削除.
• [Add External JARs]ボタンを押してTOMCAT_HOME¥lib¥tomcat-api.jarを選択する.
![Page 6: サンプルプログラムで - 名古屋大学 › ... › sample-system-hello.pdfちょっとおまじない •Javaパースペクティブを選ぶ •sample_helloを右クリック-[Tomcatプロジェクト]](https://reader035.vdocuments.net/reader035/viewer/2022070817/5f11c2740ab3676c5c4f93c8/html5/thumbnails/6.jpg)
Eclipseの機能
• 一度使ったPerspectiveはここで変えられます
• Tomcatの起動,終了,再起動(猫ボタン)
![Page 7: サンプルプログラムで - 名古屋大学 › ... › sample-system-hello.pdfちょっとおまじない •Javaパースペクティブを選ぶ •sample_helloを右クリック-[Tomcatプロジェクト]](https://reader035.vdocuments.net/reader035/viewer/2022070817/5f11c2740ab3676c5c4f93c8/html5/thumbnails/7.jpg)
Tomcatを起動
• 猫ボタンの一番左側を押す
• 以下の文字列がコンソールに出ていればOK
情報: Server startup in *** ms
• 以下のURLにブラウザからアクセスしてみる
http://localhost:8080/sample_hello/index
![Page 8: サンプルプログラムで - 名古屋大学 › ... › sample-system-hello.pdfちょっとおまじない •Javaパースペクティブを選ぶ •sample_helloを右クリック-[Tomcatプロジェクト]](https://reader035.vdocuments.net/reader035/viewer/2022070817/5f11c2740ab3676c5c4f93c8/html5/thumbnails/8.jpg)
sample_hello
![Page 9: サンプルプログラムで - 名古屋大学 › ... › sample-system-hello.pdfちょっとおまじない •Javaパースペクティブを選ぶ •sample_helloを右クリック-[Tomcatプロジェクト]](https://reader035.vdocuments.net/reader035/viewer/2022070817/5f11c2740ab3676c5c4f93c8/html5/thumbnails/9.jpg)
ディレクトリ構成
• %PROJECT_DIR%¥WEB-INF¥src
– Javaプログラム
• %PROJECT_DIR%¥xxx.jsp
– JSPファイル
• %PROJECT_DIR%¥WEB-INF¥web.xml
– URLとクラスを関連付ける設定ファイル
![Page 10: サンプルプログラムで - 名古屋大学 › ... › sample-system-hello.pdfちょっとおまじない •Javaパースペクティブを選ぶ •sample_helloを右クリック-[Tomcatプロジェクト]](https://reader035.vdocuments.net/reader035/viewer/2022070817/5f11c2740ab3676c5c4f93c8/html5/thumbnails/10.jpg)
とりあえず以下の2つを
見てみましょう
• index.jsp
– HTML生成のためのプログラム(JSP)
• daijikken.controller.IndexController
– index.jspから送信される入力を処理する
プログラム(Servlet)
![Page 11: サンプルプログラムで - 名古屋大学 › ... › sample-system-hello.pdfちょっとおまじない •Javaパースペクティブを選ぶ •sample_helloを右クリック-[Tomcatプロジェクト]](https://reader035.vdocuments.net/reader035/viewer/2022070817/5f11c2740ab3676c5c4f93c8/html5/thumbnails/11.jpg)
index.jsp formでユーザが入力する
<form action="index" name="form1" method="get">
<input type="text" name="formtext"></input>
<input type="submit" value="SUBMIT"></input>
</form>
get:URLにパラメータが表示される
簡単なユーザ入力ならこれでOK
post:URLにパラメータが表示されない
ファイル送信等で用いられる
![Page 12: サンプルプログラムで - 名古屋大学 › ... › sample-system-hello.pdfちょっとおまじない •Javaパースペクティブを選ぶ •sample_helloを右クリック-[Tomcatプロジェクト]](https://reader035.vdocuments.net/reader035/viewer/2022070817/5f11c2740ab3676c5c4f93c8/html5/thumbnails/12.jpg)
IndexController form入力を受け取る
• HTTPServletの拡張として実装する
• 入力を受け取る方法
– doGet
– doPost
• method=“get“なのでdoGetで受け取れる
String formtext = request.getParameter("formtext");
![Page 13: サンプルプログラムで - 名古屋大学 › ... › sample-system-hello.pdfちょっとおまじない •Javaパースペクティブを選ぶ •sample_helloを右クリック-[Tomcatプロジェクト]](https://reader035.vdocuments.net/reader035/viewer/2022070817/5f11c2740ab3676c5c4f93c8/html5/thumbnails/13.jpg)
IndexController Viewにデータを渡す
//入力文字列をそのまま渡す
request.setAttribute("formtext", formtext);
//JSPページに移動する
getServletConfig().getServletContext()
.getRequestDispatcher(INDEX_PAGE)
.forward(request, response);
![Page 14: サンプルプログラムで - 名古屋大学 › ... › sample-system-hello.pdfちょっとおまじない •Javaパースペクティブを選ぶ •sample_helloを右クリック-[Tomcatプロジェクト]](https://reader035.vdocuments.net/reader035/viewer/2022070817/5f11c2740ab3676c5c4f93c8/html5/thumbnails/14.jpg)
index.jsp 送られてきたデータをもとに処理
<%
String formtext=(String)request.getAttribute("formtext");
%> あなたが入力した文字列は
<br/>
<br/> 「
<%
out.println(formtext);
%> 」
<br/>
<br/> です.
![Page 15: サンプルプログラムで - 名古屋大学 › ... › sample-system-hello.pdfちょっとおまじない •Javaパースペクティブを選ぶ •sample_helloを右クリック-[Tomcatプロジェクト]](https://reader035.vdocuments.net/reader035/viewer/2022070817/5f11c2740ab3676c5c4f93c8/html5/thumbnails/15.jpg)
JSPの使い方
• ほとんどただのHTML
• <% %>でくくった部分にJavaプログラムを記述できる
以下は同一の意味
<%
out.println(formtext);
%>
<%= formtext%>
![Page 16: サンプルプログラムで - 名古屋大学 › ... › sample-system-hello.pdfちょっとおまじない •Javaパースペクティブを選ぶ •sample_helloを右クリック-[Tomcatプロジェクト]](https://reader035.vdocuments.net/reader035/viewer/2022070817/5f11c2740ab3676c5c4f93c8/html5/thumbnails/16.jpg)
設定ファイル
• WEB-INF¥web.xml
• URLとクラスの関連付け
<servlet>
<servlet-name>index</servlet-name>
<servlet-class>daijikken.controller.IndexController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>index</servlet-name>
<url-pattern>/index</url-pattern>
</servlet-mapping>