JSP注释
1、客户端注释:<!-- 客户端注释[<%=表达式%>] -->
2、服务器端注释 : <-- JSP页面注释 --> 或者 <%/* JSP页面注释 --*/%>
注意:在JSP注释中不可以出现“--%>”,否则会出现编译错误。一定要出现,需要使用“--%\>”替代。
JSP声明
<%! 声明代码 %>
JSP代码段
<% 代码段 %>
JSP表达式
<%=变量或表达式%>
注意:不能使用“;”作为表达式结束符号,声明中需要用分号来结尾。
表达式元素可以是任何有效形式的java表达式。
JSP指令
page指令:
<%@ page attribute1="value1" attribute2="value2"... %>
针对当前页面,能够控制从JSP页面生成的Servlet的属性和结构。
作用范围:整个JSP页面,但不能作用于动态的包含文件。
include指令
<%@ include file="文件路径" %> file:指向需要引用的HTML页面或JSP页面。
file指定的页面路径必须是相对路径。如果路径以“/”开头,那么路径等同于参照JSP应用的上下文关系路径;
如果路径以文件名或者目录名开头,那么路径就是当前JSP文件所在的路径;
JSP的静态包含指令,可将一个外部文件包含到此JSP程序中。
在include指令中,包含页面和被包含页面同一类型的参数不能被定义两次。
作用:通常用来包含网站中经常出现的重复性页面,被包含文件中的任何一部分改变了,所有包含该文件的主JSP文件都需要重新进行编译。
taglib指令
<%@ taglib (uri="tagLibraryURI" | taglib="tagDir") prefix="tagPrefix" %>
允许页面使用用户自定义的标签。
uri属性:用来指定自定义标签库的存放位置。
tagdir属性:指示前缀(prefix)将被用于标识安装在/WEB-INFO/tags/目录或其子目录下的标签文件,一个隐含的标签库描述符被使用。
prefix属性:定义一个prefix:tagname形式的字符串前缀,用于区分多个自定义标签。
JSP动作
运行时包含某个文件,若是JSP文件,则先执行,然后将执行结果包含进来。
<jsp:include page="relative URL | <% =expression %>" flush="true" />
page属性:指明被包含文件的相对路径,必须为当前web项目内的文件。
flush属性:指读入被包含文件前是否刷新缓冲区,一般设置为true(JSP默认值为false)
<jsp:include>动作可以包含动态或静态文件,可以同时处理,不需要判断文件类型。
动态文件:需要JSP引擎编译执行
静态文件:简单把文件内容加到主JSP页面中。
forward动作
<jsp:forward>动作用于将用户的请求重定向到其他页面,即停止当前JSP页面执行,将客户端的请求转交给另一个JSP页面。
<jsp:forward page="重定向页面的URL">
page属性:页面相对地址,其值可以是静态的字符串,也可以是计算类型。
<jsp:forward>动作把当前页面A重新导向页面B,客户端看到的地址是A 页面的地址,实际显示的是B页面的内容。
param动作
<jsp:param>动作是用来提供参数信息的。
<jsp:param name="参数名" value="参数值">
name属性:即参数的名称。
value属性:即参数值,这个参数值可以用于页面间的数据传递。
<jsp:plugin>动作是用于在客户端浏览器中执行一个Bean或显示一个Applet,这种显示需要浏览器的java插件。
JSP异常
JspError
JSP文件转换成Servlet文件时,出现的错误称为“转换期错误”。一般是语法错误。
JSPException
编译后的Servlet Class文件,在处理request请求 时,由于逻辑上的错误而导致“请求期异常”。
include指令和<jsp:include>有什么区别?
都是用来包含文件的,但原理和发生包含文件的时刻不同。
1、include指令是在JSP页面转化成Servlet时,即编译时包含,包含的是源代码。
2、<jsp:include>动作是在页面被请求访问时,即运行时包含,并且只包含运行结果。其包含文件的变化总会被检测到,更适合包含动态文件。
forward动作指令和HTML中的<a></a>超链接的区别?
<a></a>超链接:通过点击超链接,浏览器地址栏中地址会变化。
forward动作:通过java代码控制,浏览器地址栏中地址不会变化,传递的参数也不会在浏览器地址栏中显示。