TOMCAT JSPからScalaクラスを使う その1

Posted 2010年11月18日 by

ScalaとWebとの組み合わせです。

ScalaでWebアプリケーションを作ってみます。

ServletよりJSPが好きなので、まず最初にJSPから試してみます。

Scala のクラスをJSPの中で使うには、import=”scala.*” でインポートすればOKです。

自分で作った Scala クラスも同様に import = “SeeDo.*” でインポートします。Scalaで作ったクラスはSeeDoパッケージとして実装したのでこのようになっています。

TOMCAT側の準備は、OracleSelect.class ファイルをプロジェクトフォルダの WEB-INF/classes フォルダに置きます。

WEB-INF/lib フォルダにはScalaJarファイルを一式コピーします。

Servletではないので設定ファイルをさわる必要はありません。

JPS では Scala OracleSelect クラスを New ます。Java言語なので ( ) を付けます。oracle( ) メソッドを呼び出せばデータベースにアクセスします。

データベースを SELECT した結果は、JavaArrayList を返すように Scalaで実装していますから、get( i ) で1レコードずつ取り出せます。

1レコードの各カラム値は scala.Tuple7 クラスに格納されています。

レコードカラムの各データは _1( ) メソッドで取ることができますが、使い勝手はよくないです。

<%@ page contentType="text/html;charset=MS932" %>
<%@ page import = "java.util.*" %>
<%@ page import = "scala.*" %>
<%@ page import = "SeeDo.*" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Scala test</title></head>
<BODY><TABLE border='2'>
<%	OracleSelect o = new OracleSelect();
	ArrayList list = o.oracle();
	for(int i = 0; i < list.size();i++){
		scala.Tuple7 b = (scala.Tuple7)list.get(i);
%>
<TR>
<TH><%=i%></TH><TD><%=b.getClass()%></TD>
<TD><%=b._1()%></TD><TD><%=b._2()%></TD><TD><%=b._3()%></TD><TD><%=b._4()%></TD>
<TD><%=b._5()%></TD><TD><%=b._6()%></TD><TD><%=b._7()%></TD>
</TR>
<%	}
%>
</TABLE><HR>
<%= o.text() %>
</BODY></html>




上の表は JSP側で oracle( ) メソッドを呼び出してArrayList を受け取り、for ループで1レコードずつ取り出して各カラムにテーブルタグを付加して作ったものです。



下の表はtext( ) メソッドを呼び出してScalaクラス側でテーブルタグに加工してStringとして出力して作ったものです。

実行結果は、以下の表が表示されます。

getClss( ) でクラス名を見ると scala.Tuple7 が使われていることがわかります。

0 class scala.Tuple7 7369 SMITH CLERK 7902 1980-12-17 20 800
1 class scala.Tuple7 7499 ALLEN SALESMAN 7698 1981-02-20 30 1600
2 class scala.Tuple7 7521 WARD SALESMAN 7698 1981-02-22 30 1250
3 class scala.Tuple7 7566 JONES MANAGER 7839 1981-04-02 20 2975
4 class scala.Tuple7 7654 MARTIN SALESMAN 7698 1981-09-28 30 1250
5 class scala.Tuple7 7698 BLAKE MANAGER 7839 1981-05-01 30 2850
6 class scala.Tuple7 7782 CLARK MANAGER 7839 1981-06-09 10 2450
7 class scala.Tuple7 7788 SCOTT ANALYST 7566 1987-04-19 20 3000
8 class scala.Tuple7 7839 KING PRESIDENT 0 1981-11-17 10 5000
9 class scala.Tuple7 7844 TURNER SALESMAN 7698 1981-09-08 30 1500
10 class scala.Tuple7 7876 ADAMS CLERK 7788 1987-05-23 20 1100
11 class scala.Tuple7 7900 JAMES CLERK 7698 1981-12-03 30 950
12 class scala.Tuple7 7902 FORD ANALYST 7566 1981-12-03 20 3000
13 class scala.Tuple7 7934 MILLER CLERK 7782 1982-01-23 10 1300

7369 SMITH 20
7499 ALLEN 30
7521 WARD 30
7566 JONES 20
7654 MARTIN 30
7698 BLAKE 30
7782 CLARK 10
7788 SCOTT 20
7839 KING 10
7844 TURNER 30
7876 ADAMS 20
7900 JAMES 30
7902 FORD 20
7934 MILLER 10




Post Details

  • Post Title: TOMCAT JSPからScalaクラスを使う その1
  • Author: admin
  • Filed As: Scala
  • Tags:
  • You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

コメントを残す