1. Jsp指令
page指令:通常位于jsp页面顶端,同一个页面可以有多个page指令
include指令:经一个外部文件嵌入到当前Jsp文件中,同时解析这个页面中的jsp语句
taglib指令:使用标签库定义新的自定义标签,在jsp页面中启用定制行为
<%@ page 属性1="" 属性2="" ...%>
//language= 指定jsp页面使用的脚本语言 默认值 java
//import 引用脚本语言中使用到的类文件
//contentType 用来指定jsp页面所采用的编码方式 默认值 text/html,ISO-8859-1
//pageEncoding
2. Jsp注释
<%-- 注释--%>
<%
//
/**/
%>
out.println("");
3. Jsp声明
在jsp页面定义变量或方法
<%!
String s = "";
int add(int x, int y) {
return x + y;
}
%>
4. Jsp表达式
表达式不以分号结束
<%=s %>
<%=add(10,5) %>
5. Jsp内置对象
- out
JspWriter类的实例,向客户端输出内容void println()
void clear()
清除缓冲区内容,如果在flush()之后调用会抛出异常void clearBuffer()
清除缓冲区内容, 在flush()之后调用不会抛出异常void flush()
将缓冲区内容输出到客户端int getBufferSize()
返回缓冲区字节数大小,如不设缓冲区则为0int getRemaining()
返回缓冲区还剩余多少可用boolean isAutoFlush()
返回缓冲区满时,是自动清空还是抛出异常void close()
关闭输出流
- request
HttpServletRequest类的实例,封装了客户端请求信息,request对象具有请求域,完成客户端请求之前,该对象一直有效String getParameter(String name)
返回name指定参数的参数值String[] getParameterValues(String name)
返回包含参数name的所有值的数组void setAttribute(String, Object)
存储此请求中的属性Object getAttribute(String name)
返回指定属性的属性值String getContentType()
得到请求体的MIME类型String getProtocol()
返回请求用的协议类型及版本号String getServerName()
返回接收请求的服务器主机名int getServerPort()
返回服务器接收此请求所用的端口号String getCharacterEncoding()
返回字符编码方式void request.setCharacterEncoding()
设置请求的字符编码方式int getContentLength()
返回请求体的长度(字节数)String getRemoteAddr()
返回发送此请求的客户端IP地址String getRealPath(String path)
返回以虚拟路径的真实路径String request.getContextPath()
返回上下文路径
- response
是HttpServletResponse类的实例,包含了响应客户请求的有关信息。response对象具有页面作用域,即访问一个页面时,该页面内的response对象只能对这次访问有效String getCharacterEncoding()
返回响应用的是何种字符编码void setContentType(String type)
设置响应的MIME类型PrintWriter getWriter()
返回可以向客户端输出字符的一个对象(提前于out对象输出,可以调用out.flush() 强制out输出)sendRedirect(String location)
重新定向客户端的请求
- session
是HttpSession的实例long getCreationTime()
返回SESSION的创建时间String getId()
返回session创建时jsp为它设的唯一id号Object setAttribute(String name, Object value)
使用指定名称将对象绑定到此会话Object getAttribute(String name)
返回与此会话中的指定名称绑定在一起的对象String[] getValueNames()
返回一个包含此session中所有可用属性的数组int getMaxInactiveInterval()
返回两次请求间隔多长时间此session被取消(单位秒)void setMaxInactiveInterval()
设置session取消时长
session 的生命周期:
- 创建:当客户端第一次访问某个jsp或者Servlet时,服务器会为当前会话创建一个SessionId,每次客户端发送请求时,都会将此SessionId携带过去,服务端会对此SessionId进行校验
- 活动:某次会话当中通过超链接打开的新页面属于同一次会话;只要当前会话页面没有全部关闭,重新打开浏览器窗口访问同一项目资源时属于同一次会话;除非本此会话的所有页面都关闭后再重新访问某个jsp或者Servlet将会创建新的会话(旧的会话仍在,这个旧的SessionId仍存在于服务端)
- 销毁:调用了session.invalidate()方法;session过期;服务器重启
- application
是ServletContext类的实例
实现了用户间数据的共享,可存放全局变量
开始于服务器启动,终止于服务器关闭void setAttribute(String name, Object value)
void getAttribute(String name)
Enumeration getAttributeNames()
返回所有可用属性名的枚举String getServerInfo()
返回Jsp(Servlet)引擎名及版本号
- page
是Objcet类的实例,只想当前jsp页面本身class getClass()
返回此Object的类int hasCode()
返回此Objcet的hash码void copy(Object obj)
把此Object拷贝到指定的Object对象中String toString()
把此Object对象转换成String类的对象void notify()
唤醒一个等待的线程void notifyAll()
唤醒所有等待的线程void wait(int timeout)
使一个线程处于等待直到timeout结束或被唤醒void wait()
使一个线程处于等待直到被唤醒
- pageContext
是PageContext类的实例,提供了对jsp页面内所有的对象及名字空间的访问,可以访问到本页所在的session,也可以取本页面所在的application的某一属性值JspWriter getOut()
返回当前客户端响应被使用的JspWriter流(out)HttpSession getSession()
返回当前页中的HttpSession对象Object getPage()
返回当前也的Object对象(page)ServletRequest getRequest()
返回当前页 的ServletRequest对象(request)ServletResponse getResponse()
返回当前页的ServletResponse对象(response)void setAttribute(String name, Object attribute)
设置属性及属性值Object getAttribute(String name, int scope)
在范围内取属性的值int getAttributeScope(String name)
返回属性的作用范围void forward(String relativeUrlPath)
使当前页面重导到另一页面void include(String relativeUrlPath)
在当前位置包含另一文件
- exception
是Throwable类的实例,当一个页面运行产生异常,就产生这个对象,如果一个jsp页面要应用此对象,就必须把isErrorPage设为true,否则无法编译String getMesage()
返回描述异常的信息String toString()
返回关于异常的简短描述信息void printStackTrace()
显示异常及其栈轨迹Throwable FillInstackTrace()
重写异常的执行栈轨迹
- config
config对象是在一个servlet初始化时,jsp引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数,以及服务器的相关信息ServletContext getServletContext()
返回含有服务器相关信息的ServletContext对象String getInitParameter(String name)
返回初始化参数的值Enumeration getInitParameterNames()
返回Servlet初始化所需所有参数的枚举