JSP程序的基本结构
JSP指令
JSP指令的语法结构:
<%@ 指令名 属性1=“属性值1” 属性2=“属性值2”%>
1.page指令
page指令用于设置页面的各种属性,如导入包,指明输入内容类型,控制session等,page指令一般位于JSP页面开头,一个JSP页面可以包含多条page指令。
language | 设定JSP页面使用的脚本语言。 |
extends | 此JSP页面生成的Servlet的父类 |
import | 指定导入的Java软件包或类名列表。如果有多个类,中间用逗号隔开 |
session | 设定JSP页面是否使用session对象。值为“true|false”,默认为true |
buffer | 设定输出的流是否有缓冲区。 |
autoFlush | 设定输出流的缓冲区是否要自动清除 |
info | 主要表示此JSP网页的相关信息 |
errorPage | 设定JSP页面发生异常时重新指定的页面URL |
isErrorPage | 指定此JSP页面是否为处理异常错误的页面。 |
contentType | 指定MIME类型和JSP页面的编码方式 |
pageEncoding | 指定JSP页面的编码方式 |
isThreadSafe | 设定JSP页面生成的Servlet是否实现SingleThreadModel接口 |
isELlgnored | 指定JSP页面是否忽略EL表达式。 |
1、1pageEncoding和contentType属性
pageEncoding属性用来设置JSP页面字符的编码。contentType属性用来设置JSP页面的MIME类型和字符编码,浏览器会根据此显示网页内容。这两种属性都可以用来设置字符编码集类型,同时使用时要保持编码一致。
2、import属性
import属性可以在当前的JSP页面引入JSP脚本代码中需要的其它类在需要引入多个类或包时,可以在中间用逗号隔开或使用多个page指令。
<%@ page import="java.io.*,java.util.Date"%>
或者
<%@ page import="java.io.*"%>
<%@ page import="java.util.Date.*"%>
2.include指令
include指令用于当前JSP中包含其他文件,被包含的文件可以是JSP、HTML或文本文件。
<%@ include file="文件的相对路径"%>
3.taglib指令
taglib指令用于指定JSP页面所有的标签库,一般格式为:
<%@ taglib uri="标签库URL" prefix="标签前缀"%>
JSP脚本程序
JSP脚本程序指的是在JSP页面中嵌入标签<% %>之间的Java代码,脚本程序可以卸载JSP页面的任何位置,JSP脚本程序可以包含一行或多行Java语句,也可以实现一个功能或多个功能。
JSP表达式
JSP中提供了一种可以用来实现输出的标签<%= %>,称为JSP表达式,其使用格式为:<%=变量或可以返回值的方法或Java表达式 %>。JSP表达式可以嵌入多种HTML标签的属性中,例如:
<input type="text" name="<%=变量或表达式%>" value="<%=变量或表达式%>"/>
<a href="<%=变量名或表达式%>">单击</a>
JSP声明标识
JSP声明标识指的是写在标签<%! %>中的Java代码。在声明标识中可以指定变量、常量,还可以用来定义函数,在声明标识中定义的变量的作用范围是当前页面,生存时间是服务器的运行期间。在脚本程序中定义的变量的作用范围是当前页面,生存时间是页面的一次打开和关闭,另外在脚本程序中只能进行函数的调用,不能进行函数的定义。
JSP注释
1.HTML的注释方法:
<!--add your comments here-->
2.JSP注释标记:
<%--
add your comments here
--%>
3.在JSP脚本中使用注释:
<%
//注释一行
/*注释多行*/
%>
JSP标准动作简介
1.JSP:include动作
<jsp:include>标签标识包含一个静态的或者动态的文件。
语法:
<jsp:include page="path(相对路径)" flush="true"/>
<jsp:include page="<%=path %>"></jsp:include>
<jsp:param name="paramName" value="param Value">中<jsp:param>子句可以传递一个或多个参数给动态文件。
jsp:include动作和include指令相比,主要有如下不同:
(1):include指令是直接包含源代码,<jsp:include>包含请求的HTML代码,并且支持JSP表达式和Struts应用中的请求模式。
(2):<jsp:include>元素请求代码时可以带参数,代码<jsp:param name="paramName" vaalue="param Value"/>,而<%@include>不可以带参数。
(3):<jsp:include>中的path属性中可以使用JSP表达式,而<%@include>中的file属性不能使用JSP表达式。
(4):从执行速度角度上讲,<%@include>比<jsp:include>请求速度快,因为<%@include>仅处理一个请求,而<jsp:include>处理两个请求。
2、jsp:forward动作
jsp:forward动作把请求转发到另外的页面,不能简单地等同于页面跳转。只有一个属性page,表示的是一个相对URL。page值可以直接给出,也可以使用JSP表达式。
<jsp:forward page="path"(为一个表达式,或者字符串)/>
或者
<jsp:forward page="path">
<jsp:param name="paramName"(指定参数名) value="param Value"(指定参数值,可以是一个或多个,参数被发送到动态文件。)/>...
</jsp:forward>
操作JavaBean所用到的三个标准动作
1、JavaBean概念及特点
Java Bean是一个可重复使用的软件部件。通过JavaBean可以无限扩充Java程序的功能,通过JavaBean的组合可以快速地生成新的应用程序。JavaBean实质上是一个Java类,但是必须:是公共的类、构造函数没有输入参数、属性必须声明为private,方法必须声明为public、用一组set方法设置内部属性、用一组get方法获取内部属性、是一个没有主方法的类、一般的Java类默认继承Object类,而JavaBean不需要这种继承、实现java.io.Serializable接口。
2、jsp:useBean标准动作
语法格式:
<jsp:useBean id="name"(指定该JavaBean实例的变量名) class="className"(指定JavaBean的类名) scope="scope"(指定JavaBean的作用范围)/>
或者
<jsp:useBean id="name" type="className"(指定JavaBean对象的类型,在查找已存在的JavaBean时使用) scope="scope"/>
其中scope指定JavaBean的作用范围可用的四个值:page(默认为page表明只应用于当前页面)、request(表明只能应用于当前请求)、session(表明应用于当前会话)、application(表明此JavaBean能应用于整个程序内)。
3、jsp:setProterty标准动作
用于设置JavaBean中的属性值,语法格式:
<jsp:setProtery name="id"(指定JavaBean对象名,与useBean标准动作的id相对应) property="属性名"(表示要设置JavaBean中的那个属性,如果全部都设置,则填写为*) value="值"(可选,用来指定JavaBean属性的值)/>
或
<jsp:setProperty name="id" property="属性名" param="参数名"(可选,用来指定哪个请求参数作为JavaBean的属性值)/>
4、jsp:getProperty标准动作
提取指定Bean属性的值,转换成字符串,然后输出。两个属性:name(指定JavaBean对象名,与useBean标准动作中的id相对应)、property(指定JavaBean中需要访问的属性名)。