时间: 2021-07-31 作者:daque
11.1 概括 javaserver pages(jsp)使得咱们不妨辨别页面包车型的士静态html和动静局部。html不妨用任何常常运用的web创造东西编写,编写办法也和从来的一律;动静局部的代码放入特出标志之内,大局部以“<%”发端,以“%>”中断。比方,底下是一个jsp页面包车型的士片断,即使咱们用http://host/orderconfirmation.jsp?title=core+web+programming这个url翻开该页面,则截止表露“thanks for ordering core web programming”。 thanks for ordering <i><%= request.getparameter("title") %></i> jsp页面文献常常以.jsp为扩充名,并且不妨安置就任何不妨寄存普遍web页面包车型的士场合。固然从代码编写来看,jsp页面更象普遍web页面而不象servlet,但本质上,jsp最后会被变换成正轨的servlet,静态html径直输入到和servlet service本领关系的输入流。 jsp到servlet的变换进程普遍在展示第一次页面乞求时举行。所以,即使你蓄意第一个用户不会因为jsp页面变换成servlet而等候太长的功夫,蓄意保证servlet仍旧精确地编写翻译并承载,你不妨在安置jsp页面之后本人乞求一下这个页面。 其余也请提防,很多web效劳器承诺设置别号,以是一个看上去指向html文献的url本质上大概指向servlet或jsp页面。 除去普遍html代码除外,嵌入jsp页面包车型的士其余因素重要犹如下三种:剧本元素(scripting element),训令(directive),举措(action)。剧本元素用来嵌入java代码,那些java代码将变成变换获得的servlet的一局部;jsp训令用来从完全上遏制servlet的构造;动效率来引入现有的组件大概遏制jsp引擎的动作。为了简化剧本元素,jsp设置了一组不妨径直运用的变量(预订义变量),比方前方代码片断中的request即是个中一例。 提防正文以jsp 1.0典型为普通。和0.92版比拟,新本子的jsp作了很多宏大的变换。固然那些变换只会使jsp变得更好,但应提防1.0的jsp页面简直和早期的jsp引擎实足不兼容。 11.2 jsp语法大纲表 jsp元素 语法 证明 备注 jsp表白式 <%= expression %> 计划表白式并输入截止。 等价的xml表白是: <jsp:expression> expression </jsp:expression> 不妨运用的预订义变量囊括:request,response,out,session,application,config,pagecontext。那些预订义变量也不妨在jsp scriptlet中运用。 jsp scriptlet <% code %> 插入到service本领的代码。 等价的xml表白是: <jsp:scriptlet> code </jsp:scriptlet> jsp证明 <%! code %> 代码被插入到servlet类(在service本领除外)。 等价的xml表白是: <jsp:declaration> code </jsp:declaration> page训令 <%@ page att="val" %> 效率于servlet引擎的全部性训令。 等价的xml表白是 <jsp:directive.page att="val"\>。 正当的属性如次表,个中粗体表白默许值: import="package.class" contenttype="mime-type" isthreadsafe="true|false" session="true|false" buffer="size kb|none" autoflush="true|false" extends="package.class" info="message" errorpage="url" iserrorpage="true|false" language="java" include训令 <%@ include file="url" %> 当jsp变换成servlet时,该当包括当地体例上的指定文献。 等价的xml表白是: <jsp:directive.include file="url"\>. 个中url必需是对立url。 运用jsp:include举措不妨在乞求的功夫(而不是jsp变换成servlet时)引入文献。 jsp解释 <%-- comment --%> 解释;jsp变换成servlet时被忽视。 即使要把解释嵌入截止html文书档案,运用普遍的html解释标志<-- comment -->。 jsp:include举措 <jsp:include page="relative url" flush="true"/> 当servlet被乞求时,引入指定的文献。 即使你蓄意在页面变换的功夫包括某个文献,运用jsp include训令。 提防:在某些效劳器上,被包括文献必需是html文献或jsp文献,简直由效劳器确定(常常按照文献扩充名确定)。 jsp:usebean举措 <jsp:usebean att=val*/> 大概 <jsp:usebean att=val*> ... </jsp:usebean> 探求或范例化一个java bean。 大概的属性囊括: id="name" scope="page|request |session|application" class="package.class" type="package.class" beanname="package.class" jsp:setproperty举措 <jsp:setproperty att=val*/> 树立bean的属性。既不妨树立一个决定的值,也不妨指定属性值来自乞求参数。 正当的属性囊括: name="beanname" property="propertyname|*" param="parametername" value="val" jsp:getproperty举措 <jsp:getproperty name="propertyname" value="val"/> 索取并输入bean的属性。 jsp:forward举措 <jsp:forward page="relative url"/> 把乞求转到其余一个页面。 jsp:plugin举措 <jsp:plugin attribute="value"*> ... </jsp:plugin> 按照欣赏器典型天生object大概embed标志,再不经过java plugin运转java applet。 11.3 对于沙盘文本(静态html) 很多功夫,jsp页面包车型的士很大学一年级局部都由静态html形成,那些静态html也称为“沙盘文本”。沙盘文本和普遍html简直实足沟通,它们都按照沟通的语规则则,并且沙盘文本也是被servlet径直发送给存户端。其余,沙盘文本也不妨用任何现有的页面创造东西来编写。 独一的不同在乎,即使要输入“<%”,则沙盘文本中该当写成“<\%”。