Javaプログラミング/Javaプログラミング関連情報

Java 6でスクリプト言語を使おう

Java 6で、Javaの中からJavaScriptを実行させてみましょう。

執筆者:掌田 津耶乃

Java 6とJavaScript


Java 6の大きな特徴の一つに「スクリプト言語との親和性」というものがあります。Java 6では、標準で「スクリプトエンジン」と呼ばれるものが搭載されました。これは文字通り、スクリプトを解釈し実行するためのエンジンプログラムです。

Java 6では、標準で「JavaScript」を実行するためのエンジンが用意されています。また、これ以外の言語のエンジンを追加していくことで拡張することができる仕様になっています。これにより、Javaの中からスクリプト言語を自由に利用することができるようになったわけです。ゆくゆくは、いくつものスクリプト言語が標準で利用できるようにしていくのでしょう。

この「Javaの中からスクリプト言語が使える」という機能、なんとなくすごいような、便利なような、でも何に使うのかわからないような(笑)、なかなか興味を引くものではありますね。さっそく、どんな具合に使うのか試してみることにしましょう。

ここでは、とりあえずサーバサイドでの利用を考えてみます。JSPの中に書いたJavaのソースコード内からJavaScriptを実行させてみることにしましょう。Java 6のスクリプトエンジンは、もちろんサーバサイドに限らず、一般的なアプリケーションでも利用できます。(これについても後で試してみる予定です)

では、ごく簡単な仕掛けとして、テキストエリアを持ったフォームをあらかじめ用意しておき、そこに書いたスクリプトをJava内から実行させる、というものを考えてみることにしましょう。ここでは、「test.jsp」というファイル名で作成してみます。

<%@ page language="java" contentType="text/html; charset=windows-31j"
    pageEncoding="windows-31j"%>

<%@ page import="javax.script.*" %>

<%
String script = request.getParameter("script");
String result = "";

if (script != null){
  ScriptEngineManager manager = new ScriptEngineManager();
  ScriptEngine engine = manager.getEngineByName("JavaScript");
  
  try {
    engine.eval(script);
  } catch(ScriptException ex){
    ex.printStackTrace();
  }
}
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-31j">
<title>Insert title here</title>
</head>
<body>
※スクリプト<br>
<form method="post" action="test.jsp">
<textarea name="script" cols=60 rows=5><%=script %></textarea>
<br>
<input type="submit">
</form>
</body>
</html>

ざっとこんな感じになりました。スクリプトをテキストエリアに記述して送信すると、その場で実行されます。


  • 1
  • 2
  • 3
  • 6
  • 次のページへ

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます