# web/index.jsp
# 页面显示当前时间
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%
//获取日期对象
Date date = new Date();
//设置日期时间格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//获取当前系统日期
String today = sdf.format(date);
%>
<%=today%>
指令标识
指令标识用于设定JSP页面范围内有效的相关信息,可被服务器解释并执行,不会产生任何内容输出到网页。指令标识对客户端浏览器是不可见的。
<%@ 指令名称 属性="值"... %>
- 指令名:page、include、taglib
- 属性:多属性可用逗号或空格分隔
- 值:属性值
page指令
page指令用于定义整个JSP页面的相关属性,其属性在JSP被服务器解析成Servlet时会转换为响应的java代码。
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="java.util.Date" %>
<%@ page import="java.text.SimpleDateFormat" %>
page指令属性
- language 设置JSP页面使用的语言
<%@ page language="java" %>
- extends 设置JSP页面继承的java类,影响服务器性能优化。
- import 设置JSP导入的类库
<%@ page import="java.util.*" %>
- pageEncoding 定义JSP页面编码格式,即指定文件编码。
<%@ page pageEncoding="GB18030" %>
- contentType 设置JSP页面的MIME类型和字符编码,浏览器据此显示页面内容。
<%@ page contentType="text/html;charset=UTF-8" %>
JSP页面默认编码格式为ISO-8859-1
,不支持中文,中文支持需设置为UTF-8
或GBK
。
- session 设置JSP页面是否使用内置的HTTP中Session会话对象,默认true。
<%@ page session="false" %>
- buffer 设置JSP内置out输出对象所使用的缓冲区大小,默认8KB(单位仅能使用KB),建议设置8的倍数。
<%@ page buffer="128kb" %>
- autoFlush 设置JSP页面缓存溢出时,是否自动刷新缓存,默认true不刷新,设置false式缓存被填满将抛出异常。
<%@ page autoFlush="false" %>
- isErrorPage
设置将当前JSP页面设置成错误处理页面来处理另一个JSP页面的错误,即异常处理。
<%@ page isErrorPage="true" %>
- errorPage
设置处理当前JSP页面异常错误的另一个JSP页面,指定的JSP错误处理页面必须设置isErrorPage="true"。
<%@ page errorPage="http://127.0.0.1/error.jsp" %>
若设置errorPage那么web.xml中定义的任何错误页面都将被忽略,而优先使用该属性定义的错误处理页面。
include 指令
include文件包含指令可在一个JSP页面中包含另一个JSP页面,include是静态包含即被包含文件中所有内容都会被原样包含到该JSP页面中,及时被包含文件中有JSP代码,在包含时也不会被编译执行。
使用include指令最终生成一个文件,在包含于被包含文件中,不能使用相同名称的变量。
<%@ include file="path" %>
taglib指令
taglib指令标识声明该页面中所使用的标签库,同时引用标签库,并制定标签的前缀。
JSP页面引用标签库后,即可通过前缀来引用标签库中的标签。
<%@ taglib prefix="tagPrefix" uri="tagURI" %>
JSP页面中引用JSTL中核心标签库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
脚本标识
JSP页面中脚本标识使用最为频繁,它能方便、灵活地生成页面动态内容,特别是Scriptlet脚本程序。
JSP脚本标识包含JSP表达式(Expression)、声明标识符(Declaration)、脚本程序(Scriptlet)。
表达式
用于向页面中输出信息
<%= 表达式 %>
声明标识
用于在JSP页面中定义全局变量或方法,通过声明标识定义的变量和方法可被整个JSP页面访问。
服务器执行JSP页面时,会将JSP页面转换为Servlet类,该类中会把使用JSP声明标识定义的变量和方法转换为类的成员变量和方法。
<%! 声明变量或方法的代码 %>
<%!
int number = 0;//声明全局变量
int count(){//声明全局方法
number++;
return number;
}
%>
代码片段
所谓代码片段就是在JSP页面中嵌入的Java代码或脚本代码。代码片段将在页面请求的处理期间被执行,通过java代码可定义变量或是流程控制语句;而通过脚本代码可应用JSP的内置对象在页面输出内容、处理请求和响应、访问Session会话等。
<% java代码或脚本代码 %>
九九乘法表
<%
String str = "";
for(int i=1; i<=9; i++){
for(int j=1; j<=i; j++){
str += j + "x" + i + "=" + j*i + " ";
}
}
%>
由于HTML注释对JSP嵌入的代码不起作用,可利用它们组合构成动态的HTML注释文本。
动作标识
包含文件标识
用于向当前页面中包含其他文件,被包含文件可是动态也可是静态。
include指令和
include指令通过file属性指定被包含的文件,file属性不支持任何表达式。
include 指令将包含的文件内容原封不动的插入包含页中,然后JSP编译器在将合成后的文件最终编译成一个java文件。
include指令包含文件时,由于被包含的文件最终会生成一个文件,所以在被包含文件、包含文件中不能有重名的变量或方法。
请求转发标识
请求转发动作标识可将请求转发到其他Web资源,如JSP页面、HTML页面、Servlet等。
执行请求转发后,当前页面将不再被执行,而是去执行该标识指定的目标页面。
传递参数标识
传递参数标识可作为其他标识的子标识,用于为其他标识传递参数。
实现在请求转发到update.jsp页面的同时传递参数userId