JSP页面的构成总结

JSP页面主要由指令标签、HTML标记语言、注释、嵌入的JAVA代码、JSP动作标签等组成。所有的JSP页面在执行之前会被服务器解析成servlet。

1.JSP指令标签

指令标签不会产生任何的输出内容到页面中,主要用来定义整个页面的相关信息。语法格式如下:

<%@directive attribute=”value”……>

其中:directive:指令的名称,可以为page、include和taglib其中的之一。

attribute:属性名称,不同的指令有不同的属性。

value:指定属性的属性值。

1.1 page指令

page指令用来定义整个页面的相关属性,语法为<%@page attribute1=”value1″ attribute2=”value”  …….%>

attribute1和attribute2的属性主要包含以下内容(具体有15个之多):

1)属性language,用来设置JSP页面的使用的语言。

例如:<%@page language=”java”%>

2)import设置JSP导入的类包。

<%@page import=”java.util.Date”%>

3)extends属性:设置JSP页面继承的Java类,该属性并不常用,有可能影响服务器的性能优化。

4)pageEncoding属性

该属性用来定义JSP页面的编码格式,指定文件的编码。JSP页面中的所有代码都使用该属性指定的字符集。例如:

<%@page pageEncoding=”UTF-8″ %>

5) contentType属性

该属性定义JSP页面的MIME(Multipurpose Internet Mail Extensions)类型和字符编码,浏览器会根据该属性显示网页内容。

<%@page contentTpye=”text/html;charset=UTF-8″ %>

6)session 属性

指定JSP页面是否使用http的session会话对象。属性值是boolean类型的。默认值是true。

<%@page session=”false” %>该例子中不使用session对象,任何对session的引用都会发生错误。

7)buffer属性

该属性用来设置out对象的使用缓冲区的大小,默认大小为8kb,且单位只能使用KB.<%@page buffer=”12kb” %>

8)autoFlush属性

用于设置JSP页面缓存满时,是否自动刷新缓存,默认值为true。

9)info属性

该属性用来设置jsp页面的相关信息,该信息可以在servlet接口的getServletInfo()方法中获取。

10)errorPage属性

该属性用来处理当前页面错误的指定页面,其属性值是一个url字符串,指定的错误处理页面的isErrorPage属性必须设置成true。

<%@page errorpage=”xxxx/xxx.jsp” %>

如果使用该属性,在web.xml中定义的错误处理页面都将被忽略,优先使用该属性定义的错误处理页面。

11)isErrorPage属性

该属性将当前页面设置成处理另一个页面的错误。

<%@page isErrorPage=”true” %>

12)IsELIgnored属性

该属性用于定义Jsp页面是否忽略EL表达式的使用。

1.2 include指令

该指令用于文件包含,它仅支持静态包含,在当前页面中更包含另一个文件的内容。如:

<%@ include file=”XXX.jsp” %>

被包含的文件会直接使用包含文件的设置。源文件和被包含文件的变量和方法的名称不要冲突,因为会生成一个文件,重名会导致错误发生。

1.3 taglib指令

该指令用来加载用户自定义的标签,格式如下:

<%@taglib prefix=”XXX” uri=”taglibUriValue.tld” %>

prefix:设置自定义标签的前缀。

uri:用于自定义标签的描述文件位置。

2.注释

2.1 HTML注释

格式:<!–  注释内容 –>
该注释可以在源代码中看到。不会显示到页面中。

2.2 JSP注释

格式: <%– 注释内容 –%>
该注释方式是被服务器编译执行的,不会发送到客户端,在源代码中不会被看到。

2.3 动态注释

html注释对JSP嵌入的代码不作用,可以组合构成动态的注释。
例如:<!– <%=new Date()%> –>。

3.嵌入的Java代码

3.1 嵌入java代码片段

格式:<% 编写的java code %>每行代码中使用分号,于编写Java类代码格式相同。

例如:<%

out.println(“hello,world”);

String str=”hello”;

out.println(str);

%>

3.2 JSP表达式

表达式可以直接把结果输出到页面中,表达式的最终运算结果都将被转换成字符串,因为在网页中显示的文字都是字符串。

例如:<%= express %>

3.3 jsp 声明

语法格式:<%! 声明的变量 %>

该变量是可以在整个jsp页面被访问的,具有全局性。

例如:

声明全局变量:<%! long couter=0; %>

声明全局方法:<%! int getConter(){

return counter;

}

%>

4.JSP动作标签

动作标签是在请求处理阶段按照在页面中出现的顺序被执行的,其优先级低于指令标签,jsp页面在被执行时将首先进入翻译阶段,程序会先查找页面中的指令标签,将它们转换成servlet,从而设置整个jsp页面。

4.1  <jsp:include>

该标签可以将另一个文件的内容包含到当前jsp页面中,包含的文件内容可以是静态文本,亦可以是动态代码。
语法格式为:<jsp:include page=”url” flush=”true| false”/>
<jsp:include page =”url” flush=”true| false” >
其他子标签内容
</jsp:include>
page:包含文件内容的相对路径属性。
flush:可选参数,用来设置时候刷新缓冲区,默认值为false。设置为true,则在当前页面输出使用了缓冲区的情况下,将先刷新缓冲区,再执行包含工作。

4.2  <jsp:forward>

该标签是请求转发标签,可以将当前页面的请求转发给其他web资源(jsp页面,html页面、servlet等)。
格式为:<jsp:forward page=”url” />
<jsp:forward page = ‘url”>
子标签
</jsp:forward>

4.3 <jsp:param>

该标签可以作为其他标签的子标签,为其他标签传递参数。
语法格式为:
<jsp:param name=”paramName” value=”paramValue”/>
name:用于指定参数名称
value:用于设置对应的参数。
例如:
<jsp:forward page =”xxx.jsp”>
<jsp:param name=“test” value=”hello”/>
</jsp:forward>
在转发请求的过程中,将值为hello的参数test残体给xxx.jsp页面。

4.4 JavaBean动作标签

包含<jsp:useBean>、<jsp:setProperty> <jsp:getProperty>

标签