`
fulerbakesi
  • 浏览: 562135 次
文章分类
社区版块
存档分类
最新评论

JSP及语法概要

 
阅读更多
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直接发送到客户端。此外,模板文本也可以用任何现有的页面制作工具来编写。

   唯一的例外在于,如果要输出“<%”,则模板文本中应该写成“<\%”。
分享到:
评论

相关推荐

    JSP及语法概要很详细的介绍了JSP加代码

    JSP及语法概要JavaServer Pages(JSP)使得我们能够分离页面的静态HTML和动态部分。HTML可以用任何通常使用的Web制作工具编写,编写方式也和原来的一样;动态部分的代码放入特殊标记之内,大部分以“”开始,以“%>...

    十一、JSP及语法概要

    11.1 概述 JavaServer Pages(JSP)使得我们能够分离页面的静态HTML和动态部分。HTML可以用任何通常使用的Web制作工具编写,编写方式也和原来的一样;动态部分的代码放入特殊标记之内,大部分以“”开始,以“%>”...

    JSP 程序设计从入门到精通 PDF 教程

     1.3.2 JSP语法概要 15  1.3.3关于模板文本(静态HTML) 16  1.4 运行第一个Jsp程序 16  1. 5本章小结 20  第2章Jsp 基础学习 20  2.1 JSP基本语法 20  2.1.1 JSP 语法之声明 21  2.1.2 JSP 语法之...

    JSP基础教程.doc

    6 JSP语法概要 6 6.1 HTML 注释 6 6.2 隐藏注释 6 6.3 声明 7 6.4 表达式 8 6.5 Scriptlet 9 6.6 Page 指令 10 6.7 Taglib 指令 11 6.8 <jsp:forward> 12 6.9 <jsp:getProperty> 13 6.10 <jsp:include> 14 6.11 ...

    JSP(WEB 开发技术)实验指导

    实验三 JSP 基本语法 8 1.实验目的 : 8 2.实验内容: 8 实验四 处理客户端请求 15 1.实验目的: 15 2.实验内容 : 15 实验五 会话跟踪处理 18 1.实验目的: 18 2.实验内容: 18 3.作业: 20 实验六 基本 Servlet ...

    JSP动态网站开发基础教程与实验指导(从基础到应用)光盘

    1.1.1 JSP的形成及发展 1 1.1.2 JSP的优势 2 1.2 Servlet技术 4 1.3 JSP与CGI、PHP、ASP/ASP.NET的比较 5 1.3.1 CGI技术 5 1.3.2 PHP技术 6 1.3.3 ASP/ASP.NET技术 7 1.3.4 各种Web技术性能比较 9 1.4 JSP技术架构 9...

    java的概要介绍与分析

    对于初学者,有大量的入门教程和在线课程,如Oracle官方教程、Codecademy和W3Schools等,它们提供了Java编程的基本概念、语法和常用API的介绍。 对于希望深入学习Java的开发者,有专业的书籍和高级课程可供选择。...

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    DTD是"有效XML文档"的必须文件,我们通过DTD文件来定义文档中元素和标识的规则及相互关系。如何建立一个DTD文件呢?让我们一起来学习: 1.设置元素 元素是XML文档的基本组成部分。你要在DTD中定义一个元素,然后...

    Struts2 in action中文版

    6.2.1 Struts 2标签API语法 113 6.2.2 使用OGNL设置标签属性 115 6.3 数据标签 117 6.3.1 property标签 117 6.3.2 set标签 118 6.3.3 push标签 119 6.3.4 bean标签 120 6.3.5 action标签 122 6.4 控制标签 124 6.4.1...

    软件工程-理论与实践(许家珆)习题答案

    ● 设计(包括概要设计和详细设计,将系统分解为模块); ● 编程(用程序语言实现每个模块,简单容易); ● 测试(发现并改正错误,分为模块测试、集成测试和系统联调三级); ● 运行维护(扩充功能、纠错等)。 ...

Global site tag (gtag.js) - Google Analytics