JSP页面除了静态HTML外主要包含指令、脚本、动作三类元素,下面分别简单描述如下:
一、指令,其格式如下所示:
<%@ directive (attribute="value")%> 或者<%@ directive attribute1="val1" attribute2="val2" .....%>
常用的指令:
1.page指定,其属性如下所示:
属性 | 备注 | 缺省值 |
langeuage | 脚本语言名称 | “java" |
contentType | MIME类型及输出HTML字符编码,例如:text/html;charset=GB2312 | "text/html;charset=ISO-8859-1" |
import | 作用与java语言中import一样,引用具体的类或者命名空间 | 无 |
buffer | html输出缓冲大小或者false(表示不必缓冲,直接输出到客户端) | 8192 |
autoFlush | 布尔变量,是否自动刷新,如果为false,则在html输出完毕后必须调用out.flush(); | ”true" |
session | 布尔变量,是否启用会话,如果为false,则在jsp脚本中使用内置session变量的时候返回空 | "true" |
isThreadSafe | 布尔变量,是否线程安全,如果为false,则在产生的serlvet会实现SingleThreadModel接口 | "true" |
errorPage | URL,设置jsp错误页面,当该jsp运行过程中出现异常后会自动跳转到该参数设置的错误显示页面,也可以再web.config中设置全局错误跳转页面 | 无 |
isErrorPage | 布尔变量,设置当前页面是否为错误页面,如果为true,则可以访问exception这个内容变量来获取发生异常页面的具体错误信息 | "false" |
info | 设置Servlet信息,可以在代码中调用getServletInfo()获取该信息 | 依赖于具体的Web容器 |
2.include指令,用来在jsp页面被编译成servlet前将指定url的资源包含进该jsp页面,与动作<jsp:include>作用类似,具体使用方法如下所示:
<%@ include file="...."%>
3.tagLib指令
二 、脚本元素,脚本元素也主要分为三类,分别是declare,script,expression三种类型,分别如下所示:
1.declare,主要用于声明jsp最总编译后servlet类级别变量、方法已经重载方法等,其使用方式如下所示:
<%!
script..
%>
<jsp:declaration>script....</jsp:declaration>
例如:
<%!
/**
* 自定义方法
**/
public String getHelloStr()
{
return "Hello!";
}
/**
* 初始化重载
*/
public void jspInit(){
try{
Class.forName("oracle.jdbc.driver.DriverManager");
}catch(Exception ex){
System.out.println(ex.getMessage());
}
}
%>
2.script,脚本部分,其代码在编译后的servlet类的_jspService方法中,其使用方法如下所示:
<%
script....
%>
<jsp:scriptlet>script....</jsp:scriptlet>
举例如下:
<%
out.println("<b>"+getHelloStr()+"</b>");
%>
<%= expression %>
<jsp:expression>expression</jsp:expression>
举例如下:
Current Time: <%= java.util.Calendar.getInstance().getTime() %>
三、活动Active元素
主要的标准元素如下所示:
jsp:useBean
jsp:setProperty
jsp:getProperty
jsp:param
jsp:include
jsp:forward
jsp:plugin
jsp:params
jsp:fallback
其中jsp:include及jsp:forward用法如下所示:
<jsp:include page="relativeURL" flush="true">
( <jsp:param . . . /> )*
</jsp:include>
<jsp:forward page="relativeURL">
( <jsp:param . . . /> )*
</jsp:include>
其它的Active后面博客专门描述