JSP的一些简单语法
JSP页面是由元素和模版数据组成,元素必须由JSP容器处理的部分,而模版数据是JSP容器不处理的部分,如JSP中的HTML内容。在JSP2.0的规范中,元素有三种类型,指令元素,脚本元素和动作元素。
2.指令元素
2.1 page指令,该指令作用于整个JSP页面,定义了许多与页面相关的属性,这些属性被用于和JSP容器通讯。
2.2.1 language=”java” 该属性指定再脚本元素中使用的脚本语言。默认时java
2.2.2 extends=”className” 该属性指定JSP页面转化后的Servlet类从哪一个类继承。通常不需要指定,要完整的限定类名,可能会限制JSP容器为提升性能。
2.2.3 import=”importList”指定脚本中可以使用的类,如<%page import=”java.util.Vector,java.io.File”%>
import默认导入的列表时java.lang.*,javax.servlet.*,javax.servlet.jsp.*,javax.servlet.http.*
2.2.4 session=”true/false” 指定JSP页面中是否可以使用session,默认true
2.2.5 buffer=”none/sizekb” 指定out对象使用的缓冲区大小,如果设置为none,将不使用缓冲器,所有的输出直接通过servletResponse的printWriter对象输出。默认8kb。
2.2.6 autoFlush=”true/false” 该属性用于指定缓冲区满的时候,缓冲的输出是否应该自动刷新,默认为true,如果设为false,当溢出,一个异常会被抛出。
2.2.7 isThreadSafe=”true,false”,该属性用于指定JSP页面访问是否线性安全,默认是true,建议不再使用。
2.2.8 info=”info_text”,该属性用于指定页面相关的信息,该信息可以通过调用Servlet接口的getServletInfo()办法获得。
2.2.9 errorPage=”error_url”该属性表示当JSP页面发生异常时,将转向哪一个错误处理页面。如果该属性定义了,在web中将不会使用。
2.2.10 isErrorPage=”true,false”指定当前的JSP页面是否其他页面的处理页面。默认为false。
2.2.11 contentType=”text/html; charset=gb2312”表示指定相应的JSP页面的MIME类型和字符编码。
2.2.12 pageEncoding=”gbk”该属性可以覆盖contentType属性。
2.2.13 isELIgnored=”true/false”,该页面是否执行或忽略EL表达式。默认值取决于Servlet版本的格式。
2.2 include指令
2.2.1 《%@ include file=”date.jsp”%》,注意在被包含的页面中,最后不要有<html></html>,<body></body>等标签,影响到原来的标签,而且可能容易出错。
2.3 taglib指令
Taglib指令允许页面使用用户定制的标签,语法如下:
<%@ taglib(uri=”tagLibraryURL”|tagdir=”tagDir”) prefix=”tagPrefix”%>
3.脚本元素
3.1.声明格式为<%! Declarations() %>如<%! Int I;%>该声明只在该页面中有效。
3.2脚本端段<% %>
3.3 表达式 <%=%>表达式插入到当前的输出流中
4.动作元素
动作元素为请求处理阶段提供信息,在JSP2.0中定义了20个标准的动作元素。
4.1<jsp:useBean>,<jsp:setProperty><jsp:getProperty>这三个元素用于访问JavaBean。
<jsp:userBean id=”user” name=”user” property=”*”>
<jsp:setProperty name=”user” property=”*”/>
<jsp:setProperty name=”user” property=”email” param=”mail”/>
</jsp:userBan>
<jsp:userBean id=”user” scope=”session” class=””/>
<jsp:getProperty name=”user” property=”name”/>
param=”mail”请求过来的参数名称。
4.2 <jsp:param name=”name” value=”value”>这个动作被用于“名-值”的形式为其他标签提供附加信息。它和<jsp:include> <jsp:forward> <jsp:plugin>一起使用。
4.3 <jsp:include page=”url” flush=”true/false”> 这个动作用于当前页面中包含的静态和动态的资源。一旦被包括的页面执行完毕,请求处理将在调用页面中继续进行。格式如下:
<jsp:include page=”url” flush=”true,false”>
{<jsp:param…./>}
</ sp:include page=”url” flush=”true,false”> jsp:param为被包含的页面提供参数。
4.4<jsp:forward page=””>把当前的请求发送给另外一个资源。可以包含
<jsp:param />参数。
4.5<jsp:plugin> <jsp:params> 和<jsp:fallback>用来播放applet或java插件。
<jsp:plugin>下载插件,执行指定的applet或JavaBean。
<jsp:params>为applet提供参数。
<jsp:fallback>插件不能启动时,提示的出错信息。例如:
<jsp:plugin type=”applet” code=”xxx.class” width=”600” height=”400”>
<jsp:params>
<jsp:param name=”font” value=”楷体_GB2312”/>
</jsp:params>
<jsp:fallback>你的浏览器不支持插件</jsp:fallback>
</jsp:plugin>
4.6<jsp:element>动态定义一个XML元素的标签。有包含<jsp:attributee>和<jsp:body>如:
<jsp:element name=”employee”>
<jsp:attribute name=”name”>张三</jsp:attribute><jsp:body>经理</jsp:body>
</jsp:element>
执行后将产生一个元素
<employee name=”张三”>经理</employee>
4.7<jsp:attribute>该动作主要有两个用途,一是在XML元素的内容中定义一个动作属性的值,二是在<jsp:element>动作中使用,指定输入元素的属性。
<jsp:attribute name=”name” trim=”true/false”>
Optional body
</jsp:attribute> name指定元素的名称,trim元素内容空白是否被容器忽略。
<jsp:forward>
<jsp:attribute name=”page”>reg.jsp</jsp:attribute>
</jsp:forward>
它与<jsp:forward page=”reg.jsp”>是相同的。
4.8<jsp body>用于定义元素的内容。没有任何属性。
4.9 <jsp:text>用于封装模版数据,它的作用和在JSP页面中直接书写数据一样。
4.10 <jsp:output>只能在JSP文档和XML语法编写的标签文件中使用。
4.11<jsp:invoke> <jsp:doBody>只能在标签文件中使用。
4.12<jsp:root> <jsp:declaration> <jsp:scriptlet> <jsp:expression>只能在XML语法来描述JSP页面时使用。
5.注释
在JSP页面中,有两种注释,一是HTML注释,这种可以在客户端看到,另外一种是JSP页面本身的注释,通常是给程序员看到的。
5.1HTML注释 <!--coment-->
可以动态注释,如<!—1+1=<%=1+1%>-->
5.2JSP注释
<%--comments--%>
对代码功能进行注释。
6.JSP的隐含对象.
在JSP中的隐含对象有request,response,pageContext,session,application,
out,config,page,exception.
pageContext中提供了对其他隐含对象的办法。如getAttribute(),setAttribute()等。
Exception <%out.println(exception.getMessage());%>
7.对象的范围
Application在整个WEB应用程序运行期间都可以访问,所有的页面都可以访问这个对象。关掉浏览器,再打开都可以访问。
Session JSP为为一次会话,创建HttpSession对象,在会话期间,都可以访问这个对象,会话有时间的限制。过一段时间就不行了
Request 对每一次的请求有效。
Page只能在同一个页面,不可用在不同页面访问。
<%
pageContext.setAttribute(“name”,”zhangsan”);
%>
JSP页面是由元素和模版数据组成,元素必须由JSP容器处理的部分,而模版数据是JSP容器不处理的部分,如JSP中的HTML内容。在JSP2.0的规范中,元素有三种类型,指令元素,脚本元素和动作元素。
2.指令元素
2.1 page指令,该指令作用于整个JSP页面,定义了许多与页面相关的属性,这些属性被用于和JSP容器通讯。
2.2.1 language=”java” 该属性指定再脚本元素中使用的脚本语言。默认时java
2.2.2 extends=”className” 该属性指定JSP页面转化后的Servlet类从哪一个类继承。通常不需要指定,要完整的限定类名,可能会限制JSP容器为提升性能。
2.2.3 import=”importList”指定脚本中可以使用的类,如<%page import=”java.util.Vector,java.io.File”%>
import默认导入的列表时java.lang.*,javax.servlet.*,javax.servlet.jsp.*,javax.servlet.http.*
2.2.4 session=”true/false” 指定JSP页面中是否可以使用session,默认true
2.2.5 buffer=”none/sizekb” 指定out对象使用的缓冲区大小,如果设置为none,将不使用缓冲器,所有的输出直接通过servletResponse的printWriter对象输出。默认8kb。
2.2.6 autoFlush=”true/false” 该属性用于指定缓冲区满的时候,缓冲的输出是否应该自动刷新,默认为true,如果设为false,当溢出,一个异常会被抛出。
2.2.7 isThreadSafe=”true,false”,该属性用于指定JSP页面访问是否线性安全,默认是true,建议不再使用。
2.2.8 info=”info_text”,该属性用于指定页面相关的信息,该信息可以通过调用Servlet接口的getServletInfo()办法获得。
2.2.9 errorPage=”error_url”该属性表示当JSP页面发生异常时,将转向哪一个错误处理页面。如果该属性定义了,在web中将不会使用。
2.2.10 isErrorPage=”true,false”指定当前的JSP页面是否其他页面的处理页面。默认为false。
2.2.11 contentType=”text/html; charset=gb2312”表示指定相应的JSP页面的MIME类型和字符编码。
2.2.12 pageEncoding=”gbk”该属性可以覆盖contentType属性。
2.2.13 isELIgnored=”true/false”,该页面是否执行或忽略EL表达式。默认值取决于Servlet版本的格式。
2.2 include指令
2.2.1 《%@ include file=”date.jsp”%》,注意在被包含的页面中,最后不要有<html></html>,<body></body>等标签,影响到原来的标签,而且可能容易出错。
2.3 taglib指令
Taglib指令允许页面使用用户定制的标签,语法如下:
<%@ taglib(uri=”tagLibraryURL”|tagdir=”tagDir”) prefix=”tagPrefix”%>
3.脚本元素
3.1.声明格式为<%! Declarations() %>如<%! Int I;%>该声明只在该页面中有效。
3.2脚本端段<% %>
3.3 表达式 <%=%>表达式插入到当前的输出流中
4.动作元素
动作元素为请求处理阶段提供信息,在JSP2.0中定义了20个标准的动作元素。
4.1<jsp:useBean>,<jsp:setProperty><jsp:getProperty>这三个元素用于访问JavaBean。
<jsp:userBean id=”user” name=”user” property=”*”>
<jsp:setProperty name=”user” property=”*”/>
<jsp:setProperty name=”user” property=”email” param=”mail”/>
</jsp:userBan>
<jsp:userBean id=”user” scope=”session” class=””/>
<jsp:getProperty name=”user” property=”name”/>
param=”mail”请求过来的参数名称。
4.2 <jsp:param name=”name” value=”value”>这个动作被用于“名-值”的形式为其他标签提供附加信息。它和<jsp:include> <jsp:forward> <jsp:plugin>一起使用。
4.3 <jsp:include page=”url” flush=”true/false”> 这个动作用于当前页面中包含的静态和动态的资源。一旦被包括的页面执行完毕,请求处理将在调用页面中继续进行。格式如下:
<jsp:include page=”url” flush=”true,false”>
{<jsp:param…./>}
</ sp:include page=”url” flush=”true,false”> jsp:param为被包含的页面提供参数。
4.4<jsp:forward page=””>把当前的请求发送给另外一个资源。可以包含
<jsp:param />参数。
4.5<jsp:plugin> <jsp:params> 和<jsp:fallback>用来播放applet或java插件。
<jsp:plugin>下载插件,执行指定的applet或JavaBean。
<jsp:params>为applet提供参数。
<jsp:fallback>插件不能启动时,提示的出错信息。例如:
<jsp:plugin type=”applet” code=”xxx.class” width=”600” height=”400”>
<jsp:params>
<jsp:param name=”font” value=”楷体_GB2312”/>
</jsp:params>
<jsp:fallback>你的浏览器不支持插件</jsp:fallback>
</jsp:plugin>
4.6<jsp:element>动态定义一个XML元素的标签。有包含<jsp:attributee>和<jsp:body>如:
<jsp:element name=”employee”>
<jsp:attribute name=”name”>张三</jsp:attribute><jsp:body>经理</jsp:body>
</jsp:element>
执行后将产生一个元素
<employee name=”张三”>经理</employee>
4.7<jsp:attribute>该动作主要有两个用途,一是在XML元素的内容中定义一个动作属性的值,二是在<jsp:element>动作中使用,指定输入元素的属性。
<jsp:attribute name=”name” trim=”true/false”>
Optional body
</jsp:attribute> name指定元素的名称,trim元素内容空白是否被容器忽略。
<jsp:forward>
<jsp:attribute name=”page”>reg.jsp</jsp:attribute>
</jsp:forward>
它与<jsp:forward page=”reg.jsp”>是相同的。
4.8<jsp body>用于定义元素的内容。没有任何属性。
4.9 <jsp:text>用于封装模版数据,它的作用和在JSP页面中直接书写数据一样。
4.10 <jsp:output>只能在JSP文档和XML语法编写的标签文件中使用。
4.11<jsp:invoke> <jsp:doBody>只能在标签文件中使用。
4.12<jsp:root> <jsp:declaration> <jsp:scriptlet> <jsp:expression>只能在XML语法来描述JSP页面时使用。
5.注释
在JSP页面中,有两种注释,一是HTML注释,这种可以在客户端看到,另外一种是JSP页面本身的注释,通常是给程序员看到的。
5.1HTML注释 <!--coment-->
可以动态注释,如<!—1+1=<%=1+1%>-->
5.2JSP注释
<%--comments--%>
对代码功能进行注释。
6.JSP的隐含对象.
在JSP中的隐含对象有request,response,pageContext,session,application,
out,config,page,exception.
pageContext中提供了对其他隐含对象的办法。如getAttribute(),setAttribute()等。
Exception <%out.println(exception.getMessage());%>
7.对象的范围
Application在整个WEB应用程序运行期间都可以访问,所有的页面都可以访问这个对象。关掉浏览器,再打开都可以访问。
Session JSP为为一次会话,创建HttpSession对象,在会话期间,都可以访问这个对象,会话有时间的限制。过一段时间就不行了
Request 对每一次的请求有效。
Page只能在同一个页面,不可用在不同页面访问。
<%
pageContext.setAttribute(“name”,”zhangsan”);
%>