📄 0099.htm
字号:
<H<%=i%>>Hello</H<%=i%>><br>
<% } %>。<br>
批注<br>
最后一个主要JSP组件是嵌入式批注。虽然你可以在你的档案里包含HTML批注,如果使用者检视网页的原始码,他们也会看到这些批注。如果你不要让使用者看到你的批注,你可以将它放在<%-- ?--%>卷标里:<br>
<%-- 针对伺服端的批注 --%>。<br>
JSP与JavaBean<br>
虽然你可以在小型指令文件里放入一大块的程序代码,但是大多数的Java程序代码是属于可以重复使用的组件,称为JavaBean。JavaBean就跟ActiveX控件一样:它们提供已知的功能,并且是为了可随时重复使用的目的而设计的。<br>
JavaBean的价值在于它可以经由一组特性来使用,而这些特性则提供对JavaBean设定的存取。以人来作范例,此人就是JavaBean,而他的姓名,社会福利安全号码,以及住址可以是特性。对于JSP网站,基本上你是将'JavaBean'动态的连接到你的网站。<br>
假设JavaBean是在建立网站之前建好的,你要做的第一件事是告诉JSP网页它所需要使用JavaBean.这工作可以用<jsp:useBean>卷标来完成:<br>
<jsp:useBean id="localName" class="com.jguru.Person" scope="application" />.<br>
<jsp:useBean>卷标需要你以id 属性来辨识豆子.在这里,你提供一个名称让JSP网页来辨识豆子,除了id 属性之外,你也必须告诉网页要到哪里去找这个豆子,或者是它的Java类别名称。类别属性提供如何在各式方法之中找到它,最后一个需要的组件是scope 属性.有了范围属性的帮助,你可以告诉豆子,要它为单一网页(预设)[scope="page"];为一个被请求的网页[scope="request"];为通话期[scope="session"];或为整个应用程序[scope="application"]来维护它自己的信息.对于通话期范围,你可以很容易的维护JSP网页里的项目,例如购物车。<br>
一但你宣告了JavaBean之后,你就可以存取它的特性来订定它。要取得一特性的值,使用<jsp:getProperty>卷标。有了<jsp:getProperty>卷标,你可以指定要使用的豆子名称(从useBean的id字段),以及你要取得值的特性。接着,真正的值就会放在输出里:<br>
<jsp:getProperty id="localName" property="name" />.<br>
要更改JavaBean的特性,你需要使用<jsp:setProperty>卷标.对这个卷标,你也需要辨认豆子以及要修正的特性,除此之外,你还需要提供新值.如果命名正确,这些可以直接经由规定的格式取得:<br>
<jsp:setProperty id="localName" property="*" />; <br>
要从一参数取得,你必须直接命名此特性以及参数:<br>
<jsp:setProperty id="localName" property="address" param="parameterName" />; <br>
或是直接以名称与值来设定:<br>
<jsp:setProperty id="localName" property="serialNumber" value="string" /> or <jsp:setProperty id="localName" property="serialNumber" value= <%= expression %> />.<br>
有关JavaBean的最后一点:要让网络服务器可以找到JavaBean,你需要将它们的类别档案放在特别位置。对JSWDK而言,最简单的地方是在安装目录里的类别目录,例如 \jswdk-1.0.1\classes.<br>
JSP的内部对象<br>
最后一个与JSP语法有关的组件叫做内部对象.在JSP小型指令文件内,你可以存取这些内部对象来与执行JSP网页的servlet环境相互作用。许多对内部对象的存取应该要简化。然而,这些是范例,它们的存取都是可接受的,要完整的利用内部对象设定则需要对最新的Java Servlet API有所了解。<br>
下表列出你可以使用的内部对象。 <br>
内部对象说明 <br>
request 客户端请求,此请求会包含来自GET/POST请求的参数 <br>
response 网页传回客户端的响应 <br>
pageContext 网页的属性是在这里管理 <br>
session 与请求有关的通话期 <br>
application servlet正在执行的内容 <br>
out 用来传送响应的输出资料流 <br>
config servlet的架构对象 <br>
page JSP网页本身 <br>
exception 针对错误网页,未捕捉的例外 <br>
那么,这些是做什么的,而你应该如何使用它们呢?基本上,在你的小型指令文件里,你可以使用它们来存取执行JSP程序代码的servlet。为了避免谈论到太多Servlet API 的细节,让我们来检视一些你可以利用它们来做的事: <br>
不必使用表达式,你可以直接存取内部out对象来打印一些东西到response:<br>
<% out.println("Hello"); %>. <br>
不必直接传送参数到JavaBean,你可以藉由请求对象来取得参数的值:<br>
<% String name=request.getParameter("name"); out.println(name); %>。 <br>
当你以JSP写了许多的应用程序之后,如果你建立了JavaBeans或者发现你自己将太多的Java原始码放入你的JSP档案,你需要建立支持的Java类别,这样可以鼓励重复使用并且降低JSP网页转换时所需要的时间。当你需要建立Java类别时,你必须: <br>
将JDSWK的安装目录\bin目录加到你的PATH。在你的autoexec.bat档案的PATH行的最后,加入C:\1.2.2\bin; 。 <br>
以下面的指令将JAR档案复制到\jre\lib\ext目录:<br>
copy c:\jswdk-1.0.1\lib\servlet.jar c:\jdk1.2.2\jre\lib\ext. <br>
建立一JSP网站<br>
现在到了将所有的JSP语法放在一起使用的时候了。我们将会建立一个具有输入格式的网站,让使用者来输入股票代号并且获得目前股票的价格(大约延迟20分钟)。如果有错误,则错误网页会显示。<br>
quote.jsp<br>
首先,以这段程序代码建立quote.jsp并且将它储存在JSWDK安装目录的网页目录里。网页的大部分内容是标准的HTML格式,而JSP程序代码分散各处。第6行是网页编辑器指引,指示将任何错误传送到errorPage.jsp档案。第13行到15行是小型指示码,基本上是说只有当"symbol"参数存在时才显示表格。这个if区段包含了第32行到34行的程序代码。第17行定义要使用的 JavaBean,而第18行从参数加载它的符号特性。第27行到29行指示显示豆子的特性。除了if区段之外,并没有其它的Java程序代码。<br>
errorPage.jsp<br>
接着,将下列的JSP原始码储存到网页目录下的档案errorPage.jsp.这是一个错误网页的暗示是在第一行,此行将网页编译器指引isErrorPage属性设为真。虽然前一页说明了错误网页在哪里,这页是说它是一个错误网页。JSP档案里其它特定的JSP程序代码是对内部例外对象的存取。此页只是显示它的值而已:<br>
<%@ page isErrorPage="true" %><br>
<html><br>
<head><br>
<title>Error Page</title><br>
</head><br>
<body><br>
<h1>Our Error Page</h1></font><br>
<!-- Print Exception --><br>
We got ourselves an exception:<br>
<%= exception %><br>
<a href="quote.jsp">Restart</a><br>
</body><br>
</html>.<br>
<span lang="EN-US" style="font-size:10.5pt;mso-bidi-font-size:12.0pt; font-family:"Times New Roman";mso-fareast-font-family:宋体;mso-font-kerning:1.0pt; mso-ansi-language:EN-US;mso-fareast-lang<br>
</p>
</table>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -