一、JSP是什么?
JSP(java server page)是一种java编写的服务器语言。
二、JSP的构成
JSP页面中包括指令标识、HTML代码、JavaScript代码、嵌入的Java代码、注释和JSP动作标识等内容。
三、指令标识
1.作用:设定整个JSP页面范围都有效的有关信息,被服务器解释并执行,客户端浏览器不可见。
2.语法格式:
<%@page language="java" contentType="text/html;charset=GB18030"pageEncoding="GB18030"%>
//tip:指令标识的<%@和%>是完整的标记,不能添加空格,但是标签中定义的属性与指令名是有空格的
3.Page指令(包括language,extends,import,pageEcoding等15个属性)
4.include指令
特点:该指令是静态包含,即包含文件中所有内容会被原样包含到JSP页面中,即使被包含文件中有JSP代码,在包含时也不会被编译执行。使用include指令,最终将生成一个文件,所以在被包含和包含的文件中,不能有相同名称的变量。
<%@ include file="path"%>
//该指令只有一个file属性,用于要包含的路径。该路径可以是相对路径,也可以是绝对路径。但是不可以通过<%=%>表达式所代表的文件。
5.taglib指令
<%@ taglib prefix='tagPrefix" url="tagURL"%>
四、脚本标识
1.JSP表达式
<%= 表达式%>
//可以是任意Java语言的完整表达式,该表达式的最终运算结果将被转换为字符串。
//tip:JSP表达式不仅可以插入到网页的文本中,用于输出文本内容,也可以插入到HTML标记中,用于动态设置属性。
2.声明标识
说明:服务器执行JSP页面时,会将JSP页面转换为Servlet类,在该类中会把使用JSP声明标识定义的变量和转换为类的成员变量和方法。
<%! 声明变量或方法的代码 %>
//tip:<%与!之间不可以有空格,但是!与其后面的代码之间可以有空格。另外,<%!与%>可以不在同一行。
3.代码片段
说明:代码片段就是在JSP页面中嵌入的Java代码或是脚本代码。
代码片段与声明标识的区别是,通过声明标识创建的变量和方法,在当前JSP页面中有效,它的生命周期从创建开始到服务器关闭结束;而代码片段创建的变量或方法,也是在当前JSP页面中有效,但它的生命周期是页面关闭后,就会被销毁。
五.JSP注释
1.HTML中的注释
2.带有JSP表达式的注释
3.隐藏注释
<%-- 注释内容 --%>
JSP编译时会忽略隐藏注释,所以即使隐藏注释中存在语法错误也不会影响程序的进行。
4.动态注释
六.动作标识
1.包含文件标识<jsp:include>
<jsp:include page="url" flush="false|true"/>
include与<jsp:include>的区别:
1.include指令通过file属性指定被包含的文件,并且file属性不支持任何表达式;<jsp:include>动作标识通过page属性指定被包含的文件,而且page属性支持JSP表达式。
2.使用include指令时,被包含的文件内容会原封不动地插入到包含页中,然后JSP编译器再将合成后的文件编译成一个Java文件;使用<jsp:include>动作标识包含文件时,当该标识被执行时,程序会将请求转发到被包含的页面,并将执行结果输出到浏览器中,然后返回包含页继续执行后面的代码。因为服务器执行的是多个文件,所以JSP编译器会分别对这些文件进行编译。
3.include指令包含文件最终会生成一个文件,所以包含文件中不能重名的变量和方法;在应用<jsp:include>动作标识包含文件时,每个文件单独编译,所以在被包含文件和包含文件中重名的变量和方法是不相冲突的。
2.请求转发标识<jsp:forward>
<jsp:forward page="url">
3.传递参数标识<jsp:param>
<jsp:param name="参数名" value="参数值"/>