TOMCAT Servlet サーブレットもScalaで

Posted 2010年11月18日 by

JSPで動作しているということなら、Servletでもコーディングしてみよう

とうわけで、「多忙な Java 開発者のための Scala ガイド: Scala とサーブレット」を参考にして Scala によるデータベースへのアクセスを持ったサーブレットを記述しました。

このサーブレットを TOMCAT に設定する手順は「多忙な、、、」と同じなので省略。

これまでのコードはすべて自前でデータベースコネクションをゲットしていますが、TOMCATなのでデータソースをみてコネクションプールからコネクションを取得したいですね。

package SeeDo

import javax.servlet.http.{HttpServlet,HttpServletRequest => HSReq, HttpServletResponse => HSResp}
import java.sql.{DriverManager, Connection, Statement, ResultSet,SQLException}
import java.util.Date
class HelloScalaServlet extends HttpServlet
{
  override def doGet(req : HSReq, resp : HSResp) =
      "<HEAD><TITLE>Hello, Scala!</TITLE></HEAD>" +
      "<BODY>"
      + "Hello, Scala! This is a servlet.<BR><BR>"
      + oracle +
      "</BODY>" +
      "</HTML>")

  val jdbcURL = "jdbc:oracle:thin:@192.168.0.105:1521:ORCL"
  def oracle() : String = {
    var html:String = ""
    try {
 	Class.forName("oracle.jdbc.driver.OracleDriver").newInstance()
    	var con = DriverManager.getConnection(jdbcURL,"scott","tiger")
	    try {
		    var stmt = con.createStatement()
		    var rs = stmt.executeQuery("SELECT * FROM EMP")
		    while (rs.next()){
		    	val two = rs.getInt("empno") :: rs.getString("ename") :: rs.getInt("deptno"):: Nil
		    	html = html + two.toString + "<BR>"
		    }
            stmt.close();
		} catch {
		  case e:SQLException => println("Database error "+e)
		  case e => {
		    println("Some other exception type:")
		    e.printStackTrace()
		  }
		} finally {
		  con.close()
		}
    } catch {
	  case e:SQLException => println("Database error "+e)
	  case e => {
	    println("Some other exception type:")
	    e.printStackTrace()
	  }
    }
    html
  }
}



Post Details

  • Post Title: TOMCAT Servlet サーブレットもScalaで
  • 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.

コメントを残す