【www.gdgbn.com--js教程】

Scriptlets
我们已经看到如何嵌入的Java表达的JSP页面把他们之间的<% = %>字符序列。
但很难做节目只是把里面的Java表达式的HTML 。

JSP技术也可以让你写块Java代码内的JSP技术。您做到这一点,将您的Java代码之间的“ %和% ”字符(就像表达,但没有迹象=开始时的顺序。 )

这个代码块被称为“ scriptlet ” 。本身,一个scriptlet不会有助于任何HTML (尽管它可以,因为我们将看到楼下。 )在scriptlet包含Java代码是每一次执行的JSP技术是援引。

以下是修改后的版本的JSP技术从上一节,增加了scriptlet 。



<%
    // This is a scriptlet.  Notice that the "date"
    // variable we declare here is available in the
    // embedded expression later on.
    System.out.println( "Evaluating date now" );
    java.util.Date date = new java.util.Date();
%>
Hello!  The time is now <%= date %>

如果您运行上面的例子中,您会发现输出从“ System.out.println ”的服务器日志。这是一个方便的方法做简单的调试(有些服务器也有技术调试JSP技术在IDE中。查看您的服务器的文件,看它是否提供了这样一种技术。 )
据本身就是一个scriptlet不会产生的HTML 。如果scriptlet要产生的HTML ,它可以使用一个变量所谓的“去” 。这个变数并不需要宣布。它已经预先为scriptlets ,加上其他一些变数。以下示例显示如何scriptlet可以产生HTML输出。



<%
    // This scriptlet declares and initializes "date"
    System.out.println( "Evaluating date now" );
    java.util.Date date = new java.util.Date();
%>
Hello!  www.111cn.net

<%
    // This scriptlet generates HTML output
    out.println( String.valueOf( date ));
%>

在这里,而不是使用的一种表现,我们正在创造的HTML直接打印的“去”变数。在“去”变量类型javax.servlet.jsp.JspWriter 。
另一个非常有用的预先定义的变量是“请求” 。这是类型javax.servlet.http.HttpServletRequest

“要求”在服务器端处理是指交易之间的浏览器和服务器。当有人点击或输入网址,浏览器发出了一个“请”到服务器的该网址,并显示返回的数据。作为这项工作的一部分“要求” ,各种数据,包括文件浏览器想从服务器,如果请求是来自紧迫的一个提交按钮,信息的用户已进入的形式领域。

在JSP的“请求”的变数是用来获取信息的请求派出的浏览器。例如,你可以找到的名字客户端的主机(如果有的话,否则的IP地址将被退还。 )让我们修改代码所示:



<%
    // This scriptlet declares and initializes "date"
    System.out.println( "Evaluating date now" );
    java.util.Date date = new java.util.Date();
%>
Hello!  The time is now www.111cn.net

<%
    out.println( date );
    out.println( "
Your machine"s address is " );
    out.println( request.getRemoteHost());
%>

类似的变数是“反应” 。这可以用来影响的反应被发送到浏览器。例如,您可以调用response.sendRedirect ( anotherUrl ) ;发送响应到浏览器,它应该载入不同的网址。这种反应实际上将一路走下去的浏览器。该浏览器便会发出不同的要求,以“ anotherUrl ” 。这是一个什么不同于其他一些JSP的机制,我们会碰到,因为包括另一网页或转发的浏览器到另一个网页。
练习:写JSP技术到输出的整个路线, “您好!现在是时候... ”但使用scriptlet全面字符串,其中包括HTML标记

本文来源:http://www.gdgbn.com/wangyezhizuo/18247/