目录
一.JSP页面的基本结构
一个JSP页面可由5种元素组合而成:
1.普通的HTML标记和JavaScript标记;
2.JSP标记,如指令标记、动作标记;
3.变量和方法的声明;
4.Java程序片;
5.Java表达式;
二、声明变量和定义方法
在“<%!”和“%>”标记符号之间声明变量和定义方法。
1.声明变量
“<%!”和“%>”标记符号之间声明的变量在整个JSP页面内都有效
例:
<%@ page contentType="text/html" %>
<%@ page pageEncoding = "utf-8" %>
<HTML><body bgcolor=yellow>
<%! int i=0;
%>
<% i++;
%>
</body></HTML>
2.定义类和方法
可以在"<%! "和 "%>"标记符号之间定义方法,可以在Java程序片中调用该方法。方法内声明的变量只在该方法内有效。
例:
<%@ page contentType = "text/html" %>
<%@ page pageEncoding = "utf-8" %>
<HTML><body bgcolor = #ffccff>
<%! double multi(double x,double y){ //定义方法
return x*y;
}
class Circle { //定义类
double r;
}
%>
</p></body></HTML>
三、Java程序片
Java程序片可以写在<HTML>之前,也可以写在<HTML>和</HTML>之间或</HTML>之后。
可以在"<%"和 " %>"之间插入Java程序片。
Tomcat服务器使用多线程来处理程序片,特点如下:
1)操作jsp页面的成员变量;
2)调用jsp页面的方法;
3)操作局部变量;
PS:运行在不同线程中的Java程序片的局部变量互不干扰
四、Java表达式
在“<%=”和“%>”之间插入一个可求值的表达式
注:“<”和“%”之间、“<%”和“@”、“!”、“=”之间都不能有空格。
五、JSP中的注释
(1)HTML注释
在标记符号"<! --“和”–>"之间加入注释内容。
(2)JSP注释
在标记符号"<%–“和”–%>"之间加入注释内容。
六、JSP指令标记
1.page指令标记
用来定义整个JSP页面的一些属性和这些属性的值,属性值用单引号或双引号括起来。
page指令的作用对整个JSP页面有效,与其页面书写位置无关。
例:
<%@ page属性1=“属性1的值”%>
<%@ page属性1=“属性2的值”%>
...
<%@ page属性1=“属性n的值”%>
或
<%@ page属性1=“属性1的值”属性2=“属性2的值”...%>
page指令标记可以为contentType、pageEncoding、language、import、session、buffer、autoFlush、isThreadSafe、info等属性指定值。以下将分别讲述这些属性的设置与作用:
contentType属性
contentType属性值确定JSP页面响应的MIME类型。
我们希望用户的浏览器启用HTML解析器来解析执行所接收的信息(网页类型),则可如下设置:
<%@ page contentType=“text/html”%>
我们希望用户的浏览器启用本地的MS-Word应用程序来解析执行所接收的信息,则可如下设置:
<%@ page contentType=“application/msword”%>
注:不允许两次使用page指令给contentType属性指定不同的属性值
pageEncoding属性
默认值是UTF-8,其作用是定义JSP页面使用的编码方式
<%@ page pageEncoding=“utf-8”%>
language属性
<%@ page language=“java”%>默认值是java
import属性
为JSP页面引入java运行环境提供的包中的类,以便在后续调用
<%@ page import=“包名”%>
session属性
用于设置是否需要使用内置的session对象,session属性值是true或false,默认值为true。
buffer属性
指定out设置的缓冲区的大小或不使用的缓冲区
<%@ page buffer=“24kb”%>默认值是8kb,取值可为none。
autoFlush属性
判断out的缓冲区被填满时,缓冲区是否自动刷新。
取值为true或false,默认值为true,当buffer的值为none时,autoFlush的值不能为false。
isThreadSafe属性
用来设置访问JSP页面是否是线程安全的。
取值为true或false,默认值为true。值为true时,JSP页面能同时响应多个用户的请求,值为false时,同一时刻只能响应一个用户的请求,其他用户需排队等待。
info属性
为JSP页面准备一个常用的但可能要经常修改的字符串。
<%@ page info=“字符串”%>
在JSP页面中使用getServletInfo();获取info属性的属性值。
2、include指令标记
在JSP页面出现该指令的位置处,静态嵌入一个文件。
<%@ include file=“文件的URL”%>
“文件的URL”是指:文件夹名/文件名
七、JSP动作标记
1、include动作标记
<jsp: include page="文件的URL"/>
或
<jsp: include page="文件的URL"> param 子标记 </jsp:include>
注:当include动作标记不需要param子标记时,必须使用第一种形式。
2、param动作标记
<jsp:param name="参数"value=“参数的值”/>
注:param标记以“名字-值”对的形式为其他标记提供附加信息,param标记不能独立使用,须作为jsp:include、jsp:forward标记的子标记来使用。
3、forward动作标记
<jsp:forward page="要转向的页面"/>
或
<jsp:forward page="文件的URL"/>
4、useBean动作标记
用来创建并使用一个JavaBean