JSP的基本构成
JSP页面主要由指令标签,注释,嵌入Java代码,JSP动作标签,HTML标记语言等五个元素组成。
【1】指令标签
1.1 page指令
<%@ page attr1=”value1” atrr2=”value2”.......%>
page指令的常用属性如下:
(1) language属性 该属性用于设置JSP页面使用的语言,目前只支持Java语言。例:<%@
page language=”java” %>
(2) extends属性 该属性用于设置JSP页面所继承的Java类,JSP和Servlet都可以继承指定的父类,但该属性并不常用.
(3) import属性 该属性用于设置JSP所导入的类包,JSP页面可以嵌入Java代码片段,这些Java代码在调用API时需要导入相应的类包。例:<%@page
import=”java.util.*” %>
(4) pageEncoding属性 该属性用于定义JSP页面的编码格式,指定的文件编码格式。例:<%@
page pageEncoding=”UTF-8” %>
(5) contentType属性 该属性用于设置JSP页面的MIME类型和字符编码,浏览器会根据些解释页面。
例:<%@ page contentType=”text/html;charset=utf-8” %>
(6) session属性 该属性用于定义JSP页面是否使用session会话对象,其值是boolean类型,默认值为true.
Eg:<%@ page session=”true” %>
(7) buffer属性 该属性用于设置out对象所使用的缓冲区大小,默认大小是8KB,单位只能是8的倍数。
Eg:<%@ page buffer=”128KB” %>
(8) autoFlush属性 该属性用于定义JSP页面缓冲存满时是否自动刷新缓存。默认值为true,如果设置为false,则缓存填满时可能会发生异常.
Eg:<%@ page autoFlush=”true” %>
(9) info属性 该属性用于设置JSP页面的一些相关信息,信息可以在Servlet接口的getServletInfo()方法中获取得到。Eg:<%@page
info=”This is a JSP” %>
(10) isErrorPage属性 该属性可以将当前页面定义为错误页面来处理另一个页面转发而来的错误,即异常处理。设置为true以后可以使用exception对象.
(11)errorPage属性 该属性用于定义此JSP页面发生错误时所转发到的另外一个JSP页面,用于处理此页面所发生的错误。
Eg:<%@page errorPage=”error.jsp” %>
(12)isELIgnored属性 该属性用于定义些页面是否忽略EL表达式的使用。
1.2 include指令
Include指令用于文件包含,该指令可以在一个JSP页面中包含另外一个文件中的内容,并且只能支持静态包含,意思是被包含文件的所有内容都被原样包含到时该JSP页面中,被包含的文件可以是一段Java代码,HTML代码,或者是另一个JSP页面。Eg:<%@include
file=”other.jsp” %>
1.3 taglib指令
taglib指令用于加载用户自定义标签,使用此指令后可以直接在JSP页面使用自定义标签。类似于JSTL标签,就必须采用此指令.
Eg:<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
【2】JSP语法相关
2.1 代码片段
在JSP页面嵌入Java代码,必须满足语法:<%
%>要将Java代码片段写在这两个标签这中,可以编写单行或者多行的Java代码.
Eg:<% Date now=new Date();%>
2.2 变量声明
声明用于定义JSP页面的全局变量,它们可以被整个JSP页面访问,例如:定义全局变量<%!
Long startTime=System.nanoTime();%>
2.3 JSP表达式
JSP表达式:<%=表达式
%>可以直接把Java代码的表达式结果输出到JSP页面中。类似于out对象的输出功能。Eg:<%=Math.PI()%>;
【3】JSP注释-HTML注释
HTML注释:<!--注释文本-->
JSP注释:<%--注释文本-->
JSP动态注释:<!--<%=new Date()%>-->
【4】JSP动作标签
4.1 JSP包含标签<jsp:include>
这个动作标签可以将另外一个文件内容包含到时当前JSP页面中,被包含的页面可以是静态的也可以是动态代码。语法如下:
<jsp:include page=”url” flush=”false|true”>子标签</jsp:include>
Page:该属性用于指定被包含文件的相对路径.
Flush:可选参数,用于设置是否刷新缓冲区,如果为true,则在当前页面输出使用了缓冲区的情况下,将先刷新缓冲区,然后再执行包含操作。
Warning:被包含的页面中不要使用<html><body>标签,会破坏JSP页面结构。
4.2 JSP转发标签<jsp:forward>
这个动作标签是请求转发标签,可以将当前页面的请求转发级其他Web资源,可以是JSP页面,HTML页面,Servlet等。并且当前页面可以不对请求进行处理。语法如下:<jsp:forward
page=”url”>子标签</jsp:forward>
4.3 JSP参数标签<jsp:param>
该标签可以作为其他标签的子标签,为其它标签传递参数。语法如下:<jsp:param name=”paramName” value=”paramValue”/>
Name:用于设定参数名称.
Value:用于设定对应参数的值.
4.4 操作JavaBean的动作标签
4.4.1 <jsp:useBean>标签
用于在JSP页面中创建一个JavaBean实例,并通过属性设置将此实例存放在JSP指定范围内。语法如下:
<jsp:useBean id=”变量名” scope=”page|request|session|application”{
Class=”完整类名” type=”数据类型” beanName=””}/>
Id:用于定义一个变量名,JavaBean的代号名字,通过这个对它进行引用。
Scope:设置JavaBean的作用范围,默认为page.
Class:指定JavaBean的完整类名(包名与类名完全结合的方式)。
Type:指定id属性定义的变量类型。
BeanName:指定完整类名,不能与class同时使用.
4.4.2 <jsp:setProperty>标签
用与对JavaBean属性赋值,但JavaBean的属性要提供setXXX()方法。语法如下:
<jsp:setProperty name=”实例名” property=”*”|property=”属性名”|property=”属性名” param=”参数名”|property=”属性名” value=”值” />
Name:指定JavaBean的引用名称.
Property:指定JavaBean中的属性名。
Param:指定JSP请求中的参数名,通过该参数可以将JSP请求参数赋给JavaBean的属性。
Value:指定一个属性值。
4.4.3 <jsp:getProperty>标签
<jsp:getProperty>用于获取JavaBean中的属性值,要求属性必须具有getXXX()方法。
<jsp:getProperty name=”实例名” property=”属性名” />
Name:指定某一范围的JavaBean实例的引用。
Propertyl:指定JavaBean属性名称.