java server pages其根本是一个简化的servlet设计。实现了在java当中使用html标签。javaEE标准
一、页面元素
1、静态内容
html、js、css相关标签元素。
2、指令
<%@ java指令%>
2.1 page指令:通常位于jsp页面的顶端,同一个页面可以有多个page指令。
<%@ page 属性=""%>
language:指定jsp页面中使用的脚本语言,默认值java
import:指定引用的类库
contentType:jsp页面使用的编码方式,常用是contentType="text/html; charset=utf-8"
errorPage:异常跳转页
2.2 include指令:将一个外部文件嵌入到当前jsp文件中,同时解析这个页面中的jsp语句
2.3 taglib指令:使用标签库定义新的自定义标签,在jsp页面中启用定制行为
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" errorPage="error.jsp"%>
3、表达式
<%= java表达式 %>不需要分号结束 单行
4、脚本
<% java脚本 %>
5、声明
<%! java声明 %> 定义变量或方法
6、注释
html注释<!--注释-->
jsp注释<%--注释--%>
jsp脚本注释//注释 /*注释*/
二、jsp内置对象:内置对象是web谷器创建的一组对象,不使用new关键就可以使用的内置对象。
1、out
out对象是jspwriter类的实例,是向客户端输出内容常用的对象
println():向客户端打印字符串
clear():清除缓冲区的内容,如果在flush之后调用会抛出异常
clearBuffer():清除缓冲区的内容,如果在flush之后调用不会抛出异常
flush():将缓冲区的内容输出到客户端
getBufferSize():返回缓冲区的大小(字节)
getRemaining():返回缓中区剩余大小
isAutoFlush():返回缓冲区满时,是否自动清空,还是抛出异常
close():关闭输出流
2、request
客户端的请求信息是被封装在request对象中,通过它才能获取客户端的请求信息,它是HttpServletRequest类的实例;
getParameter("name"):返回指定参数的值
getParameterValues("name"):返回包含参数name的所有值的数组
setAttribute(string,object)存储此请求中的属性
getAttribute("name"):返回指定属情的值
getContentType():返回请求体的mime类型
getProtocol():返回请求协议号
getServerName():返回接受请求的服务器主机名
3、response
response对象包含了响应客户端请求的相关信息,但在jsp中很少直接使用它。它是HttpServletResponse类的实例。
getCharacterEncoding():返回响应的字符编码集
setContentType(""):设置响应的mime类型
PrintWriter getWriter():向客户端输出字符对象
setRedirect("url"):重新定向客户端的请求,客户端行为,本质上讲是两次请求。url地址会改变
request.getRequestDispatcher().forward(req,resp):请求转发,服务器端行为,转发请求对象会保存,地址栏url地址不会改变
4、session
session表示客端与服务器的一次会话,实际上是一个特定的时间概念。在服务器端保存着不同用户的session
session.invalidate():销毁session
getId():获取session id
setAttribute("name");
getAttribute("name");
setMaxInactiveInterval(s):最大有效期
<session-config>
<session-timeout>1</session-timeout> //min
</session-config>
5、application
application对象实现了用间的数据共享,可存放全局变量,开始于服务器的启动,终止于服务器的云闭
setAttribute("name","value");
getAttribute("name");
getAttributeNames():返回所有可用的属性名的枚举
getServerInfo():返回server引擎名及版本号
6、page
page对象指当前jsp页面本身,有点象类中的this指针,它是java.lang.object类的实例,
getClass():返回些object的类
hashCode():返回objectj的hash码
equals():判断是否相等
copy(obj):把些obj拷贝到指定的obj对象中
clone():克隆obj
toString():转成string
notify():唤醒一个等待的线程
notifyAll():唤醒所有的等待线程
wait(n):使一个线程处于等待
wait():使一个线程处于等待,直到被唤醒
7、pageContext
pageContent对象提供了对jsp页面内所有的对象及名字空间的访问
getOut():返回当前客户端的响应被使用的JspWriter流
getSession():返回当前面中的HttpSession对象
getPage():返回当前页的object对象
getRequest():返回当前的ServletRequest对象
getResponse():返回当前的ServletResponse对象
setAttribute("name","value");设置属性值
getAttribute("name");获取属性值
getAttributeScope("name"):返回属性的作用范围
forward(""):重定向到另一个页面
include(""):包含另一文件
8、exception
exception对象是一个异常对象。必须把isErrorPage设为true,否则无法编译,实际是java.lang.Throwable的对象
<%@ page isErrorPage="true"%>异常处理页
getMessage():返回异常信息
toString():返回异常信息简要描述
printStackTrace():返回异常及其栈轨迹
FillInStackTrace():重写异常的执行栈轨迹
<%@ page errorPage="error.jsp"%>异常处理页
9、config
config对象是在一个servlet初始化时,jsp引擎向它传递信息用的。些信息包括servlet初始化时所要用到的参数及服务器相关信息
getServletContext():返回服服务器相关信息的servletContext对象
getInitParameter("name"):返回初始化参数的值
getInitParameterNames():返回所有初始化参数的枚举