1,java 程序片
(1)在jsp中,“<% %>” 之间的书写叫做java 程序片,一个jsp中页面中可以有多个java 程序片,在java 程序片声明的变量,在它们所在的jsp中的所有java 程序片及表达式中都有效。java 程序片中声明的变量,只在当前jsp中有效,属于局部变量。
(2)在“<%!%>”之间声明的变量就可以在不同的客户之间共享(可以打开多个jsp页面),其有效范围是整个web应用,在服务器关闭后变量才被释放。
(3)在“<%=%>”之间 可以之间输出变量或表达式,变量或表达式的值将作为一个字符串在浏览器中输出。
例子:网站计数器
<html>
<head>
<title>index</title>
<h1>测试</h1>
</head>
<body>
<%!
int count=0;
synchronized void addCount(){
count++;
}
%>
<%addCount();%>
目前计数:<span style="color:red;"><%=count%></span>
</body>
</html>
每次刷新页面都会 + 1,打开多个页面,计数还有有效会继续 + 1
2,程序注释
(1)html注释
<!-- <span></span> -->
在HTML的源码中可以看到。
(2)jsp注释
<%-- <span></span>--%>
在HTML的源码中 看不到。
3,page指令
定义jsp页面的全局属性值时可使用page指令,一般放在页面的首部:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.util.*,java.awt.*"%>
这表示在jsp页面中可以使用中文字符了。指令中的属性值可以用单引号或双引号括起来。如果一个属性有多个值就用逗号隔开。
page指令的属性:
(1),language
定义页面使用的脚本语言,默认情况为java
(2),Import
用来导入程序中要用到的包或类,可以有多个值。
(3),contentType
设置jsp页面的MIME类型。默认情况下设置的字符编码为ISO-8859-1,即:type="text/html;charset=ISO-8859-1"
(4),session
设置jsp页面中是否使用session对象,默认true;如果设置为false,则jsp程序中不能使用session对象。
(5),buffer
用来设定out对象缓存处理的缓冲区的大小。值可:none,akb,none,表示没有缓存,直接输出到浏览器。
(6),autoFlash
设置当缓冲区已满时候,是否会自动刷新缓冲区。默认true。当buffer值设置为none时,该属性不能设为false
(7),isThreadSafe
设置jsp页面是否可以多线程访问,默认true。
(8),info
设置jsp页面的信息字符串,可用getServletInfo()方法来获取这个字符串。。
(9),errorPage
设置出现异常时候转向页面的URL。
(10),isErrorPage
设置是否为出错页面,默认true。如果true,可以使用exception对象。否则不能。
4,include指令
include指令用来在该指令处静态插入一个文件。
<%@include file="文件路径"%>
路径如果以‘/‘开头,表示:使用的是相对jsp服务器应用的根路径。
5,forward指令
用来重定向网页,从当前网页转向到另一个网页。
<jsp:forward page="文件路径"/>
或者
<jsp:forward page="文件路径">
<jsp:param name="参数名1" value="参数值1"></jsp:param>
...
<jsp:param name="参数名n" value="参数值n"></jsp:param>
</jsp:forward>
其中,page参数中值是要转向的文件,可以是相对应用服务器的路径,也可是相对当前目录的路径。如果转向的是一个jsp网页,则可以传递参数。
例:
6,jsp内置对象
jsp内置对象在jsp页面中无须声明就可以直接使用。常用有:
(1)request
HttpServletRequest
(2)response
HttpServletResponse
(3)session
HtttSession
(4)application
与ServletContext类管理,可以提供一些全局的数据和对象。服务器一旦启动就创建该对象。
(5)out
实际上使用PrintWriter类向浏览器输出
(6)config
是ServletConfig类的一个对象,在jsp页面范围有效
(7)pageContext
方法查看api: