另外一个被预定义非常有用的变量是“request”。它是一种javax.servlet.http.HttpServletRequest。
在服务器端“request”处理浏览器和服务器之间的工作。当用户点击连接或者键入一个URL,浏览器就会为那个URL发送一个“request”给服务器并且显示返回的数据。作为这个“request”的一部分,各种数据是可利用的,这些数据包括浏览器想从服务器中取得的文件;并且如果这个请求(request)是通过按下SUBMIT(提交)按钮发来的,这些数据还包括用户键入到表单区域的信息。
JSP的“request”变量用于获得从由浏览器发送的请求的信息。举个例子,你可以知道客户主机的名字,或者只能获得此主机IP地址。下面我们对以前教程的代码修改如下:
<HTML>
<BODY>
<%
// 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
<%
out.println( date );
out.println( "<BR>Your machine's address is " );
out.println( request.getRemoteHost());
%>
</BODY>
</HTML>
还有一个类似的变量,“response”。这个变量用于影响被发送到浏览器的响应。为了更好的理解这句话的意思,我们来举个例子,你可以调用response.sendRedirect( anotherUrl )来发送一个响应给浏览器,接着这个浏览器就会发送一个不同的请求给“anotherUrl”。这看起来跟一些我们遇到的JSP机理有点不同,比如它包括了另外的网页或者转发浏览器给其它的网页。
本教程的特点是每个教程结束后都要作个练习。这次的练习为:编写一个JSP来输出完整的行“Hello! The time is now.”,当然还要为这个字符串编写一个scriptlet,包括HTML标记。这里还需要再提醒一下,这些练习对巩固所学知识和加深理解都是很有帮助,所以我希望所有学员都要认真地作练习。
|
关键词: JSP由浅入深(4)—— Scriptlets(2)