一、JSP的页面组成
页面中包含指令标识、HTML代码、嵌入的JAVA代码和注释等内容;
1、指令标识
指令标识主要用于设定整个JSP页面范围内都有效的相关信息,它是被服务器解释执行的,不会产生任何内容输出到网页中。也就是说,指令标识对于客户端浏览器是不可见的。
JSP的指令标识的语法格式:
<%@ 指令名 属性1=“属性值” 属性2=“属性值”…..% >
指令名 :用于指定指令名称,在JSP中包含page、include、taglib3条指令。
用Eclipse 创建JSP文件时,在文件的最底端会默认添加一条指令,用于指定JSP所使用的语言、编码方式等:
<%@page language="java" contentType="text/html" charset=GB18030 pageEncoding="GB18030"%>
①page指令 用于定义整个JSP页面的相关属性,这些属性在JSP中被服务器解析成Servlet时会转换为相应的Java代码。Page指令包含的属性有15个:
(1)language属性
该属性用于设置JSP页面使用的语言,目前只支持Java。
<%@page language="java"%>
(2)extends属性
该属性用于设置JSP页面继承的Java类,所有JSP页面在执行之前都会被服务器解析为Servlet,而Servlet是由Java定义的,所以JSP和Servlet都可以继承指定的父类。
<%@ page extends="package.class" %>一般别去动
(3)import属性
该属性用于设置JSP导入的类包。JSP页面可以嵌入Java代码片段,这些Java代码在调用API时需要导入相应的类包。
<%@ page import="package.class" %>
<%@ page import="package.class1,...,package.classN" %>
(4)pageEncoding属性
该属性用于定义JSP页面的编码格式,也就是指定文件编码。JSP页面中的所有代码都是用该属性指定的字符集,如果该属性值设置为ISO-8859-1,那么JSP页面就不支持中文字符。通常设置编码格式为GBK,因为它可以显示简体中文和繁体中文。
<%@page pageEncoding="GB18030"%>
(5)contentType属性
该属性用于设置JSP页面的MIME类型和字符编码,浏览器会据此显示页面内容。
<%@page contentType="text/html"; charset="UTF-8">
(6)session属性
该属性指定JSP页面是否使用HTTP的session会话对象。其属性值是boolean类型,可选值为true或false。默认值为true,表示可以使用session会话对象;如果设置为false,则当前JSP页面将无法使用session会话对象。
<%page session="false"%>
(7)buffer属性
该属性用于设置JSP的out输出对象使用的缓冲区大小,默认值为8KB,且单位只能使用KB。
(8)autoFlush属性
该属性用于设置JSP页面缓存满时,是否自动刷新缓存。
<%@page autoFlush="true"%>
(9)isErrorPage属性
通过该属性可以将当前JSP页面设置成错误处理页面,已处理另一个JSP页面的错误,也就是异常处理。这意味着当前JSP页面业务的改变。
(10)errorPage属性
该属性用于指定处理当前JSP页面异常错误的另一个JSP页面,指定的JSP错误处理页面必须设置isErrorPage属性为true。errorPage属性的属性值是一个url字符串。
<%@page errorPage="url"%>
②include指令
文件包含指令include是JSP的另一条指令标识。通过该指令可以在一个JSP页面中包含另一个JSP页面。不过该指令是静态包含,也就是说被包含文件中所有内容会被原样包含到该JSP页面中,即使被包含文件中有JSP代码,在包含时也不会被编译执行。使用include指令,最终将生成一个文件,所以在被包含和包含文件中,不能有相同名称的变量。
<%@incliude file="path"%>
该指令只有一个file属性,用于指定要包含文件的路径。
③taglib指令
在JSP文件中,可以通过taglib指令标识声明该页面中所使用的标签库,同时引用标签库,并指定标签的前缀。在页面中引用标签库后,就可以通过前缀来引用标签库中的标签。
‘<%@taglib prefix="tagPrefix" url="tagURL"%>
prefix:用于指定标签的前缀。该前缀不能命名为jsp、jspx、java、javax、sun、servlet
url:用于指定标签库文件的存放位置。
2、脚本标识
JSP中的脚本标识包括3部分,即JSP表达式(Expression)、声明标识(Declaration)和脚本程序(Scriptlet)。通过这些标识,在JSP页面中可以像编写Java程序一样来声明变量、定义函数或进行各种表达式的运算。
①JSP表达式
JSP表达式用于向页面中输出信息,语法如下:
<%=表达式%> 向页面中输出信息时用到,声明和定义时不加等号!!!!
表达式可以是任何Java语言的完整表达式,该表达式的最终运算结果将被转换为字符串。JSP表达式不仅可以插入到网页的文本中,用于输出文本内容,也可以插入到HTML标记中,用于动态设置属性值。
②声明标识
声明标识用于在JSP页面中定义全局的变量或方法。通过声明标识定义的变量和方法可以被整个JSP页面访问。
格式如下:
<%! 声明变量或方法的代码%> 或
<%!
声明变量或方法的代码
%>
③代码片段
所谓代码片段,就是在JSP页面中嵌入的Java代码或是脚本代码。代码片段将在页面请求的处理期间被执行,通过Java代码可以定义变量或是流行控制语句等;而通过脚本代码可以应用JSP的内置对象在页面输出内容、处理请求和响应、访问session会话等。格式如下:
<% Java代码或脚本代码%>
3、JSP注释
①单行注释
单行注释以“//”开头,后面接注释内容。
//注释内容
②多行注释
多行注释以“/*”开头,以“*/”结束。在这个标识中间的内容为注释内容,并且注释内容可以换行。
/*
注释内容
注释内容
*/
③提示文档注释
提示文档注释在被javadoc文档工具生成文档时读取,文档是对代码结构和功能的描述。
/**
提示信息
提示信息
*/
④隐藏注释
隐藏注释不仅在浏览器中看不到,在查看HTML源代码时也看不到,所以这种注释的安全性比较高。
<%--注释内容--%>
⑤动态注释
由于HTML注释对JSP嵌入的代码不起作用,因此可以利用它们构成动态的HTML注释文本。
4、动作标识
①包含文件标识
jsp的动作标识
或
子动作标识
②请求转发标识
通过
格式:
<jsp:forward page=“url”>
或
<jsp:forward page=“url”>
子动作标识
</jsp:forward>
③传递参数标识<jsp:param>
jsp的动作标识
格式:
<jsp:param name=“参数名” value=“参数值”/>
value=" parameterValue" />
④内部对象的转发
Internal object response
二、JSP