Microsoft PowerPoint - oas4081_JServlet.ppt

Size: px
Start display at page:

Download "Microsoft PowerPoint - oas4081_JServlet.ppt"

Transcription

1 Oracle Application Server JServlet 概要 1

2 Agenda JServlet 概要 セッション管理 スレッドセーフティ 別コンポーネントの実行 DB 連携 日本語データの扱い JWeb から JServlet への移行 2

3 What s JServlet? (1) カートリッジサーバー M クライアント HTTP リスナーャクライアント ディスパッチャJServlet インスタンス JServlet は Java Servlet API 2.1a に準拠した Java アプリケーションで Java VM および Java クラスライブラリを含んでいます OAS 上ではカートリッジベースのアプリケーションとして実行されます クライアントからの処理要求は HTTP プロトコルを介してリスナーが受け取り ディスパッチャに引き渡されます ディスパッチャは 処理要求を適当な JServlet インスタンスに割り当てます そして OAS 上で処理された実行結果はディスパッチャが受け取り リスナーを介してクライアントへと戻されます Oracle Application Server 3

4 What s JServlet? (2) 以下は OAS の対応 Java 技術のバージョン : Servlet API 2.1a 準拠 javax.servlet.http.httpsession.setmaxinactiveinterval は仕様では int を返すことになっているが JServlet では void として定義されている (Java Web Server でも void) JServlet の javax.servlet.http.httpservlet に dohead メソッドが含まれていない (Java Web Server にも含まれていない ) 分散セッション / ステートサービスによるセッショントラッキング JServlet (JWeb) Toolkit の継続サポート Java サポート Servlet Chaining は未サポート JSP は未サポート ではサポート javax.servlet.http.httpsession.setmaxinactiveinterval セッション情報を保持する最大時間を秒単位で設定します ここで設定された時間を過ぎると キャッシュに保存されていた情報は削除され そのセッションにアクセスしようとすると例外が発生します 最大アイドル時間のデフォルトは10 分です Servlet Chaining ある Servlet から 別の Servlet を呼び出すための機能です 最初に呼び出された Servlet がブラウザからの要求を受け取り 最後に呼び出された Servlet がブラウザに結果を返します この機能には 前に呼び出された Servlet の出力を 後に呼び出された Servlet の入力として扱えることができるという特徴があります 4

5 Basic Servlet Structure import javax.servlet.*; import javax.servlet.http.*;... public class <Servlet Class Name> extends HttpServlet { Servlet のパッケージをインポートする javax.servlet.http.httpservlet 又は javax.servlet.genericservlet を継承する public void init( ) {... public void service( ) {... public void destroy( ) {... 初期化処理のためのコードを記述する Servlet に対する要求を処理するためのコードを記述する リソース解放処理のためのコードを記述する 5

6 Servlet s Lifecycle スレッド 1 init service service スレッド 2 service service service スレッド 3 service service service destroy Servlet のライフサイクル 時間 init() Servlet が起動されたときに一度だけ実行されます このメソッドには Servlet を初期化するためのコードを記述します 例えば データベースやネットワークとの接続を確立するためのコードなどです service() Servlet への要求を処理します このメソッドが HTTP Servlet である ( 引数に HttpServletRequest HttpServletResponse を持つ ) 場合には 通常オーバーライドはせず doget() や dopost() などのメソッドを呼び出します オーバーライドしてしまうと これらのメソッドが自動的に呼び出されなくなってしまうので注意してください destroy() Servlet が解放されるときに一度だけ実行されます このメソッドには Servlet によって利用されていたリソースを解放するためのコードを記述します 例えば データベースやネットワークとの接続を切断するためのコードなどです すべての待ち要求の処理が完了又はタイムアウトになるまで destroy() メソッドが実行されることはありません また destroy() メソッドの実行中に来た新規の要求はすべて拒否されます 6

7 Servlet Sample Code import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class HelloServlet extends HttpServlet { public void doget (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setcontenttype("text/html; charset=iso-2022-jp"); PrintWriter pw = response.getwriter(); pw.println("<html><body>"); pw.println("<h2>hello Servlet!</H2>"); pw.println("</body></html>"); このサンプルコードは HttpServlet を拡張した HelloServlet という名前のクラスを定義しています doget() メソッドには Hello Servlet! という文字列を含む HTML ファイルを返すための実装が記述されています 最もシンプルな Servlet です 7

8 Adding JServlet Cartridge Add カートリッジの追加 アプリケーション名 表示名 アプリケーションバージョン カートリッジ名 表示名 仮想パス 物理パス 登録完了! 基本的に 実行モジュールである Servlet のクラスはカートリッジに設定されている物理パスに置きます 8

9 Invoking JServlet JServlet を実行するには 以下の文字列を指定する hostname OAS が稼動しているサーバー名 port リスナーのポート番号 ( デフォルトは 80) virtual_path JServlet カートリッジを指定した仮想パス java_class 実行する Java クラス名 path_info request.getpathinfo() メソッドによってアクセスされる Servlet の追加パス情報 (CGI 変数の PATH_INFO と同等 ) query_string Java クラスで使用するパラメータ 例 : 9

10 Agenda JServlet 概要 セッション管理 スレッドセーフティ 別コンポーネントの実行 DB 連携 日本語データの扱い JWeb から JServlet への移行 10

11 Session Management Servlet は 基本的に Stateless プロトコルである HTTP を利用 セッション情報が記録 保持されない あるリクエストと別のリクエストを区別することができない リクエスト毎にセッションが生成される HttpSession パッケージを利用することで クライアントのセッション情報を保持することが可能 セッション管理は Cookie または URL Rewriting により実現 11

12 Session Management - Using Cookie (1) Cookie によるセッション管理 Cookie とは 各クライアント固有の情報をそれぞれのクライアントで保持させるための仕組みで クライアントを識別する最もシンプルな方法として知られています HttpSession session = request.getsession getsession(true); によって作成されたセッションオブジェクトには OAS によって一意な sessionid が識別子として割り当てられます これにより各クライアントの状態情報を維持することが可能です JServlet では この SessionID を利用して各セッションを識別します SessionID は 通常 Cookie を利用してクライアントに渡されます ( ) ブラウザによっては Cookie をサポートしていないものがあります その場合には URL Rewriting によるセッション管理を行います URL Rewriting に関してはこの後で説明しています 12

13 Session Management - Using Cookie (2) サンプルコード - Cookie によるセッション管理 import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class SessionInfoServlet extends HttpServlet { public void init(servletconfig config) throws ServletException { super.init(config); public void service(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession mysession = request.getsession(true); public HttpSession getsession(boolean create) 有効である現セッションを戻します 既存のセッションが存在していない場合 引数に true が指定されているときは 新規セッションが生成され false が指定されているときは null が戻されます 引数が指定されない場合は true が指定された場合と同じ動きをします 現セッションの HttpSession を取得生成する response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); out.println("<html>"); out.println("<head>"); out.println("<title>session Info Servlet</TITLE>"); out.println("</head>"); out.println("<body>"); 次頁に続く... 13

14 Session Management - Using Cookie (3) ( 続き ) サンプルコード - Cookie によるセッション管理 out.println("<h3>session Information</h3>"); out.println("new Session: " + mysession.isnew()); out.println("<br>session ID: " + mysession.getid()); out.println("<br>session Creation Time: " + mysession.getcreationtime()); out.println("<br>session Last Accessed Time: " + mysession.getlastaccessedtime()); out.println("<h3>request Information</h3>"); out.println("session ID from Request: " + request.getrequestedsessionid()); out.println("<br>session ID via Cookie: " + request.isrequestedsessionidfromcookie()); out.println("<br>session ID via rewritten URL: " + request.isrequestedsessionidfromurl()); out.println("<br>valid Session ID: " + request.isrequestedsessionidvalid()); out.println("</body></html>"); 新規セッションである場合には true を返すこのセッションに割り当てられた SessionID を取得するセッションが作成された時間 セッションが最後にアクセスされた時間新規セッションである場合には -1 を返す SessionID が Cookie によって取得された場合は true を返す セッションが既に無効となっていた場合 false を返す クライアント要求によって生成された SessionID を返す ( ) SessionID が Rewriting URL によって取得された場合は true を返す out.flush(); public String getservletinfo() { return "Servlet returns session information."; 現セッションの ID と同じになる場合もあるし そうでない場合もある 新規セッションが生成されていたとしても 既に無効になっている SessionID が戻されることもある 14

15 Session Management - Using URL Rewriting (1) URL Rewriting によるセッション管理 一般的に セッションの管理は Cookie を利用しますが ブラウザによっては Cookie に対応していないものがあります そういった場合には URL Rewriting による方法を利用してセッション情報を保持することが可能です URL Rewriting では URL の問合せ文字列に SessionID などのセッション情報が追加されます <HTML> <HEAD> <TITLE>Sessions with URLs</TITLE> </HEAD> <BODY> You have visited this page 2 times.<p> Click <A HREF="URLSessionServlet URLSessionServlet/$SessionID$D71B3C B5-E200-9F $SessionExp$3574b6b316d53 $SessionVpath$ SessionVpath$/jservlet jservlet/showemp showemp/$sessionor$ior $SessionOR$IOR: E C3A6F C652F4F41532F F F A312E A C E6A702E6F C652E636F6D00860C AB0829C E BE A A C $">here</A> to load page again. </BODY> </HTML> 15

16 Session Management - Using URL Rewriting (2) サンプルコード - URL Rewriting によるセッション管理 import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class URLSessionServlet extends HttpServlet { public void init(servletconfig config) throws ServletException { super.init(config); public void service(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession mysession = request.getsession(true); Integer count = (Integer)mySession.getValue("hitCounter"); 現セッションの HttpSession を取得生成する セッションからアクセス回数を取得する if (count == null) { count = new Integer(1); else { count = new Integer(count.intValue() + 1); mysession.putvalue("hitcounter", count); セッションにアクセス回数を保存する 次頁に続く... 16

17 Session Management - Using URL Rewriting (3) ( 続き ) サンプルコード - URL Rewriting によるセッション管理 response.setcontenttype("text/html"); PrintWriter out = response.getwriter(); out.println("<html>"); out.println("<head>"); out.println("<title>sessions with URLs</TITLE>"); out.println("</head>"); out.println("<body>"); out.println("you have visited this page " + count + " times.<p>"); out.println("click <A HREF= "" + response.encodeurl("urlsessionservlet") + " ">here</a> to load page again."); URL に SessionID が追加されエンコードされる out.println("</body>"); out.println("</html>"); out.close(); public String getservletinfo() { return "Manages session with rewritten URLs."; 17

18 18 Binding Session Objects (1) セッションの有効期間は 必ずしもインスタンスのライフサイクルとは一致しません そこで あるセッションの開始時や終了時に何か処理を行いたい場合には HttpSessionBindingListener インタフェースをインプリメントする必要があります これにより セッションの開始時や終了時の処理を実装することが可能です ただし これはローカルセッションのときのみ使用することが可能です 分散セッションで使用することはできません セッション オブジェクトのバインドセッション オブジェクトのバインドセッション オブジェクトのバインドセッション オブジェクトのバインド時間時間時間時間セッションセッションセッションセッション情報情報情報情報 M JServlet JServlet JServlet JServlet 実行要求実行要求実行要求実行要求セッション開始セッション開始セッション開始セッション開始 valuebound() セッション終了セッション終了セッション終了セッション終了 valueunbound() セッションセッションセッションセッション

19 Binding Session Objects (2) サンプルコード - セッション オブジェクトのバインド import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class SessionBindTest extends HttpServlet { static PrintWriter out; public void doget ( HttpServletRequest req, HttpServletResponse res ) throws ServletException, IOException { HttpSession session = req.getsession(true); res.setcontenttype("text/html"); out = res.getwriter(); out.println("<html>"); out.println("<head><title>session Binding Event Test</TITLE></HEAD>"); out.println("<body>"); session.putvalue("bindings.listener", new CustomBindingListener(getServletContext())); out.println("</body></html>"); out.flush(); 次頁に続く... HttpSessionBindingListener がインプリメントされたオブジェクトを追加する 19

20 Binding Session Objects (3) ( 続き ) サンプルコード - セッション オブジェクトのバインド import java.io.*; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; class CustomBindingListener implements HttpSessionBindingListener { public CustomBindingListener( ServletContext context ) { HttpSessionBindingListener をインプリメントする public void valuebound ( HttpSessionBindingEvent event ) { String state = "BOUND as " + event.getname(); state += " to " + event.getsession().getid(); savestate(state); セッション開始時に行いたい処理を記述する 次頁に続く... valuebound() メソッドは このインタフェースを実装している Servlet 内の HttpSession.putValue() メソッドが呼び出されたときに呼び出されます 20

21 Binding Session Objects (4) ( 続き ) サンプルコード - セッション オブジェクトのバインド public void valueunbound( HttpSessionBindingEvent event ) { String state = "UNBOUND as " + event.getname(); savestate(state); public void savestate(string state) { try { String log_file = "SessionBinding.log"; FileWriter filewriter = new FileWriter(log_file,true); filewriter.write(new Date().toString() + " n"); filewriter.write(state + " n"); filewriter.close(); return; catch ( IOException e ) { log("error saving session state."); セッション終了時に行いたい処理を記述する valueunbound() メソッドは 以下の場合に呼び出されます removevalue() を呼び出したとき セッションがタイムアウトになったとき セッションが無効になったとき 21

22 ディスパッチャディスパッチャDistributed Session and State Service (1) 分散セッションが設定されていない場合 分散セッションが有効であった場合 JServlet 実行要求デディスパッチャセッション情報 JServlet 実行要求デディスパッチセッション情報 チャセッション情報 JServlet インスタンス インスタンスが何らかの障害で使用不可能になってしまうと セッションは破棄され 処理を継続することはできません インスタンスが何らかの障害で使用不可能になってしまったとしても セッションを維持することが可能です クライアントが意識することなく 処理を継続することができます このサービスは OAS 4.0 Enterprise Edition でのみサポートされます 分散セッション / ステートサービスは 何らかの障害が発生した場合だけでなく 負荷分散を実現するためにも利用されています ただし OAS 側でこれらの動作が全て管理されているため 実際は開発者が内部でどのように動作しているかを意識する必要はありません 22

23 Distributed Session and State Service (2) 分散セッションを有効にするには...? セッションオブジェクトに java.io.serializable をインプリメントする セキュアセッションと共に利用しない HttpSessionBindingListner インタフェースをインプリメントしない 以下のパッケージを必ず利用する oracle.oas.servlet.http.httpsession oracle.oas.servlet.servletrequest java.io.serializable セッション情報をシリアライズして保持するために必ず必要になります セキュアセッション基本的に セッションの情報はサーバーのディスクに保存されますが セキュアセッションはディスクに何も情報を書き込まないため この分散セッションで使用することができません 23

24 Distributed Session and State Service (3) Oracle による拡張定義 public class oracle.oas.servlet.http.httpsession implements javax.servlet.http.httpsession { public class oracle.oas.servlet.servletrequest implements javax.servlet. http.httpservletrequest { public javax.servlet.http.httpsession getsession(boolean create, boolean distributed, boolean secure) {... boolean create - 真のとき セッションを新たに開始する すでに開始している場合は そのセッションを返す ( 標準にあるパラメータ ) boolean distributed - 真のとき 分散ステート / セッション管理を有効にする boolean secure - セッション情報をディスクに保管しない (distributed=false とともに指定する ) 24

25 Agenda JServlet 概要 セッション管理 スレッドセーフティ 別コンポーネントの実行 DB 連携 日本語データの扱い JWeb から JServlet への移行 25

26 What s Thread Safety? スレッドセーフとは? 同一プロセス空間に存在する複数のスレッドが同時に実行されていることに関わらず 各処理が常に期待どおりに動作する状態 あるスレッドが変数を変更するような処理を行っている間は 別のスレッドがその変数に対して操作を行わないことを保証 26

27 Writing Thread Safe Servlets スレッドセーフな Servlet を作成するために 変数を service(), doget(), dopost() メソッド内に定義 ローカル変数が各スレッド間で共有されることはないので 自動的にスレッドセーフになる 変数の synchronized 宣言による排他制御 変数 ( インスタンス変数 クラス変数 ) がロックされるので それらが複数のスレッドによって同時に読み込まれたり変更されたりすることがない SingleThreadModel インタフェースをインプリメント インスタンスとスレッドは一対一になる 最も簡単で安全であるため この方法が推奨されています SingleThreadModel OAS では このインタフェースをインプリメントしておくと クラス変数やインスタンス変数などの扱いに注意を払わなくてもスレッドセーフが保証されます この方法を利用すると 最もシンプルで安全なアプリケーション運用を実現されることができます 但し 例外としてクラス変数の排他制御が必要になる場合があります 詳細は Ensuring Thread Safety を参照してください 27

28 SingleThreadModel Non-SingleThreadModel SingleThreadModel インタフェースをインプリメントしていない場合 ( 通常はこちらのタイプになる ) SingleThreadModel SingleThreadModel インタフェースをインプリメントしている場合 Servlet インスタンス スレッド インスタンス : スレッド = 1:N インスタンス : スレッド = 1:1 カートリッジサーバープロセス カートリッジサーバープロセス 28

29 Ensuring Thread Safety (1) Non-SingleThreadModel 1 インスタンスに対して 複数のスレッドが割り当てられますインスタンス : スレッド = 1:N Servlet インスタンス クラス変数 インスタンス変数 複数のスレッドによって共有される可能性があるため synchronized 宣言による排他制御が必要 スレッド カートリッジ メソッド内で宣言された変数 各スレッド毎に確保され 複数のスレッドで共有される可能性がないため 排他制御は不要 カートリッジサーバープロセス 29

30 Ensuring Thread Safety (2) Servlet インスタンス SingleThreadModel 1 インスタンスに対して 1 スレッドのみ割り当てられますインスタンス : スレッド = 1:1 CLASSPATH からロードされたクラスのクラス変数 カートリッジサーバープロセス内で共有される複数のインスタンスから同時にアクセスされる可能性があるため 排他制御が必要 スレッド 物理パスからロードされたクラスのクラス変数 カートリッジ 各インスタンス毎に確保され 一つのスレッドで実行される排他制御は不要 メソッド内で宣言された変数 インスタンス変数 カートリッジ カートリッジサーバープロセス 各インスタンス毎に確保され 1 つのスレッドで実行される排他制御は不要 : クラス変数 一般的に Servlet ではクラス変数を使用しません インスタンス間で変数を共有させたい場合には Non-SingleThreadModel でインスタンス変数を使用するようにしてください どちらの場合も排他制御が必要になるため インスタンス間で共有させる必要性はありません 30

31 Thread Safety - Sample Code サンプルコード - SingleThreadModel インタフェース import javax.servlet.*; import javax.servlet.http.*; import java.io.*; public class SingleThreadSample extends HttpServlet implements SingleThreadModel { String username; public void service(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { res.setcontenttype("text/plain"); PrintWriter out = res.getwriter(); username = req.getparameter("name"); printhello(out); out.close(); private void printhello(printwriter out) { out.println("hello, " + username); インスタンス変数 このサンプルコード内では インスタンス変数が service() メソッドの外側で定義されているため 複数の処理要求が同時に発生した場合にスレッドセーフが保証されません しかしながら このような場合でも SingleThreadModel をインプリメントすることにより Servlet をスレッドセーフで実行することが可能になります この方法は Servlet をスレッドセーフで実行させるのに最もシンプルで効果的であるといえるでしょう JWeb では スレッドセーフに関して開発者が気にする必要はありませんでしたが JServlet では必ず注意する必要があります SingleThreadModel がインプリメントされている Servlet で HTTPSession を使用する場合は Servlet クラスの物理パスを CLASSPATH に指定しなければなりません この指定がない場合に あるインスタンスによって作成されたセッションオブジェクトが別のインスタンスによってアクセスされたときに ClassCastException が発生します 31

32 Agenda JServlet 概要 セッション管理 スレッドセーフティ 別コンポーネントの実行 DB 連携 日本語データの扱い JWeb から JServlet への移行 32

33 Invoking EJB (1) アプリケーションロジックの集中により クライアント側の処理を軽減 Oracle Application Server アプリケーションロジック データベースとのデータのやり 取り (データの取得や保存) クライアント HTTP JServlet IIOP データベース EJB JDBC HTML ファイルの生成 クライアントとのデータの やり取り 33

34 Invoking EJB (2) サンプルコード - EJB を呼び出す JServlet import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import javax.naming.*; import javax.ejb.*; import javax.rmi.portableremoteobject; import myhello.*; EJB アプリケーションをインポートする Oracle が提供するクラスをインポートする必要はない public class MyHelloServlet extends HttpServlet { public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { res.setcontenttype("text/html; charset=iso-2022-jp"); PrintWriter pw = res.getwriter(); MyHelloServerHome home = null; try { Context ctx = new InitialContext(); JNDI の InitialContext を入手する home = (MyHelloServerHome) PortableRemoteObject.narrow( ctx.lookup("oas:///myhello/myhelloserver"), MyHelloServerHome.class); 次頁に続く... EJB のホームインタフェースを入手する JNDI(Java Naming and Directory Interface) NDS, NIS, DNS, LDAP などのネーミング ディレクトリサービスへのアクセスを可能にします EJB(Enterprise JavaBeans) ホームインタフェース リモートインタフェース 配置情報ファイル (Deployment Descriptor File) Beans で構成されています クライアントの作成は ホームインタフェースとリモートインタフェースを利用して行い Beans の実装がどのようになっているかを意識する必要はありません 34

35 Invoking EJB (3) ( 続き ) サンプルコード - EJB を呼び出す JServlet MyHelloServerRemote s = home.create(); String result = s.sayhello(); pw.println("<html><body>"); pw.print("<h2>"); pw.print(result); pw.println("</h2>"); pw.println("</body></html>"); EJB オブジェクトを入手する リモートオブジェクトのメソッドを呼び出す pw.flush(); s.remove(); EJB オブジェクトを解放する catch (CreateException ce) { log("error creating server"); catch (NamingException ne) { log("error finding server application"); catch (java.rmi.remoteexception se) { log("communication error."); catch (RemoveException re) { log("removeexception error."); このサンプルでは doget() メソッドの中で EJB ホームインタフェース EJB オブジェクトの入手が行われていますが init() メソッドの中で行うのが一般的です 35

36 Invoking EJB (4) 実行環境変数 (JServlet アプリケーションの環境変数 ) の CLASSPATH に以下の追加が必要 %ORACLE_HOME%/ows/apps/ejb/<EJB_appName>/_client.jar <EJB_appName>: EJB アプリケーション名 追加 36

37 Agenda JServlet 概要 セッション管理 スレッドセーフティ 別コンポーネントの実行 DB 連携 日本語データの扱い JWeb から JServlet への移行 37

38 Database Access (1) サンプルコード - JDBC ドライバによる DB 接続 import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.sql.*; java.sql パッケージ (JDBC API) をインポートする public class ConnTest extends HttpServlet implements SingleThreadModel { private Connection conn = null; static PrintWriter out; public void init(servletconfig config) throws ServletException { super.init(config); try { Class.forName ("oracle.jdbc.driver.oracledriver"); init() メソッドの中で接続を確立 Oracle JDBC ドライバをロードする conn = DriverManager.getConnection("jdbc:oracle:oci8:@", "scott", "tiger"); catch (SQLException e) { log("could not establish connection."); catch (ClassNotFoundException e) { log("could not load database driver."); 次頁に続く... のあとに接続文字列を記述すること 38

39 Database Access (2) ( 続き ) サンプルコード - JDBC ドライバによる DB 接続 public void doget(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { res.setcontenttype("text/html"); out = res.getwriter(); out.println("<html>"); out.println("<head><title>jdbc Test</TITLE></HEAD>"); out.println("<body>"); out.println("current User is "); try { Statement stmt = conn.createstatement(); ステートメントを作成する ResultSet rset = stmt.executequery("select username from user_users"); while(rset.next()) { out.print("<font SIZE=+1><I>"); out.print(rset.getstring("username");); out.println("</i></font>"); catch (SQLException e) { log("a database error occurred."); 問合せ結果を表示する 次頁に続く... SQL 文を実行するここでは 接続ユーザーを問合せるための SQL 文が指定されている 39

40 Database Access (3) ( 続き ) サンプルコード - JDBC ドライバによる DB 接続 out.println("</body></html>"); out.flush(); out.close(); destroy() メソッドの中で接続を切断 public void destroy() { try { if (conn!= null) conn.close(); データベースとの接続を切断する catch (SQLException e) { log("error closing database connection."); 上記サンプルのように Servlet では init() メソッドで接続を確立し destroy() メソッドで切断する方法が一般的です また これはパフォーマンスに関する問題を回避することができる最も適した方法であると言えるでしょう ただし JServlet でこの方法を利用する場合には 以下のことに注意する必要があります SingleThreadModel をインプリメントすること OCI ドライバーを使用することもし どちらか一方でも条件が満たせない場合は 同一メソッド内で接続の確立と切断を行わなければなりません 40

41 Agenda JServlet 概要 セッション管理 スレッドセーフティ 別コンポーネントの実行 DB 連携 日本語データの扱い JWeb から JServlet への移行 41

42 NLS Issue import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloJapan extends HttpServlet { public void dopost(httpservletrequest req, HttpServletResponse res) throws ServletException, IOException { String nameorg = req.getparameter("name"); String name = new String(nameOrg.getBytes("8859_1"), "JISAutoDetect"); Servlet は 国際化対応がされていないため Servlet 内で Unicode を他の文字コードに明示的に変換する必要があります HTML フォームで入力された文字列を 8 ビット文字とみなして Byte 配列を作成し それを文字コード変換を指定して文字列を作成する res.setcontenttype("text/html; charset=iso-2022-jp"); PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(res.getOutputStream(), "JIS"))); out.println("<html><body>"); out.println(" 名前は " + name + " です "); out.println("</body></html>"); out.flush(); out.close(); 出力ファイルの文字セットが JIS であることを指定する 文字コード変換をするための OutputStreamWriter を作成し これに対して結果を出力する これは 一般的な Servlet における日本語データの扱いにおける処理方法です OAS では この方法以外にも JServlet Toolkit に含まれるパッケージを利用して処理すること も可能です 42

43 Agenda JServlet 概要 セッション管理 スレッドセーフティ 別コンポーネントの実行 DB 連携 日本語データの扱い JWeb から JServlet への移行 43

44 Extend HttpServlet Class 移行作業 Servlet にするために HttpServlet クラスを継承するようにコードを追加する public class SelectEmp { import javax.servlet.*; import javax.servlet.http.* ; public class SelectEmp extends HttpServlet {

45 EntryPoint (1) クライアントからのリクエストに対して JWeb では main() が実行されていたが Servlet では service() が実行される service() は クライアントの要求した HTTP のメソッドに応じて doget() dopost() などにディスパッチする JWeb GET /jweb/hello HTTP/1.0 Hello.class main() GET /jservlet/hello HTTP/1.0 JServlet HelloServlet.class doget() 図は GET メソッドのリクエストを発行した場合 図では省略しているが service() メソッドが呼ばれ doget() にディスパッチされ実行される 45

46 EntryPoint (2) 移行作業 doget() dopost() に main() で行っていた処理内容を記述する public static void main (String argv[]) { public void doget (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {... public void dopost (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doget(request, response); main() と doget() dopost() では パラメータが違うので注意 46

47 Data Access (1) JWeb では クライアントからのリクエストに含まれるデータ の取得は JWebToolKit を利用していた Servlet では クライアントからのリクエストに含まれるデータの取得は doget() dopost() のパラメータに含まれる javax.servlet.http.httpservletrequest クラスを利用する HttpServletRequest クラスでは 日本語を Unicode に変換する方法が提供されていないので 開発者が変換する必要がある 日本語を Unicode に変換する方法は 開発者の責任となる Servlet を使用する場合に良く知られている一般的な方法 (Serlvet の書籍などに掲載されている ) があるのでサンプルコードではそれを利用した 47

48 Data Access (2) 移行作業 データ取得部分を書き換える 日本語をUnicodeに変換する public static void main(string[] argv) {... HTTP = request; request = HTTP.getRequest(); request.seturlcharacterset("shift_jis"); String ename = request. geturlparameter("username"));... public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException {... String org = request. getparameter("username"); String ename = new String( org.getbytes("8859_1"), "Shift_JIS"));... 日本語を Unicode に変換する方法は 開発者の責任となる Servlet を使用する場合に良く知られている一般的な方法 (Serlvet の書籍などに掲載されている ) があるのでサンプルコードではそれを利用した JWeb のコード内の HTTP クラスは oracle.owas.wrb.services.http.http である 48

49 Changing Class Variables JWeb と Jservlet のアーキテクチャの違いを吸収する 移行作業 SingleTreadModel インタフェースを実装する クラス変数をインスタンス変数に変更する public class SelectEmp { import javax.servlet.*; import javax.servlet.http.* ; public class SelectEmp extends HttpServlet implements SingleThreadModel { ~ クラス変数をインスタンス変数に変更する理由 ~ JWeb では クラスローダーがカートリッジインスタンスごとであったが JServlet では JServletRunner ( カートリッジ ) ごとにであるため クラス変数が Servlet では共有される Servlet ではインスタンスは複数のスレッドで実行される可能性があるので インスタンス変数も共有される可能性がある ( 少なくとも OAS では MultiThread で動作し 共有される ) SingleThreadModelインタフェースを implement するとインスタンスは1つのスレッドで実行されるので インスタンス変数は MultiThread セーフについて意識しないで使用できる 以上を踏まえると JWeb から Servlet にするには クラス変数をインスタンス変数にして かつ SingleThredModel インタフェースを Implement する必要がある 49

50 References Oracle Application Server 4.0 Developer s Guide: JServlet Applications Release (Part# A ) INSIDE Servlets by Dustin R. Callaway Addison-Wesley (ISDN ) Java プログラミングサーブレット &JavaWebServer 日本サン マイクロシステムズ株式会社編サイエンス社 50

51 51

9iAS_DEV.PDF

9iAS_DEV.PDF Oracle9i Application Server for Windows NT 1.0.2.0.0 2001.2.1 1 1 PL/SQL...3 1.1...3 1.2 PL/SQL Web Toolkit...5 1.3 Database Access Descriptor...6 1.4 PL/SQL...8 1.5 PL/SQL...10 1.6 PL/SQL...12 2 SERVLET...13

More information

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

メディプロ1 Javaサーブレット補足資料.ppt メディアプロジェクト演習 1 Java サーブレット補足資料 CGI の基本 CGI と Java サーブレットの違い Java サーブレットの基本 インタラクティブな Web サイトとは Interactive q 対話 または 双方向 q クライアントとシステムが画面を通して対話を行う形式で操作を行っていく仕組み 利用用途 Web サイト, シミュレーションシステム, ゲームなど WWW = インタラクティブなメディア

More information

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

Microsoft PowerPoint - oas4082_NewFeature.ppt[fiLJݔæ‡è’êŠp] Oracle Application Server 4.0.8.2 新機能概要 日本オラクル株式会社 1 1 OAS 4.0.8.2 Enhancements セキュリティ関連の機能拡張 Weak Crypto Exclusion/Cookie の最大サイズ拡張 / Entrust Certificate Authority サポート JServlet の機能拡張 Chaining Servlets/Aliasing

More information

B2-Servlet-0112.PDF

B2-Servlet-0112.PDF B-2 Servlet/JSP Agenda J2EE Oracle8i J2EE Java Servlet JavaServer Pages PDA ( J2EE Java2 Enterprise Edition API API J2SE JSP Servlets RMI/IIOP EJB JNDI JTA JDBC JMS JavaMail JAF Java2 Standard Edition

More information

プレポスト【問題】

プレポスト【問題】 コース名 : サーブレット /JSP/JDBC プログラミング ~Eclipse による開発 ~ 受講日 氏名 1 JDBC の説明として 間違っているものを 1 つ選びなさい 1. JDBC を使用してデータベースへアクセスするときには JDBC API が必要である 2. JDBC API は java.lang パッケージとして提供されている 3. JDBC には JDBC API JDBC

More information

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 1 Servlet 1.1 Web Web WWW HTML CGI Common Gateway InterfaceWeb HTML Web Web CGI CGI CGI Perl C Java Applet JavaScript Web CGI HTML 1.2 Servlet Java Servlet Servlet CGI Web CGI 1 Java / Java Java CGI Servlet

More information

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 1 Servlet 1.1 Web Web WWW HTML CGI Common Gateway InterfaceWeb HTML Web Web CGI CGI CGI Perl C Java Applet JavaScript Web CGI HTML 1.2 Servlet Java Servlet Servlet CGI Web CGI 1 Java / Java Java CGI Servlet

More information

PowerPoint Presentation

PowerPoint Presentation 上級プログラミング 2( 第 7 回 ) 工学部情報工学科 木村昌臣 今日のテーマ Web アプリケーションとは Web アプリケーションとはなにか Web アプリケーションの仕組み 三層アプリケーション サーブレット JSP JavaBeans MVC モデル Web アプリケーションの環境構築 Web サーバー (Apache) Web アプリケーションサーバー (Tomcat) Web アプリケーションとは

More information

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 1 p.2 1 Servlet Servlet Web Web Web Apache Web Servlet JSP Web Apache Tomcat Jetty Apache Tomcat, Jetty Java JDK, Eclipse Web 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 Java Applet JavaScript Web CGI HTML 1.2 Servlet Java Servlet Servlet CGI Web CGI 1 Java Java

More information

Microsoft PowerPoint - Lecture_3

Microsoft PowerPoint - Lecture_3 プログラミング III 第 3 回 : サーブレットリクエスト & サーブレットレスポンス処理入門 Ivan Tanev 講義の構造 1. サーブレットの構造 2. サーブレットリクエスト サーブレットレスポンスとは 3. 演習 2 Lecture2_Form.htm 第 2 回のまとめ Web サーバ Web 1 フォーム static 2 Internet サーブレ4 HTML 5 ットテキスト

More information

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

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 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 Servlet Servlet CGI Web CGI Java Java JVM Java CGI

More information

Oracle9iAS Containers for J2EEチュートリアル

Oracle9iAS Containers for J2EEチュートリアル Oracle9iAS Containers for J2EE Servlet/JSP ...3...3 OC4J...4 OC4J...4...5 OC4J...6 OC4J...6 OC4J...7 Servlet/JSP...8 Servlet...8 Servlet...8 JSP...8 Servlet/JSP...10 Web...10 Servlet/JSP...11 Servlet/JSP...12

More information

PowerPoint Presentation

PowerPoint Presentation プログラミング Java III 第 4 回 : サーブレットの HTTP Request の処理 Ivan Tanev 講義の構造 1. サーブレットの HTTP Request の処理 2. 演習 2 第 3 回のまとめ Internet Explorer のアドレス バー : http://isd-si.doshisha.ac.jp/teaching/programming_3/xxxxxxxx/lecture3_form1.html

More information

Microsoft PowerPoint - Lecture_2

Microsoft PowerPoint - Lecture_2 プログラミング Java III 第 2 回 :WebForm および サーブレット入門 Ivan Tanev 講義の構造 1. ダイナミックWebコンテンツとサーブレット 2.Webフォーム 3. 演習 2 1. ダイナミック Web コンテンツとサーブレット 3 1. ダイナミック Web コンテンツとサーブレット Internet Response: HTML テキスト ユーザー 4 1. ダイナミック

More information

Gartner Day

Gartner Day J2EE 1 J2EE C AP 2 J2EE AP DD java *.class java *.class java *.class *.class DD EAR, WAR, JAR orionapplicationclient.xmweb.xmapplication.jar.xml orion- orion-ejb- ml Oracle Application Server 10g *.jsp

More information

スライド 1

スライド 1 1 2466 565 40 / All Right Reserved,Copyrights 3 B to B B to C EC ERP EIAJ / / EDI All Right Reserved,Copyrights 4 All Right Reserved,Copyrights 5 1 All Right Reserved,Copyrights 6 EIAJ QR All Right Reserved,Copyrights

More information

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

Web JavaScript Java Applet Flash ActionScript CGI (C, perl, ruby ) PHP Servlet, JSP (JavaServer Pages) ASP 7-2 Servlet 7-1 Web JavaScript Java Applet Flash ActionScript CGI (C, perl, ruby ) PHP Servlet, JSP (JavaServer Pages) ASP 7-2 Servlet Java CGI Tomcat Apache+Tomcat JSP Web HTML Java Java Servlet ( ) 7-3 Servlet

More information

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

Servlet/JSP ( 作成中 ) 2010 年 x 月 x 日作成 Firebird 日本ユーザー会 Naoyuki Sano     1 Servlet/JSP ( 作成中 ) 2010 年 x 月 x 日作成 Firebird 日本ユーザー会 Naoyuki Sano http://rururu.sakura.ne.jp/ http://rururublog.sblo.jp/ 1 Servlet/JSP を教わった人 2004/9/25-2005/5/21 秦崇 [ はたたかし ] さん (http:// 秦崇.jp/) 2009

More information

... 2 1 Servlet... 3 1.1... 3 1.2... 4 2 JSP... 6 2.1... 6 JSP... 6... 8 2.2... 9 - Servlet/JSP における 日 本 語 の 処 理 - 1

... 2 1 Servlet... 3 1.1... 3 1.2... 4 2 JSP... 6 2.1... 6 JSP... 6... 8 2.2... 9 - Servlet/JSP における 日 本 語 の 処 理 - 1 Servlet/JSP Creation Date: Oct 18, 2000 Last Update: Mar 29, 2001 Version: 1.1 ... 2 1 Servlet... 3 1.1... 3 1.2... 4 2 JSP... 6 2.1... 6 JSP... 6... 8 2.2... 9 - Servlet/JSP における 日 本 語 の 処 理 - 1 Servlet

More information

スライド 1

スライド 1 Web プログラミング 2 7. JSP と Servlet による Web プログラミング概要 ( 復習 )Web アプリケーションの実現方式 : 授業で扱う範囲 SSI (Server Side Include) C-Shellなど JSP (Java Server Pages) PHP など Web ブラウザ Internet Done Web サーバ Done JavaApplet JavaScript

More information

Q&A集

Q&A集 & ver.2 EWEB-3C-N080 PreSerV for Web MapDataManager & i 1... 1 1.1... 1 1.2... 2 1.3... 6 1.4 MDM. 7 1.5 ( )... 9 1.6 ( )...12 1.7...14 1.8...15 1.9...16 1.10...17 1.11...18 1.12 19 1.13...20 1.14...21

More information

Javaセキュアコーディングセミナー東京 第3回 入出力(File, Stream)と例外時の動作 演習解説

Javaセキュアコーディングセミナー東京 第3回 入出力(File, Stream)と例外時の動作 演習解説 Java セキュアコーディングセミナー東京第 3 回入出力と例外時の動作 演習解説 2012 年 11 月 11 日 ( 日 ) JPCERT コーディネーションセンター脆弱性解析チーム戸田洋三 1 Hands-on Exercises コンパイルエラーに対処しよう ファイルからのデータ入力を実装しよう 2 Hands-on Exercise(1) サンプルコードの コンパイルエラーに対処しよう 3

More information

SpringSecurity

SpringSecurity Spring Security 1/40 OUTLINE Spring Security Spring Securityを使った認証の仕組み Spring Securityを使った独自認証 認証エラーメッセージの変更 2/40 Spring Security 3/40 Spring Security とは アプリケーションのセキュリティを高めるためのフレームワーク 認証 認可機能 その他 多数のセキュリティ関連の機能を持つ

More information

Microsoft PowerPoint ppt

Microsoft PowerPoint ppt 独習 Java ( 第 3 版 ) 6.7 変数の修飾子 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 Object クラスと Class クラス 6.7 変数の修飾子 (1/3) 変数宣言の直前に指定できる修飾子 全部で 7 種類ある キーワード final private protected public static transient volatile 意味定数として使える変数同じクラスのコードからしかアクセスできない変数サブクラスまたは同じパッケージ内のコードからしかアクセスできない変数他のクラスからアクセスできる変数インスタンス変数ではない変数クラスの永続的な状態の一部ではない変数不意に値が変更されることがある変数

More information

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

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 II 2 p.1 2 GET POST Servlet Servlet Servlet CGI/Servlet GET POST 2 GET URL? FORM GET : http://maps.google.co.jp/maps?hl=ja&ll=34.292821,134.063587&z=15 POST HTML HTML : Aisatsu.html HTML 1

More information

第13回講義

第13回講義 オブジェクト指向概論 第 13 講 実装とサーバサイド Java 立命館大学 情報理工学部 黄宏軒 1 13.1 Java による実装 n フォワードエンジニアリング UML による表現をプログラミング言語による記述に変換 n リバースエンジニアリング UML User -name:string +getname():string プログラミング言語の情報を UML モデルに変換 UML User

More information

(Microsoft PowerPoint - \223\306\217KJAVA\221\346\202R\224\ ppt)

(Microsoft PowerPoint - \223\306\217KJAVA\221\346\202R\224\ ppt) 独習 JAVA 第 3 版 8.4 例外とエラークラス 8.5 throws ステートメント 8.6 独自の例外 Throwable コンストラクタ catch ブロックには Throwable 型のパラメータが必ず 1 つなければならない Throwable コンストラクタ Throwable() Throwable( String message ) message には問題を通知する文字列のメッセージ

More information

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

--- サーバ側処理 Java servlet の例 // 通常の Java servlet での POST で受信と同じ protected void dopost(httpservletrequest request, HttpServletResponse response) throws S 2 サーバとの連携と BlazeDS Flex アプリケーションではクライアント ( ブラウザ ) で処理できる機能が多いですが データベースへのアクセスや クライアントでは負担が大きい処理などはサーバ側で行います また パソコンのローカルディスクへのアクセスのように セキュリティの都合でクライアントで直接処理できない場合は一旦サーバにアップロードするなどして処理します 2-1 ファイルアップロードファイルをアップロードする場合は

More information

FY01H2_SOHO_iAS

FY01H2_SOHO_iAS Oracle9i Application Server Internet Developer Suite Agenda 9iAS PL/SQL Java2 Cache Portal Internet Developer Suite Designer Developer JDeveloper DEMO Oracle 9iAS Web Cache Oracle HTTP Server mod_jserv

More information

プログラミング基礎I(再)

プログラミング基礎I(再) 山元進 クラスとは クラスの宣言 オブジェクトの作成 クラスのメンバー フィールド 変数 配列 メソッド メソッドとは メソッドの引数 戻り値 変数の型を拡張したもの 例えば車のデータベース 車のメーカー 車種 登録番号などのデータ データベースの操作 ( 新規データのボタンなど ) プログラムで使う部品の仕様書 そのクラスのオブジェクトを作ると初めて部品になる 継承 などの仕組みにより カスタマイズが安全

More information

Javaと マルチスレッド

Javaと マルチスレッド Javaとマルチスレッド 2016/7/30 湯川敦 目次 1. きっかけ 2. マルチスレッド対応が必要になる場面とは? 3. Javaのプロセスとスレッドについて 4. Javaのメモリ構成について 5. スレッドセーフについて 6. スレッド間競合における問題の回避策あれこれ 7. まとめ きっかけ 現場の新人 SE より Web アプリケーションサーバに関して 以下の質問を受けた ConcurrentModificationException

More information

http://localhost:8080 /idoapp/helloworld server-ido request HTML ttp://localhost:8080 /idoapp/helloworld ):8080 /idoapp/helloworld http://(ip import java.io.*; import javax.servlet.*; import javax.servlet.http.*;

More information

Part1 159 a a

Part1 159 a a Tomcat 158 Part1 159 a a Tomcat hello World!

More information

WebOTXマニュアル

WebOTXマニュアル WebOTX アプリケーション開発ガイド WebOTX アプリケーション開発ガイドバージョン : 7.1 版数 : 第 2 版リリース : 2010 年 1 月 Copyright (C) 1998-2010 NEC Corporation. All rights reserved. 4-1-1 目次 4. J2EE WebOTX...3 4.1. Webアプリケーション...3 4.1.1. Webアプリケーションを作成する...3

More information

1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String

1.SqlCtl クラスリファレンス SqlCtl クラスのリファレンスを以下に示します メソッドの実行中にエラーが発生した場合は標準エラー出力にメッセージを出力します (1)Connect() メソッド データベースへ connect 要求を行います boolean Connect(String 目次 1.SqlCtl クラスリファレンス 2 (1)Connect() メソッド 2 (2)DisConnect() メソッド 3 (3)Commit() メソッド 3 (4)Rollback() メソッド 4 2.SqlStm クラスリファレンス 5 (1)Prepare() メソッド 5 (2)Execute() メソッド 6 (3)Release() メソッド 6 (4)Immediate()

More information

V8.1新規機能紹介記事

V8.1新規機能紹介記事 WebOTX V8.1 新規機能 EJB 3.0 WebOTX V8.1より Java EE 5(Java Platform, Enterprise Edition 5) に対応しました これによりいろいろな機能追加が行われていますが 特に大きな変更であるEJB 3.0 対応についてご紹介いたします なお WebOTX V7で対応したEJB 2.1についてもWebOTX V8.1で引き続き利用することが可能です

More information

Android Layout SDK プログラミング マニュアル

Android Layout SDK プログラミング マニュアル プログラミングマニュアル Version 1.3.0 用 更新履歴 年月日 バージョン 履歴 2014.09.08 1.2.0.0 新規 (Layout Utilities ユーザーズ ガイド ) 2016.08.16 1.3.0.0 モバイル端末用レイアウトで直線部品と矩形部品に対応 モバイル端末用レイアウトファイルを CLFX から XML へ変更 Layout Print Engine から

More information

ただし 無作為にスレッドを複数実行すると 結果不正やデッドロックが起きる可能性がある 複数のスレッド ( マルチスレッド ) を安全に実行する ( スレッドセーフにする ) ためには 同期処理を用いるこ とが必要になる 同期処理は 予約語 synchronized で行うことができる ここでは sy

ただし 無作為にスレッドを複数実行すると 結果不正やデッドロックが起きる可能性がある 複数のスレッド ( マルチスレッド ) を安全に実行する ( スレッドセーフにする ) ためには 同期処理を用いるこ とが必要になる 同期処理は 予約語 synchronized で行うことができる ここでは sy オブジェクト指向プログラミング演習 2010/10/27 演習課題 スレッド ( その 2) 同期処理 結果不正 デッドロック 前回のスレッドの演習では 複数のスレッドを実行し 一つのプログラムの中の違う処理を同時に実行し た ただし 無作為にスレッドを複数実行すると 結果不正やデッドロックが起きる可能性がある 複数のスレッド ( マルチスレッド ) を安全に実行する ( スレッドセーフにする )

More information

- i - org.t_engine.tenet.core.coreerrormessageexception org.t_engine.tenet.core Class CoreErrorMessageException java.lang.object +-java.lang.throwable +-java.lang.exception +-org.t_engine.tenet.core.coreexception

More information

intra-mart WebPlatform/AppFramework

intra-mart WebPlatform/AppFramework intra-mart WebPlatform/AppFramework Ver.7.2 Struts 連携プログラミングガイド 2010/04/01 初版 変更年月日 2010/04/01 初版 > 変更内容 目次 > 1 はじめに...1 1.1 目的...1 2 アプリケーションの作成...2 2.1 Strutsからim-JavaEE Frameworkのイベントフレームワークへの連携...2

More information

"CAS を利用した Single Sign On 環境の構築"

CAS を利用した Single Sign On 環境の構築 CAS Single Sign On (Hisashi NAITO) naito@math.nagoya-u.ac.jp Graduate School of Mathematics, Nagoya University naito@math.nagoya-u.ac.jp, Oct. 19, 2005 Tohoku Univ. p. 1/40 Plan of Talk CAS CAS 2 CAS Single

More information

... 1... 2... 2... 2... 4... 4... 5 HTML/JSP/Servlet... 7 JSP... 7 Servlet... 11 Struts... 15 Struts... 15 Struts... 16... 17... 25 FormBean LoginForm

... 1... 2... 2... 2... 4... 4... 5 HTML/JSP/Servlet... 7 JSP... 7 Servlet... 11 Struts... 15 Struts... 15 Struts... 16... 17... 25 FormBean LoginForm Oracle JDeveloper 10g Struts Creation Date: May 28, 2004 Last Update: Aug 19, 2004 Version 1.0.1 ... 1... 2... 2... 2... 4... 4... 5 HTML/JSP/Servlet... 7 JSP... 7 Servlet... 11 Struts... 15 Struts...

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション オブジェクト指向 プログラミング演習 第 4 回継承 オーバーライド ポリモルフィズム 今日のお題 継承 オーバーライド ポリモルフィズム 継承 (inherit) あるクラス c のサブクラス s を定義する : このとき s は c を継承していると言う 何かの下位概念を表すクラスは その上位概念を表すクラスの属性や機能を ( 基本的には ) 使える 継承の例 大学生 長崎県立大学の学生 大学生を継承する概念

More information

12.1 インターネットアドレス インターネットアドレス インターネットアドレス 32 ビットの長さを持つインターネットに接続されたマシンを識別するのに使う インターネットアドレスは ピリオドで区切られたトークンの並びで表現されることもある インターネットアドレス

12.1 インターネットアドレス インターネットアドレス インターネットアドレス 32 ビットの長さを持つインターネットに接続されたマシンを識別するのに使う インターネットアドレスは ピリオドで区切られたトークンの並びで表現されることもある   インターネットアドレス Java 独習第 3 版 12.1 インターネットアドレス 12.2 サーバーソケットとソケット 2006 年 7 月 5 日 ( 水 ) 南慶典 12.1 インターネットアドレス インターネットアドレス インターネットアドレス 32 ビットの長さを持つインターネットに接続されたマシンを識別するのに使う インターネットアドレスは ピリオドで区切られたトークンの並びで表現されることもある www.mycompany.com

More information

tkk0408nari

tkk0408nari SQLStatement Class Sql Database SQL Structured Query Language( ) ISO JIS http://www.techscore.com/tech/sql/02_02.html Database sql Perl Java SQL ( ) create table tu_data ( id integer not null, -- id aid

More information

intra-mart im-JavaEE Framework

intra-mart im-JavaEE Framework intra-mart im-javaee Framework Version 6.1 Struts 連携ガイド 第 2 版 2010 年 7 月 30 日 > 変更年月日変更内容 2007/7/31 初版 2010/7/30 第 2 版 プレゼンテーションフレームワークに関する記述を削除 目次 > 1 はじめに...3 1.1 目的...3 2 アプリケーションの作成...3

More information

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   None

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   None クイック検索検索 目次 Copyright 2013 NTT DATA INTRAMART CORPORATION 1 Top 目次 intra-mart Accel Platform イベントナビゲータ開発ガイド初版 2013-07-01 None 改訂情報概要イベントフローの作成 更新 削除をハンドリングするイベントフローを非表示にする回答を非表示にするリンクを非表示にするタイトル コメントを動的に変更するリンク情報を動的に変更するナビゲート結果のリンクにステータスを表示する

More information

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文 Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文字 0x0000 ~ 0xffff byte 1バイト整数 - 2 8 ~ 2 8-1 short 2バイト整数

More information

新・明解Java入門

新・明解Java入門 537,... 224,... 224,... 32, 35,... 188, 216, 312 -... 38 -... 38 --... 102 --... 103 -=... 111 -classpath... 379 '... 106, 474!... 57, 97!=... 56 "... 14, 476 %... 38 %=... 111 &... 240, 247 &&... 66,

More information

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

think9i Oracle Internet File System i を使用した ソフトウェア開発手法 日本オラクル株式会社製品本部システム製品マーケティング部 Copyright 2001 Oracle Corporation Japan. All Rights Reserved. think9i Oracle Internet File System i を使用した ソフトウェア開発手法 日本オラクル株式会社製品本部システム製品マーケティング部 1. Oracle 9iFS SDK とは 2. Oracle 9iFS SDK でカスタマイズできる機能 3. Oracle 9iFS の開発環境 4. デモンストレーション 5. Oracle 9iFS Java API を使用した基本的なプログラム

More information

Javaセキュアコーディングセミナー2013東京第1回 演習の解説

Javaセキュアコーディングセミナー2013東京第1回 演習の解説 Java セキュアコーディングセミナー東京 第 1 回オブジェクトの生成とセキュリティ 演習の解説 2012 年 9 月 9 日 ( 日 ) JPCERT コーディネーションセンター脆弱性解析チーム戸田洋三 1 演習 [1] 2 演習 [1] class Dog { public static void bark() { System.out.print("woof"); class Bulldog

More information

Microsoft PowerPoint - web_and_dm08_servlet2.pptx

Microsoft PowerPoint - web_and_dm08_servlet2.pptx Webとデータモデリング Java によるサーバサイドプログラミング 北川博之, 森嶋厚行, 天笠俊之 1 Java Server Pages (JSP) の利用 2 Web とデータモデリング 1 サーブレットのコード例 public class HelloWorld extends HttpServlet { public void doget(httpservletrequest request,

More information

intra-mart Accel Platform

intra-mart Accel Platform セットアップガイド (WebSphere 編 ) 第 4 版 2014-01-01 1 目次 intra-mart Accel Platform 改訂情報 はじめに 本書の目的 前提条件 対象読者 各種インストール 設定変更 intra-mart Accel Platform 構成ファイルの作成 WebSphereの設定 Java VM 引数の設定 トランザクション タイムアウトの設定 データベース接続の設定

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅱ 10 回目への出力 ストリーム ストリームとは入力または出力の流れをもつデータの連鎖ですストリームは異なる機器からのデータを統一的に扱う考え方です 文字ストリーム 文字ベースの入出力をサポートします - Unicode(Java 内部 ) とローカルコード (Java 外部 ) の変換が行われ プログラマはその違いを意識しなくてすみます バイトストリームバイナリデータの入出力をサポートします

More information

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲 Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲を決定します 次の型が利用でき これらの型は特に基本型とよばれます 基本型 値の種類 値の範囲 boolean

More information

Prog2_10th

Prog2_10th 2013 年 11 月 28 日 ( 木 ) 実施 ファイル操作とディレクトリ操作今回の授業では,Java 言語でのファイル操作とディレクトリ操作とについて学習する ファイル操作ファイル操作は,C 言語プログラミングで学んだように, 次の順序で行う 1) ストリームを開く 2) ストリームからの入力, ストリームへの出力 3) ストリームを閉じる Java 言語では, ファイル操作に関係するクラスが複数用意されている

More information

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版  

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   Copyright 2013 NTT DATA INTRAMART CORPORATION 1 Top 目次 intra-mart Accel Platform イベントナビゲータ開発ガイド初版 2013-07-01 改訂情報概要イベントフローの作成 更新 削除をハンドリングするイベントフローを非表示にする回答を非表示にするリンクを非表示にするタイトル コメントを動的に変更するリンク情報を動的に変更するナビゲート結果のリンクにステータスを表示する

More information

WEBシステムのセキュリティ技術

WEBシステムのセキュリティ技術 EJB (Enterprise Java Beans) 棚橋沙弥香 テーマ選定の背景 現在携わっている Java 開発案件で EJB が使われておりますが 私自身が EJB を扱うのが初めてで知らない技術でしたので 勉強してみたいと思い 今回はこのテーマを選定しました 目次 EJBとは 1 EJBの利点 2 EJBの歴史 3 EJBの開発環境の作成 4 5 Enterprise Bean 6 非同期処理の実装

More information

Microsoft PowerPoint - prog09.ppt

Microsoft PowerPoint - prog09.ppt プログラミング言語 3 第 09 回 (2007 年 11 月 26 日 ) 1 今日の配布物 片面の用紙 1 枚 今日の課題が書かれています 本日の出欠を兼ねています 2/40 1 今日やること http://www.tnlab.ice.uec.ac.jp/~s-okubo/class/java06/ にアクセスすると 教材があります 2007 年 11 月 27 日分と書いてある部分が 本日の教材です

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション オブジェクト指向 プログラミング演習 第 4 回継承 オーバーライド ポリモルフィズム 今日のお題 継承 オーバーライド ポリモルフィズム 継承 (inherit) あるクラス c のサブクラス s を定義する : このとき s は c を継承していると言う 何かの下位概念を表すクラスは その上位概念を表すクラスの属性や機能を ( 基本的には ) 使える 継承の例 大学生 長崎県立大学の学生 大学生を継承する概念

More information

Microsoft PowerPoint - prog09.ppt

Microsoft PowerPoint - prog09.ppt プログラミング言語 3 第 09 回 (2007 年 11 月 26 日 ) 1 今日の配布物 片面の用紙 1 枚 今日の課題が書かれています 本日の出欠を兼ねています 2/40 今日やること http://www.tnlab.ice.uec.ac.jp/~s-okubo/class/java06/ にアクセスすると 教材があります 2007 年 11 月 27 日分と書いてある部分が 本日の教材です

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 5 月 Java 基礎 1 タイトル Java 基礎 2 日間 概要 目的 サーバサイドのプログラミング言語で最もシェアの高い Java SE の基本を習得します 当研修ではひとつの技術ごとに実用的なアプリケーションを作成するため 効果的な学習ができます Java SE の多くの API の中で 仕事でよく利用するものを中心に効率よく学びます 実際の業務で最も利用される開発環境である Eclipse

More information

intra-mart Accel Platform — IM-Repository拡張プログラミングガイド   初版  

intra-mart Accel Platform — IM-Repository拡張プログラミングガイド   初版   Copyright 2018 NTT DATA INTRAMART CORPORATION 1 Top 目次 1. 改訂情報 2. はじめに 2.1. 本書の目的 2.2. 対象読者 2.3. サンプルコードについて 2.4. 本書の構成 3. 辞書項目 API 3.1. 最新バージョン 3.1.1. 最新バージョンの辞書を取得する 3.2. 辞書項目 3.2.1. 辞書項目を取得する 3.2.2.

More information

Java知識テスト問題

Java知識テスト問題 Java 知識テスト SDAS プログラマ(Java 編 ) 運営事務局 このテストは J2EE プログラマとしての Java の知識を評価するものです 問題は 30 問, テスト時間は J2EE 知識テストとあわせて 90 分です 問題は全て択一式です 選択肢から 1 つだけ選択してください 資料の閲覧は禁止です テストが終わり次第 答案用紙を提出していただいてかまいません テスト終了後, 本テストの内容を他の方に話さないでください

More information

intra-mart im-J2EE Framework

intra-mart im-J2EE Framework intra-mart im-j2ee Framework Version 6.0 Struts 連携ガイド 初版 2006 年 8 月 11 日 変更年月日 2006/8/11 初版 > 変更内容 目次 > 1 はじめに...3 1.1 目的...3 2 アプリケーションの作成...3 2.1 前提...3 2.2 Strutsからim-J2EE Frameworkのイベントフレームワークへの連携...3

More information

Javaプログラムの実行手順

Javaプログラムの実行手順 戻り値のあるメソッド メソッドには 処理に使用する値を引数として渡すことができました 呼び出し 側からメソッドに値を渡すだけでなく 逆にメソッドで処理を行った結果の値を 呼び出し側で受け取ることもできます メソッドから戻してもらう値のことを もどりち戻り値といいます ( 図 5-4) 図 5-4. 戻り値を返すメソッドのイメージ 戻り値を受け取ることによって ある計算を行った結果や 処理に成功したか失

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅰ 3 回目変数 今日の講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能です 変数は 型 ( データ型ともいいます ) と識別子をもちます 2 型 変数に記憶できる値の種類です型は 値の種類に応じて次の 8 種類があり これを基本型といいます 基本型値の種類値の範囲または例 boolean 真偽値 true または

More information

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac Actual4Test http://www.actual4test.com Actual4test - actual test exam dumps-pass for IT exams Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN

More information

Prog1_15th

Prog1_15th 2017 年 7 月 27 日 ( 木 ) 実施 応用プログラム (3) キー検索 コレクションには, ハッシュテーブルと呼ばれるものがある これは, キー (key) と値 (value) とを組として保持しているものである 通常の配列が添字により各要素にアクセス出来るのに比べて, ハッシュテーブルではキーを用いて各値にアクセスすることが出来る キー及びそのキーから連想される値の組を保持していることから,

More information

Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1

Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1 Java (9) 1 Lesson 7 2008-05-20 Java System.out.println() 1 Java API 1 Java Java 1 GUI 2 Java 3 1.1 5 3 1.0 10.0, 1.0, 0.5 5.0, 3.0, 0.3 4.0, 1.0, 0.6 1 2 4 3, ( 2 3 2 1.2 Java (stream) 4 1 a 5 (End of

More information

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

intra-mart Accel Platform — 外部ソフトウェア接続モジュール 仕様書   第3版   Copyright 2012 NTT DATA INTRAMART CORPORATION 1 Top 目次 改訂情報はじめに本書の目的対象読者本書の構成概要外部ソフトウェア接続モジュールとは仕様外部ソフトウェア接続モジュールの構成サンプルプログラムサンプル内容動作に必要な環境構築プログラムソースログイン セキュリティ環境の構築外部ソフトウェア連携時の認可設定 2 改訂情報 変更年月日 変更内容 2012-12-21

More information

Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ

Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ Oracle Un お問合せ : 0120- Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよびSOA 対応データ サービスへ ) を網羅する総合的なデータ統合プラットフォームです Oracle

More information

PowerPoint Presentation

PowerPoint Presentation ソフトウェア演習 B GUI を持つ Java プログラムの 設計と実装 4.1 例題 :GUI を持った電卓を作ろう プロジェクトCalculator パッケージ名 :example ソースファイル : Calculator.java GUI.java EventProcessor.java 2 4.2 GUI とイベント処理 GUI の構成 :Swing GUI の場合 フレーム JFrame:

More information

— intra-mart Accel Platform セットアップガイド (WebSphere編)   第7版  

— intra-mart Accel Platform セットアップガイド (WebSphere編)   第7版   Copyright 2013 NTT DATA INTRAMART CORPORATION 1 Top 目次 intra-mart Accel Platform セットアップガイド (WebSphere 編 ) 第 7 版 2016-12-01 改訂情報はじめに本書の目的前提条件対象読者各種インストール 設定変更 intra-mart Accel Platform 構成ファイルの作成 WebSphereの設定

More information

intra-mart Accel Platform — OData for SAP HANA セットアップガイド   初版  

intra-mart Accel Platform — OData for SAP HANA セットアップガイド   初版   Copyright 2016 NTT DATA INTRAMART CORPORATION 1 Top 目次 1. 改訂情報 2. はじめに 2.1. 本書の目的 2.2. 前提条件 2.3. 対象読者 2.4. 注意事項 3. 概要 3.1. OData 連携について 3.2. OData について 3.3. SAP HANA 連携について 3.4. アクター 3.5. セットアップの手順について

More information

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

オブジェクト指向プログラミング・同演習 5月21日演習課題 オブジェクト指向プログラミング 同演習 5 月 21 日演習課題 問題 1 配列の例外処理例外が発生する可能性のある処理を try で囲み その後に catch で例外を捕捉します 例外処理の終了処理として finally が行われます これは書かなくて自動的に行われます 提出課題 1 (Kadai052301.java) 以下のプログラムは例外処理をしていない ArrayIndexOutOfBoundsException

More information

Microsoft Word - Android_SQLite講座_画面800×1280

Microsoft Word - Android_SQLite講座_画面800×1280 Page 24 11 SQLite の概要 Android にはリレーショナルデータベースである SQLite が標準で掲載されています リレーショナルデータベースは データを表の形で扱うことができるデータベースです リレーショナルデータベースには SQL と呼ばれる言語によって簡単にデータの操作や問い合わせができようになっています SQLite は クライアントサーバ形式ではなく端末の中で処理が完結します

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅱ 11 回目スレッド課題 確認 問題次の各文は正しいか誤っているか答えなさい (1) スレッドは 1 つの実行箇所をもつ一連の処理の流れである (2) マルチスレッドで各スレッドの処理は並行して実行される (3) Java はマルチスレッド処理を記述できない (4) 新たにスレッドを生成する場合 Thread クラスを拡張し かつ Runnable インタフェースを実装する必要がある

More information

Prog2_10th

Prog2_10th 2017 年 12 月 7 日 ( 木 ) 実施 効果音の付加 SoundPool とは Android には音を処理するクラスが複数用意されているが, その中で SoundPool は, 予め音のデータをメモリ上に読み込んで再生するため, 長い音楽よりも短い音を扱うのに適している また,SoundPool では遅延が無いので, 効果音を付加したい場面で用いられる 授業の準備 1)Android Studio

More information

データベースアクセス

データベースアクセス データベースアクセスコンポーネント 1. 概要 データベースアクセスコンポーネントとは SQL データベースにアクセスして SQL 文を実行することによりデータベース検索を行う機能を提供するコンポーネントです また データベースアクセスコンポーネントでは データベースの構成情報 接続情報 エラー情報等を取得することも可能です データベースアクセスコンポーネントは アプリケーションビルダーのメニューから以下のように選びます

More information

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

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード] 第 3 回 Java 基本技術講義 クラス構造と生成 33 クラスの概念 前回の基本文法でも少し出てきたが, オブジェクト指向プログラミングは という概念をうまく活用した手法である. C 言語で言う関数に似ている オブジェクト指向プログラミングはこれら状態と振る舞いを持つオブジェクトの概念をソフトウェア開発の中に適用し 様々な機能を実現する クラス= = いろんなプログラムで使いまわせる 34 クラスの概念

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 基本 Java プログラミング演習 第 13 回 担当 : 植村 今後の予定 7/15 第 13 回 今回 7/22 第 14 回 小テスト ( クラス ) 7/29 第 15 回 総まとめテスト レポート提出 期末テストの時間割に Java のテストの欄がありますが無視してください 再テストはまた別途連絡いたします 2 CHAPTER 11 はじめてのクラス前回の復習 クラスクラスを構成する要素

More information

Oracleセキュア・エンタープライズ・サーチ

Oracleセキュア・エンタープライズ・サーチ Oracle Secure Enterprise Search Secure Connector Software Development Kit Oracle Secure Enterprise Search バージョン 10.1.6 2006 年 6 月 概要 Oracle Secure Enterprise Search 10.1.6 は Web サーバー データベース表 IMAP サーバー

More information

< F2D B838A835882CC8CF68EAE2E6A7464>

< F2D B838A835882CC8CF68EAE2E6A7464> ウォーリスの公式 [Java アプレット ] [Java アプリケーション ] 1. はじめに 次のウォーリスの公式を用いて π の近似値を求めてみましょう [ ウォーリスの公式 ] π=2{ 2 2 4 4 6 6 1 3 3 5 5 7 シミュレーションソフト ウォーリスの公式による π の近似 を使って π の近似値が求まる様子を観察してみてください 2.Java アプレット (1) Javaプログラムリスト

More information

// このクラスの有効期間中の各呼び出しに使用される キャッシュされた Socket オブジェクト Socket socket = null; // 非同期処理が完了したことを通知するために信号を送るオブジェクト static ManualResetEvent clientdone = new Ma

// このクラスの有効期間中の各呼び出しに使用される キャッシュされた Socket オブジェクト Socket socket = null; // 非同期処理が完了したことを通知するために信号を送るオブジェクト static ManualResetEvent clientdone = new Ma HOW DO I ソケットで通信を行うには ここでは以下の手順で説明します ソケットクライアントを作成するデータを送信するデータを受信するソケットクライアントを使用する ソケットクライアントを作成する 1. このコンテンツのサポートファイルの Start フォルダから "UDPClient" プロジェクトを開きます 2. クライアントを動作させるため コンピューターで簡易 TCP/IP サービスを有効にする必要があります

More information

Microsoft Word - JDBCドラバーの設定.doc

Microsoft Word - JDBCドラバーの設定.doc JDBC ドライバーの設定方法 対象バージョン : 2007 SP7 および 9.0.0 ページ - 1 - はじめに このガイドは Fiorano SOA プラットフォームの DB コンポーネントからデータベースにアクセスする際に必要となる JDBC ドライバーについて その設定方法を説明するものです Fiorano SOA プラットフォームのサーバーアーキテクチャや DB コンポーネントの使用方法

More information

デジタル表現論・第6回

デジタル表現論・第6回 デジタル表現論 第 6 回 劉雪峰 ( リュウシュウフォン ) 2016 年 5 月 16 日 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 6 回 2016 年 5 月 16 日 1 / 16 本日の目標 Java プログラミングの基礎配列 ( 復習 関数の値を配列に格納する ) 文字列ファイルの書き込み 劉 雪峰 ( リュウシュウフォン ) デジタル表現論 第 6 回 2016 年

More information

Microsoft PowerPoint - OOP.pptx

Microsoft PowerPoint - OOP.pptx 第 14 回 第 12 章アプレット 28 8 アプレットとは アプレット : ウェブ上で HTML のソースコードから参照されるプログラム.Web サーバや Web ブラウザ ( アプレットビューア ) から動的にアプレットはダウンロードされる. 289 HelloAp.java アプレットの基本事項 public class HelloAp extends Applet{ public void

More information

Oracle9iAS Containers for J2EE Servlet 開発者ガイドおよびリファレンス

Oracle9iAS Containers for J2EE Servlet 開発者ガイドおよびリファレンス Oracle9iAS Containers for J2EE Servlet 開発者ガイドおよびリファレンス 2001 年 12 月 目次 はじめに はじめに... iii 対象読者... このマニュアルの内容... 表記規則... iii iii iv 1 サーブレットの概要 参考情報... 1-2 サーブレット情報... 1-2 サーブレットの概要... 1-3 サーブレットの利点... 1-3

More information

PowerPoint Presentation

PowerPoint Presentation 上級プログラミング 2( 第 1 回 ) 工学部情報工学科 木村昌臣 今日のテーマ 入出力に関わるプログラムの作り方 ネットワークプログラミングの続き TCP の場合のプログラム 先週のプログラムの詳細な説明 URLクラス サーバープログラムの例 データ入出力プログラミングの復習 テキストの読み込み関係のクラス テキストからデータを読み込むときには 通常 三段構えで行う バイナリデータとして読み出し

More information

メソッドのまとめ

メソッドのまとめ メソッド (4) 擬似コードテスト技法 http://java.cis.k.hosei.ac.jp/ 授業の前に自己点検以下のことがらを友達に説明できますか? メソッドの宣言とは 起動とは何ですか メソッドの宣言はどのように書きますか メソッドの宣言はどこに置きますか メソッドの起動はどのようにしますか メソッドの仮引数 実引数 戻り値とは何ですか メソッドの起動にあたって実引数はどのようにして仮引数に渡されますか

More information

WTM2019SingleSignOn

WTM2019SingleSignOn [Java 開発者向け ] シングルサインオンへの対応 - Java カスタマイズコードの書き方 1/45 OUTLINE Spring Security Spring Security を使った認証の仕組み Spring Security を使ったシングル サインオン 2/45 Spring Security 3/45 Spring Security とは アプリケーションのセキュリティを高めるためのフレームワーク

More information

Java講座

Java講座 ~ 第 1 回 ~ 情報科学部コンピュータ科学科 2 年竹中優 プログラムを書く上で Hello world 基礎事項 演算子 構文 2 コメントアウト (//, /* */, /** */) をしよう! インデントをしよう! 変数などにはわかりやすい名前をつけよう! 要するに 他人が見て理解しやすいコードを書こうということです 3 1. Eclipse を起動 2. ファイル 新規 javaプロジェクト

More information

I. EspressReport 100%Java JSP API II. EspressReport Report Designer Report Designer - Report Designer Web Java Web Web Report Designer import java.awt

I. EspressReport 100%Java JSP API II. EspressReport Report Designer Report Designer - Report Designer Web Java Web Web Report Designer import java.awt TEL: 03-3360-9336 FAX: 03-3660-9337 soft@climb.co.jp www.climb.co.jp Overview, Technology & Features White Paper I. EspressReport 100%Java JSP API II. EspressReport Report Designer Report Designer - Report

More information

1 検証概要 目的及びテスト方法 1.1 検証概要 Micro Focus Server Express 5.1 J の Enterprise Server が提供する J2EE Connector 機能は 多くの J2EE 準拠アプリケーションサーバーについて動作検証がなされています 本報告書は

1 検証概要 目的及びテスト方法 1.1 検証概要 Micro Focus Server Express 5.1 J の Enterprise Server が提供する J2EE Connector 機能は 多くの J2EE 準拠アプリケーションサーバーについて動作検証がなされています 本報告書は Micro Focus Server Express 5.1 J for AIX 7.1 IBM WebSphere Application Server 8.0.0.0 動作検証結果報告書 2011 年 11 月 10 日マイクロフォーカス株式会社 Copyright 2011 Micro Focus. All Rights Reserved. 記載の会社名 製品名は 各社の商標または登録商標です

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅰ 3 回目変数 今日の講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能です 変数は 型 ( データ型ともいいます ) と識別子をもちます 2 型 変数に記憶できる値の種類です型は 値の種類に応じて次の 8 種類があり これを基本型といいます 基本型値の種類値の範囲または例 boolean 真偽値 true または

More information

HCI プログラミング 8 回目ボタン チェックボックス ラジオボタン 今日の講義で学ぶ内容 ボタンとアクションイベント ボタンのカスタマイズ チェックボックスとラジオボタン ボタンとアクションイベント 1 ボタンを配置してみましょう ボタンは ラベルと同じようにフォントやその色 画像の貼り付けなど

HCI プログラミング 8 回目ボタン チェックボックス ラジオボタン 今日の講義で学ぶ内容 ボタンとアクションイベント ボタンのカスタマイズ チェックボックスとラジオボタン ボタンとアクションイベント 1 ボタンを配置してみましょう ボタンは ラベルと同じようにフォントやその色 画像の貼り付けなど HCI プログラミング 8 回目ボタン チェックボックス ラジオボタン 今日の講義で学ぶ内容 ボタンとアクションイベント ボタンのカスタマイズ チェックボックスとラジオボタン ボタンとアクションイベント 1 ボタンを配置してみましょう ボタンは ラベルと同じようにフォントやその色 画像の貼り付けなどを設定できます ソースファイル名 :Sample8_1.java // HP よりインポート文をここへ貼り付けてください

More information

< F2D834F838C A815B A CC>

< F2D834F838C A815B A CC> グレゴリー ライプニッツの公式 [Java アプレット ] [Java アプリケーション ] 1. はじめに 次のグレゴリー ライプニッツの公式を用いて π の近似値を求めてみましょう [ グレゴリー ライプニッツの公式 ] π 4 =1-1 3 + 1 5-1 7 + 1 9-1 + 11 シミュレーションソフト グレゴリー ライプニッツの公式による π の近似 を使って π の近似値が求まる様子を観察してみてください

More information

TestDesign for Web

TestDesign for Web 発行日 2012/6/21 発行元 株式会社アープ 本書は Web でのテスト自動化における Test Design の一連の操作方法まとめたものです Test Design のメニューの説明やより詳細な使い方については ユーザーズガイド を参照してください 目次 1. はじめに... 1 2. 環境構築... 2 2.1. Selenium のサイトについて... 2 2.2. Selenium

More information

2

2 プログラミング応用演習 b 10 月 5 日演習課題 2016/10/05 PAb 演習課題 プログラム仕様書作成課題 課題クラスを読み 次に示すクラスの仕様書を完成させよ なお 仕様書は クラス 1 つに付き 1 つ作成す る 加えて 図 1 のようなクラス継承の模式図を作成せよ < クラス名 のプログラム仕様書 > 作成者 : 学籍番号 名前 (1) クラスクラス名 : クラス名 説明 : クラスが何を表現しているか

More information