JSP入门-基本语法
在传统的HTML页面文件中嵌入脚本语言和JSP标签就构成了一个JSP页面文件。一个JSP页面文件可由5种元素组合而成:
HTML页面内容
JSP注释
JSP指令
JSP脚本元素
JSP动作元素
(1)JSP注释
一种是HTML注释,可以在客户端显示,一种是JSP注释,不能在客户端显示。
① HTML注释:<!--注释内容-->
② JSP注释:<%--注释内容-->
③ 在JSP脚本元素中还可以使用Java注释,该注释同样不会在HTML源代码中显示。
(2)JSP指令
page指令
include指令
taglib指令
① page指令:又称为页面指令,用来定义JSP页面的全局属性,该配置会作用于整个JSP页面。page指令用来指定所使用的脚本语言、导入指定的类及软件包等。
格式:<%@ page 属性1=“属性值1” 属性2=“属性值2”...%>
② include指令:文件加载指令,用于在JSP文件中插入一个包含文本或代码的文件,它把文件插入后与原来的JSP文件合并成一个新的JSP页面。
格式:<%@ include file=“被包含文件的地址”%>
③ taglib指令:用来引用标签库并设置标签库的前缀。这个指令允许JSP页面使用用户自定义的标签,它也可以为标签库命名,标签在这个库中定义。
格式:<%@ taglib uri=“tagLibraryURI” prefix=“tagPrefix”%>
(3)JSP脚本元素
① JSP声明语句:<%!变量或方法定义%> 这些变量在整个页面有效
② JSP表达式:<%=表达式%>,这个表达式必须能够求值,并且计算结果会以字符串形式发送到客户端显示出来。
③ JSP Scriptlet:<% Java代码%> 在其中声明的变量是JSP页面的局部变量,调用JSP Scriptlet时,会为局部变量分配内存空间,调用结束后,释放局部变量占有的内存空间。
(4)JSP动作元素
JSP动作元素用来控制JSP的行为,执行一些常用的JSP页面动作,通过动作元素可以实现使用多行Java代码能够实现的效果,如动态插入文件、重用JavaBean组件、自定义标签等。
① <jsp:include>动作元素
该动作元素提供了一种在JSP中包含页面的方式,既可以包含静态文件,也可以包含动态文件。
格式:<jsp:include page=“relative URL” flush=“true|false” />
page指定包含文件的URL地址,是一个相对路径
flush指定当缓冲区满时,是否将其清空,其默认值是false.
② <jsp:forward>动作元素
它是一种页面重定向的动作元素,它的作用是停止当前JSP页面的执行,而将客户端请求转交给另一个JSP页面。要注意转发和重定向的区别,转发是在服务器端进行的,不会引起客户端的二次请求,因此浏览器不会发生任何变化,效率也比重定向高。
格式:<jsp:forward page=“转向页面的URL地址”/>
在<jsp:forward>之前的代码能够被执行,当执行到<jsp:forward>时会转向新页面,浏览器中显示的是新页面的执行效果,原JSP文件中位于<jsp:forward>之后的那些代码不再被执行。
③ <jsp:param>动作元素
是一种提供参数的附属动作元素,它以“名-值”对的形式为其他动作元素提供附加信息,一般与<jsp:include>、<jsp:forward>、<jsp:plugin>联合使用。
格式:<jsp:param name=“参数名字” value=“指定给param的参数值”>
④ <jsp:plugin>动作元素
它可以将服务器端的JavaBean或Applet下载到客户端执行。
⑤ <jsp:useBean>动作元素
该动作元素用来装载一个将在JSP页面中使用的JavaBean。
格式:<jsp:useBean id=“beanInstanceName” class=“classname” scope=“page|request|session|application”/>
⑥ <jsp:setProperty>动作元素
获得Bean实例后,便可以利用该动作元素来设置或修改Bean中的属性值。
格式:<jsp:setProperty name=“beanInstanceName” property=“propertyName” value=“value”/>
在使用该动作元素之前必须使用<jsp:useBean>先声明Bean,同时他们所使用的Bean实例名也应该匹配。
⑦ <jsp:getProperty>动作元素
该动作元素用来提取指定的Bean属性的值,并将其转换成字符串,然后输出。
格式:<jsp:property name=“beanInstanceName” property=“propertyName”/>