1. JSP基本语法
1.1 JSP注释
(1) HTML注释:可以在客户端显示
<-- 注释内容 -->
(2) JSP注释: 发送到服务器端,不可以在客户端显示
<%-- 注释内容 --%>
1.2 JSP指令
<%@指令标记 [属性=”值” 属性=”值”] %>
(1)page指令
作用于整个JSP页面。
<%@page 属性1=”值” 属性2=”值”... %>
共包含13个属性:
language; 声明所使用脚本语言种类(java)
extends; JSP页面产生的Servlet继承的父类
import; 指定所导入的包
session;指定是否可用session对象
buffer;指定输出缓冲区大小,默认8KB
autoFlush;指定输出缓冲区即将溢出时。是否强制输出缓冲区内容
isThreadSafe;是否支持多线程
info;设置页面相关信息。servlet.getServletInfo()获取文本信息
ErrorPage; 错误处理页面
isErrorPage; 能否进行异常处理
contentType; 指定编码方式(默认charset=ISO-8859-1),和页面响应MIME类型(默认text/html)
pageEncoding;编码格式
isELIgnored;是否支持EL表达式
(2)Include指令
<%@ include file=”被包含文件地址” %>
文件可以是 文本文件、HTML文件、JSP文件
(3)Taglib指令
<%@ taglib uri=”tagLibraryURI” prefix=”tagPrefix”%>
包含两个属性:
Uri: 指定标签文件或标签库存放位置
Prefix:指定标签库使用的前缀
1.3 JSP脚本元素
(1)JSP声明语句
用于声明变量和方法. 将来会转换成Servlet类中的成员变量,在整个JSP页面有效。
<%! 变量或方法定义 %>
(3) JSP表达式
<%= 表达式 %>
表达式必须能够求值,且计算结果会以字符串形式显示在客户端。
(4) JSP Scriptlets
<% java代码 %>
可以是 变量、方法、表达式等内容
2. JSP动作元素
2.1 <jsp:include>
<jsp:include page=”relative URL” flush=”true|false”/>
Page属性:被包含文件地址
Flush属性:缓冲区满时是否清空,默认false.
2.2 <jsp:forward>
<jsp:forward page=”转向页面的URL地址”/>
2.3 <jsp:param>
<jsp:param name=”参数名字” value=”指定给param的参数值”/>
2.4 <jsp:plugin>
可将服务器端的JavaBean或Applet下载到客户端执行
2.5 <jsp:useBean>
<jsp:useBean id=”beanInstanceName”class=”classsname” scope=”page|request|session|application”/>
Id:指定JavaBean的实例名;
Class: 指定JavaBean的全限定类名;
Scope:
Page:实例在当前页面有效;
Request:实例在本次请求有效;
Session:实例在本次session内有效;
Application:实例在本应用内一直有效
该动作元素中常包含有<jsp:setProperty>动作元素,用来设置Bean属性值
2.6 <jsp:setProperty>
<jsp:setPropertyname=”beanInstanceName” property=”propertyName” value=”value” />
Name:JavaBean实例名
Property:实例中属性名
Value:为属性设置的值
2.7 <jsp:getProperty>
<jsp:getProperty name=”beanInstanceName” property=”propertyName”/>
Name:JavaBean实例名
Property:实例中属性名
3. JSP内置对象
内置对象名称 | 相对应的类 | 作用域 |
request | javax.servlet.ServeletRequest | Request |
response | javax.servlet.ServeletResponse | Page |
pageContext | javax.servlet.jsp.pageContext | Session |
session | javax.servlet.http.httpSession | Page |
application | javax.servlet.ServeletContext | Application |
out | javax.servlet.jsp.JspWriter | Page |
config | javax.servlet.ServeletConfig | Page |
page | Java.long.Object | Page |
exception | Java.long.Throwable | Page |
3.1 request对象
主要方法:
Object getAttribute(String name):获取指定参数值
void setAttribute(String name,Objectvalue):将指定属性的值设置为value
String getParameter(String name):获取请求参数名为name的参数值
Enumeration getParameterNames():获取所有请求参数的名字集合
String[] getParameterValues(String name):获得name请求参数的参数值
Map getParameterMap():获取所有请求参数名和请求参数值组成的Map对象
void setCharacterEncoding(String encoding):设置编码格式。
3.2 response 对象
常用方法:
void addCookie(Cookie cookie):添加一个Cookie对象,用于在客户端保存特定信息
void addHeader(String name,String Value):添加HTTP头信息,该信息将被发送到客户端
void containsHeader(String name):判断指定名字的HTTP文件头是否存在
void sendError(int):向客户端发送错误状态吗
void sendRedirect(String url):重定向JSP文件
void setContentType(String contentType):设置MIME类型与编码方式
3.3 out对象
常用方法:
public abstract void clear()throwsjava.io.IOException:清除缓冲区中内容,但不把数据输出到客户端
public abstract void clearBuffer()throwsjava.io.IOException:清除缓冲区中内容,同时把数据输出到客户端
public abstract void close()throwsjava.io.IOException:关闭缓冲区并输出缓冲区内数据
public abstract void flush()throwsjava.io.IOException:输出缓冲区内数据
public int getBufferSize():获取缓冲区大小
public abstract int getRemaining():获取剩余缓冲区大小
public Boolean isAutoFlush():缓冲区是否进行自动清除
public abstract void newline()throwsjava.io.IOException:输出一个换行符
publicabstract void print(String st) throwsjava.io.IOException:向客户端输出数据
publicabstract void println(String str) throwsjava.io.IOException:向客户端输出数据并换行
3.4 session对象
所谓会话,是指从一个客户打开浏览器与服务器建立连接,到这个客户关闭浏览器与服务器断开连接的过程。
常用方法:
Object getAttribute(String name):获取session范围内name属性的值。
void setAttribute(String name,Objectvalue):设置session范围内name属性的值为value,并存储在session对象中。
void removeAttribute(String name):删除session范围内name属性的值
Enumeration getAttributeNames():获取所有session对象中存放的属性名称
Long getCreationTime():返回session被创建时间
Sring getId():返回session创建时由JSP容器所设定的唯一标识
long getLastAccessedTime():返回用户最后一次通过session发送请求的时间,单位为毫秒
int getMaxInactiveInterval():返回session的失效时间,即两次请求间间隔多少时间该session就被取消,单位为秒
boolean isNew():判断是否为新的session
void invalidate():清空session内容
3.5 application对象
生命周期是从服务器启动直到服务器关闭为止。
常用方法:
void setAttribute(String name,Objectvalue):以键值对方式,将一个对象的值存放到application中。
Object getAttribute(String name):根据属性名获取application中存放的值
3.6 pageContext对象
常用方法:
3.7 page对象
常用方法
3.8 config对象
只有在编写Servlet时,需要重载Servlet的init()方法时才会用到config对象
常用方法:
3.9 exception对象
结合errorPage 异常处理页面中处理exception对象
常用方法: