一、JSP语法
1.基本构成
JSP标识指令,HTML标记语言,嵌入的Java代码,JSP表达式
2.指令标识
(1)<%@ page%> 定义在整个JSP页面有效的属性,除import外其余只能出现一次
Language:设置当前语言,默认java
contentType:设置响应的MIME类型,通常text/html
Import:导入需要的java包
extends:指定将一个JSP页面转成Servlet后继承的类
Session:默认true,支持session
Buffer:设置out对象的缓存区大小,若none则不设置缓存
autoFlush:默认true,缓冲区满的时候自动将内容输出到客户端
isThreadSafe:默认true,当前JSP页面被转成servlet后采用多线程来处理请求
Info:设置为任意字符串,可通过Servlet.getServletInfo()获取
errorPage:当前页面出现异常要调用的页面,若“/”开头则在根目录下找
isErrorPage:当前页面可以使用exception异常对象,若在其他页面通过errorPage指定为该页面,出现异常会跳转到此页面
IsElignored:true则忽略表达式语言${}
pageEncoding:设置编码
(2)<%@ include file=“”%> 在使用该指令的地方嵌入其他文件
(3)<%@ taglib uri=”” prefix=”” %> 一般用来引用标签库
3.脚本标识
(1)JSP表达式<%= %>
(2)声明标识<%! %>声明变量或方法
(3)脚本程序<% %>java程序片段
4.动作标识
<jsp:include page=”” flush=”true|false”> 可以用<jsp:param>来传递参数 页面包含,跟指令想似,但是分别编译再合成
<jsp:forward page=””> 可以用<jsp:param>来传递参数 页面跳转
<jsp:param name=”” value=””>
<jsp:useBean id=”” scope=”” class type beanName>在JSP页面创建Bean实例,可以用<jsp:setProperty name= property=>来设置属性
<jsp:setProperty>设置Bean属性
<jsp:getProperty>获得Bean属性
<jsp:fallback> 当<jsp:plugin>失败向用户输出信息
<jsp:plugin>插入小程序或javaBean
二、JSP内置对象
(1)Application 允许JSP页面与包括在同一应用程序的任何Web组件共享信息
(2)Config 允许将初始化数据传递给一个JSP页面
(3)Exception 只能由指定的JSP错误处理页面访问异常数据
(4)Out 提供对输出流的访问
(5)Page JSP页面对应的Servlet实例
(6)pageContext 是JSP页面本身的上下文
(7)Request 提供对HTTP请求数据的访问,提供用于加入特定请求数据上下文
(8)Response 允许直接访问HttpServletReponse对象
(9)Session 保持在服务器与一个客户端之间需要保持的数据
重要对象:
Request:
(1)访问请求参数 request.getParameter(“name”);
(2)在作用域中管理属性 .setAttribute(key,value) .getAttribute(key)
(3)获取Cookie .getCookies()
(4)获取客户信息 .getXXX()
(5)访问安全信息 .isXXX()
(6)访问国际化信息 .getLocals() .getLocale()
(7)请求转发 request.getRequestDispatcher(“”).forward(request, response)
Response:
(1)重定向网页 sendError(int num,String arg)用指定状态码,参数 .sendRedirect(String location)使用重定向
(2)设置HTTP响应报头 .setXXX()
(3)缓存区配置 .XXX()
Session:
(1)创建及获取客户的会话 .setAttribute() .getAttribute()
(2)从会话中移除指定对象 .removeAttrubute()
(3)销毁Session .invalidate()
(4)会话超时管理 .setXXX() .getXXX()
Application:约等于ServletContext
(1)访问应用程序初始化话参数 getInitParamter(name) getInitParamterNames()
(2)管理应用程序环境属性 .getAttr .setAttr .removeAttr .getAttributeNames()
Out:
(1)管理响应缓冲 .XXX()
(2)输出数据 .print()