JSP标签
2015-05-30 10:37
405 查看
JSP注释
JSP注释用于标注在程序开发过程中的开发提示,它不会输出到客户端。
JSP注释的格式如下:
<%-- 注释内容 --%>
与JSP注释形成对比的是HTML注释,HTML注释的格式是:
<!-- 注释内容 -->
HTML的注释可以通过源代码查看到,但JSP的注释是无法通过源代码查看到的。这表明JSP注释不会被发送到客户端。
但有一点值得注意的是HTML注释无法阻止JAVA脚本的执行,如下:
<!--
<%System.out.println("hello!");%>
-->
<!--
<%out.println("hello!");%>
-->
HTML注释中的JAVA脚本会在服务器端算好,再被传送到客户端,只不过显示不出来而已。
JSP声明
JSP声明用于声明成员变量和方法。在JSP声明中声明成员变量和方法看起来很特别,似乎没有类的存在,只有方法定义和成员变量,方法和成员变量似乎可以脱离类独立存在。实际上,JSP声明将会转换成Servlet的成员变量或成员方法,因此JSP声明依然符合Java语法。
JSP声明的语法格式如下:
<%! 声明部分 %>
打开多个浏览器,甚至可以在不同的机器上打开浏览器来刷新该页面,将发现所有客户端访问的该JSP声明中定义的值是连续的,即所有客户端共享了同一个变量。这是因为:JSP页面会编译成一个Servlet类,每个Servlet在容器中只有唯一一个实例;在JSP中声明的变量是成员变量,成员变量只在创建实例时初始化,该变量的值将一直保存,直到实例销毁。由此我们要时刻禁戒着这个把一个变量声明为SERLET类的成员变量,因为这某些情况下会出现意料之外的事情发生。
JSP声明中独立存在的方法和变量,只是一种假象。
JSP脚本
JSP脚本的应用非常广泛,通常,Java代码必须通过JSP脚本嵌入HTML代码。因此,所有能在Java程序中执行的代码,都可以通过JSP脚本执行。
JSP脚本将转换成Servlet里 _ jspService方法的可执行性代码而且是放在try中。这意味着在JSP小脚本部分也可以声明变量,但在JSP脚本部分声明的变量是局部变量。
实际上不仅JSP小脚本部分会转换成_ jspService方法里的可执行性代码,JSP页面里的所有静态内容都将由_ jspService方法里输出语句来输出,这就是JSP脚本可以控制JSP页面中静态内容的原因。由于JSP脚本将转换成_ jspService方法里的可执行性代码,而Java语法不允许在方法里定义方法,所以JSP脚本里不能定义方法。
JSP表达式
JSP提供了一种输出表达式值的简单方法,输出表达式值的语法格式如下:
<%=表达式%>
看下面的JSP页面,该页面使用输出表达式的方式输出变量和方法返回值。
注意:输出表达式语法后不能有分号
JSP的PAGE指令
page指令,通常位于JSP页面的顶端,一个JSP页面可以使用多条page指令。page指令的语法格式如下:
<%@page
[language="Java"]
[extends="package.class"]
[import="package.class│package.*,…"]
[session="true│false"]
[buffer="none│8kb│size kb"]
[autoFlush="true│false"]
[isThreadSafe="true│false"]
[info="text"]
[errorPage="relativeURL"]
[contentType="mimeType[;charset=characterSet]"│"text/html;charSet=ISO8859-1"]
[isErrorPage="true│false"]
%>
下面依次介绍page指令各属性的意义:
language:声明当前JSP页面使用的脚本语言的种类,因为页面是JSP页面,该属性的值通常都是java,该属性的默认值也是java,所以通常无须设置。
extends:指定JSP页面编译所产生的Java类所继承的父类,或所实现的接口。
import:用来导入包。下面几个包是默认自动导入的,不需要显式导入。默认导入的包有:java.lang.*、javax.servlet.*、javax.servlet.jsp.*、javax.servlet.http.*。
session:设定这个JSP页面是否需要HTTP Session。
buffer:指定输出缓冲区的大小。输出缓冲区的JSP内部对象:out用于缓存JSP页面对客户浏览器的输出,默认值为8kb,可以设置为none,也可以设置为其他的值,单位为kb。
autoFlush:当输出缓冲区即将溢出时,是否需要强制输出缓冲区的内容。设置为true时为正常输出;如果设置为false,则会在buffer溢出时产生一个异常。
info:设置该JSP程序的信息,也可以看做其说明,可以通过Servlet.getServletInfo()方法获取该值。如果在JSP页面中,可直接调用getServletInfo()方法获取该值,因为JSP页面的实质就是Servlet。
errorPage:指定错误处理页面。如果本页面产生了异常或者错误,而该JSP页面没有对应的处理代码,则会自动调用该指令所指定的JSP页面。因为JSP内建了异常机制支持,所以JSP可以不处理异常,即使是checked异常。
isErrorPage:设置本JSP页面是否为错误处理程序。如果该页面本身已是错误处理页面,则通常无须指定errorPage属性。
contentType:用于设定生成网页的文件格式和编码方式,即MIME类型和页面字符集类型,默认的MIME类型是text/html;默认的字符集类型为ISO-8859-1。
JSP的7个动作指令
动作指令与编译指令不同,编译指令是通知Servlet引擎的处理消息,而动作指令只是运行时的脚本动作。编译指令在将JSP编译成Servlet时起作用;而处理指令通常可替换成JSP脚本,是JSP脚本的标准化写法。
JSP动作指令主要有如下7个:
jsp:forward:执行页面转向,将请求的处理转发到下一个页面(既可以转发给静态的HTML页面,也可以转发到动态的JSP页面,或者转发到容器中的Servlet)。
语法:<jsp:forward page="{relativeURL|<%=expression%>}"/>
or
<jsp:forward page="{relativeURL|<%=expression%>}">
{<jsp:param.../>}
</jsp:forward>
第二种语法用于在转发时增加额外的请求参数。增加的请求参数的值可以通过HttpServletRequest类的getParameter()方法获取。
jsp:param:用于传递参数,必须与其他支持参数的标签一起使用。param指令可以与以下3个指令结合使用:jsp:include,jsp:forward,jsp:plugin
语法: <jsp:param name="paramName" value="paramValue"/>
jsp:include:用于动态引入一个JSP页面。
jsp:plugin:用于下载JavaBean或Applet到客户端执行。
jsp:useBean:从scope中获得JavaBean实例,如果没有该实例就创建一个JavaBean实例。
语法:<jsp:useBean id="name" class="classname" scope="page│request│session│application" />
jsp:setProperty:设置JavaBean实例的属性值。
语法:<jsp:setProperty name="BeanName" proterty="propertyName" value="value"/>
jsp:getProperty:获得并输出JavaBean实例的属性值。
语法:<jsp:getProperty name="BeanName" proterty="propertyName" />
JSP注释用于标注在程序开发过程中的开发提示,它不会输出到客户端。
JSP注释的格式如下:
<%-- 注释内容 --%>
与JSP注释形成对比的是HTML注释,HTML注释的格式是:
<!-- 注释内容 -->
HTML的注释可以通过源代码查看到,但JSP的注释是无法通过源代码查看到的。这表明JSP注释不会被发送到客户端。
但有一点值得注意的是HTML注释无法阻止JAVA脚本的执行,如下:
<!--
<%System.out.println("hello!");%>
-->
<!--
<%out.println("hello!");%>
-->
HTML注释中的JAVA脚本会在服务器端算好,再被传送到客户端,只不过显示不出来而已。
JSP声明
JSP声明用于声明成员变量和方法。在JSP声明中声明成员变量和方法看起来很特别,似乎没有类的存在,只有方法定义和成员变量,方法和成员变量似乎可以脱离类独立存在。实际上,JSP声明将会转换成Servlet的成员变量或成员方法,因此JSP声明依然符合Java语法。
JSP声明的语法格式如下:
<%! 声明部分 %>
打开多个浏览器,甚至可以在不同的机器上打开浏览器来刷新该页面,将发现所有客户端访问的该JSP声明中定义的值是连续的,即所有客户端共享了同一个变量。这是因为:JSP页面会编译成一个Servlet类,每个Servlet在容器中只有唯一一个实例;在JSP中声明的变量是成员变量,成员变量只在创建实例时初始化,该变量的值将一直保存,直到实例销毁。由此我们要时刻禁戒着这个把一个变量声明为SERLET类的成员变量,因为这某些情况下会出现意料之外的事情发生。
JSP声明中独立存在的方法和变量,只是一种假象。
JSP脚本
JSP脚本的应用非常广泛,通常,Java代码必须通过JSP脚本嵌入HTML代码。因此,所有能在Java程序中执行的代码,都可以通过JSP脚本执行。
JSP脚本将转换成Servlet里 _ jspService方法的可执行性代码而且是放在try中。这意味着在JSP小脚本部分也可以声明变量,但在JSP脚本部分声明的变量是局部变量。
实际上不仅JSP小脚本部分会转换成_ jspService方法里的可执行性代码,JSP页面里的所有静态内容都将由_ jspService方法里输出语句来输出,这就是JSP脚本可以控制JSP页面中静态内容的原因。由于JSP脚本将转换成_ jspService方法里的可执行性代码,而Java语法不允许在方法里定义方法,所以JSP脚本里不能定义方法。
JSP表达式
JSP提供了一种输出表达式值的简单方法,输出表达式值的语法格式如下:
<%=表达式%>
看下面的JSP页面,该页面使用输出表达式的方式输出变量和方法返回值。
注意:输出表达式语法后不能有分号
JSP的PAGE指令
page指令,通常位于JSP页面的顶端,一个JSP页面可以使用多条page指令。page指令的语法格式如下:
<%@page
[language="Java"]
[extends="package.class"]
[import="package.class│package.*,…"]
[session="true│false"]
[buffer="none│8kb│size kb"]
[autoFlush="true│false"]
[isThreadSafe="true│false"]
[info="text"]
[errorPage="relativeURL"]
[contentType="mimeType[;charset=characterSet]"│"text/html;charSet=ISO8859-1"]
[isErrorPage="true│false"]
%>
下面依次介绍page指令各属性的意义:
language:声明当前JSP页面使用的脚本语言的种类,因为页面是JSP页面,该属性的值通常都是java,该属性的默认值也是java,所以通常无须设置。
extends:指定JSP页面编译所产生的Java类所继承的父类,或所实现的接口。
import:用来导入包。下面几个包是默认自动导入的,不需要显式导入。默认导入的包有:java.lang.*、javax.servlet.*、javax.servlet.jsp.*、javax.servlet.http.*。
session:设定这个JSP页面是否需要HTTP Session。
buffer:指定输出缓冲区的大小。输出缓冲区的JSP内部对象:out用于缓存JSP页面对客户浏览器的输出,默认值为8kb,可以设置为none,也可以设置为其他的值,单位为kb。
autoFlush:当输出缓冲区即将溢出时,是否需要强制输出缓冲区的内容。设置为true时为正常输出;如果设置为false,则会在buffer溢出时产生一个异常。
info:设置该JSP程序的信息,也可以看做其说明,可以通过Servlet.getServletInfo()方法获取该值。如果在JSP页面中,可直接调用getServletInfo()方法获取该值,因为JSP页面的实质就是Servlet。
errorPage:指定错误处理页面。如果本页面产生了异常或者错误,而该JSP页面没有对应的处理代码,则会自动调用该指令所指定的JSP页面。因为JSP内建了异常机制支持,所以JSP可以不处理异常,即使是checked异常。
isErrorPage:设置本JSP页面是否为错误处理程序。如果该页面本身已是错误处理页面,则通常无须指定errorPage属性。
contentType:用于设定生成网页的文件格式和编码方式,即MIME类型和页面字符集类型,默认的MIME类型是text/html;默认的字符集类型为ISO-8859-1。
JSP的7个动作指令
动作指令与编译指令不同,编译指令是通知Servlet引擎的处理消息,而动作指令只是运行时的脚本动作。编译指令在将JSP编译成Servlet时起作用;而处理指令通常可替换成JSP脚本,是JSP脚本的标准化写法。
JSP动作指令主要有如下7个:
jsp:forward:执行页面转向,将请求的处理转发到下一个页面(既可以转发给静态的HTML页面,也可以转发到动态的JSP页面,或者转发到容器中的Servlet)。
语法:<jsp:forward page="{relativeURL|<%=expression%>}"/>
or
<jsp:forward page="{relativeURL|<%=expression%>}">
{<jsp:param.../>}
</jsp:forward>
第二种语法用于在转发时增加额外的请求参数。增加的请求参数的值可以通过HttpServletRequest类的getParameter()方法获取。
jsp:param:用于传递参数,必须与其他支持参数的标签一起使用。param指令可以与以下3个指令结合使用:jsp:include,jsp:forward,jsp:plugin
语法: <jsp:param name="paramName" value="paramValue"/>
jsp:include:用于动态引入一个JSP页面。
jsp:plugin:用于下载JavaBean或Applet到客户端执行。
jsp:useBean:从scope中获得JavaBean实例,如果没有该实例就创建一个JavaBean实例。
语法:<jsp:useBean id="name" class="classname" scope="page│request│session│application" />
jsp:setProperty:设置JavaBean实例的属性值。
语法:<jsp:setProperty name="BeanName" proterty="propertyName" value="value"/>
jsp:getProperty:获得并输出JavaBean实例的属性值。
语法:<jsp:getProperty name="BeanName" proterty="propertyName" />
相关文章推荐
- JS截取字符串常用方法详细整理
- JavaScript提升(你不知道的JavaScript)
- JavaScript提升(你不知道的JavaScript)
- JavaScript内置对象
- js学习-文本框
- 在webform中调用JS的技巧
- Javascript实现div层渐隐效果的方法
- javascript:void(0)与href=#的区别
- 移动开发中用到的几款js插件之触控插件(2)
- JavaScript内部类和系统函数
- ★JS的调用技巧★
- [ javascript ] 反射与依赖注入!
- 初学Ext Js 5之二-------用sencha cmd生成项目
- js获取鼠标点击事件的相对位置
- Web_JavaScript_JS客户端表单数据验证;
- jsp+servlet更改模板
- JavaScript获取事件对象和目标对象
- js常用函数、书写可读性的js、js变量声明...
- js对象, 数组 , json 互相转换
- javascript的前世今生