blob: 894485b7717aa14e9ab83d353b2c2b4f83243ee5 [file] [log] [blame]
// program to illustrate use of BSF in a JSP-generated servlet
// like scenario. The model is there's a series of Java code pieces
// intermixed with a series of JavaScript code pieces.
import org.apache.bsf.*;
public class JSPLikeInJavaScript {
BSFManager mgr = new BSFManager ();
BSFEngine js;
/* assume that the JSP page is compiled into the constructor:
intermix java and javascript code now. The .jsp could've looked
like the following (I'm guess syntax here..). Note that it uses
LiveConnect (part of rhino) to run. I'm assuming that language
was set to javascript (rhino) somewhere before.
<html>
<head><title>JSPLike</title></head>
<body>
<% var response = bsf.lookupBean ("response");
// above is the bean registered into bsf with the name "response"
// I can now call methods on that bean etc. using response.*.
var startDate = new java.util.Date ();
var startDateStr = startDate + ""; %>
<h1>Welcome at <%= startDateStr %></h1>
stuff
Response bean's length is: <%= response.length %>
Response bean's uppercase value is: <%= response.toUpperCase () %>
<% var endDate = new java.util.Date ();
var endDateStr = endDate + ""; %>
<h5>Page generation done at <%= endDateStr %></h5>
</body>
</html>
*/
public JSPLikeInJavaScript () throws BSFException {
js = mgr.loadScriptingEngine ("javascript");
// first register the response bean into the runtime
mgr.registerBean ("response", new String ("howdy-doody"));
Object result;
System.out.println ("<html>");
System.out.println ("<head><title>JSPLike</title></head>");
System.out.println ("<body>");
result = js.eval ("", 0, 0,
"var response = bsf.lookupBean (\"response\");" +
"var startDate = new java.util.Date ();" +
"var startDateStr = startDate + \"\";");
System.out.print ("<h1>Welcome at ");
result = js.eval ("", 0, 0,"startDateStr");
System.out.println (result + "</h1>");
System.out.println ("stuff");
System.out.print ("Response bean's length is: ");
result = js.eval ("", 0, 0,"response.length() + \"\"");
System.out.println (result);
System.out.print ("Response bean's uppercase value is: ");
result = js.eval ("", 0, 0,"response.toUpperCase() + \"\"");
System.out.println (result);
result = js.eval ("", 0, 0,"var endDate = new java.util.Date ();" +
"var endDateStr = endDate + \"\";");
System.out.print ("<h5>Page generation done at ");
result = js.eval ("", 0, 0,"endDateStr");
System.out.println (result + "</h5>");
System.out.println ("</body>");
System.out.println ("</html>");
}
public static void main (String[] args) throws Exception {
new JSPLikeInJavaScript ();
}
}