JSP预习
JSP
1.概念
- JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。
- JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。
- JSP是Servlet的扩展,在没有JSP之前,就已经出现了Servlet技术。Servlet是利用输出流动态生成HTML页面,包括每一个HTML标签和每个在HTML页面中出现的内容。
2.JSP的基础语法
JSP的基础语法包括静态内容,指令,表达式,小脚本,注释,声明
指令
JSP的指令用来设置与整个页面相关的属性
<%@page …> 定义页面的依赖属性
<%@include …%> 包含其他文件
<%@taglib …%> 引入标签库的定义,可以自定义标签
注释
1.HTML注释: <!--HTML注释-->
HTML注释会被翻译到JSP文件对应的Java类的_jspService方法中,以out.write()输出到客户端,
write方法会自动识别标签,执行标签对应的功能,不会在浏览器的页面上输出注释
2.Java注释:(1) //单行注释 (2) /*多行注释*/
Java注释要写在声明脚本和代码脚本中才被认为是Java注释,会被翻译到JSP文件对应的Java类的_jspService方法中,在对应的Java类中也是注释
3.JSP注释:<%- -JSP注释- -%>
JSP注释中的内容不会在JSP文件翻译后的Java类中出现,即注释中的内容没有任何功能
脚本
1.声明脚本:<%!声明Java代码%>
给JSP翻译出来的Java类定义属性、方法、静态代码块、内部类
2.表达式脚本:<%=表达式 %>
在浏览器的JSP页面上输出数据
3.代码脚本:<% Java语句 %>
在JSP页面中可以编写需要的Java代码
JSP内置对象
JSP的内置对象是Web容器创建的一组对象,不使用new关键字就可以使用的内置对象
out对象
out对象是JspWriter类的实例,是向客户端输出内容常用的对象
常用方法:
- void println() 向客户端打印字符串
- void clear() 清除缓冲区的内容,如果在flush之后调用会抛出异常
- void clearBuffer() 清除缓冲区的内容,如果在flush之后调用不会抛出异常
- void flush() 将缓冲区内容输出到客户端
- int getBufferSize() 返回缓冲区以字节数的大小,如不设缓冲区则为0
- int getRemaining() 返回缓冲区剩余多少可用
- boolean isAutoFlush() 返回缓冲区满时,是自动清空还是抛出异常
- void close() 关闭输出流
request对象
客户端的请求信息被封装在requset对象中,通过它才能了解客户的需求,然后做出响应。它是HttpServletRequest类的实例。request对象具有请求域,即完成客户的请求之前,该对象一直有效,
常用方法:
- String getParameter(String name) 返回name指定参数的参数值
- String[] getParameterValues(String name) 返回包含参数name的所有值的数组
- void setAttribute(String,Object); 存储此请求中的属性
- object setAttribute(String name); 返回指定属性的属性值
- String getContentType() 得到请求体的MIME属性
- String getProtocol() 返回请求用的协议类型及版本号
- String getServerName() 返回接受请求的服务器主机名
response对象
response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。response对象具有页面作用域,即访问一个页面时,该页面内的response对象只能对这次访问有效,其它页面的response对象对当前页面无效。
常用方法:
- String getCharacterEncoding() 返回响应用的是何种字符编码
- void setContentType(String type) 设置响应的MIME类型
- PrintWriter getWriter() 返回可以向客户端输出字符的一个对象
- sendRedirect(java.lang.String location) 重新定向客户端的请求
session对象
session表示客户端和用户端的一次会话,Web中的session指的是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间
常用方法:
- long getCreationTime() 返回session创建时间
- public String getId() 返回session创建时JSP引擎为它设的唯一ID号
- public Object setAttribute(String name,Object value) 使用指定名称将对象绑定到此会话
- public Object setAttribute(String name) 返回此会话中的指定名称绑定在一起时的对象,如果没有对象绑定在该名称下,则返回null
- String[] getValueNames() 返回一个包含此session种所有可用属性的数组
- int getMaxInactiveInterval() 返回两次请求间隔多长时间此session被取消(单位秒)
session的生命周期:
创建:当客户端第一次访问某个jsp或者Servlet时候,服务器会为当前会话创建一个SessionId,每次客户端向服务端发送请求时,都会将此SessionId携带过去,服务端会对此SessionId进行校验。
活动:
- 某次会话当中通过超链接打开的新页面属于同一次会话。 只要当前会话页面没有全部关闭,重新打开新的浏览器窗口访问同一项目资源时属于同一次会话。
除非本次会话的所有页面都关闭后再重新访问某个Jsp或者Servlet将会创建新的会话。
–注意原有会话id依然存在,只是旧的Session仍然存在于服务端,只不过再也没有客户端会携带它然后交予服务器校验
销毁:
1.调用session.invalidate()方法
2.session过期(超时)
3.服务器重新启动
application对象
- application对象实现了用户间数据的共享,可存放全局变量。
- application开始于服务器的启动,终止于服务器的关闭。
- 在用户的前后连接或不同用户之间的连接中,可以对application对象的同一属性进行操作。
- 在任何地方对application对象属性的操作,都将影响到对其他用户对此的访问。
- 服务器的启动和关闭决定了application对象的生命周期
- application是ServletContext类的实例
常用方法: - public void setAttribute(String name,Object value) 使用指定名称将对象绑定到此会话
- public Object setAttribute(String name) 返回与此会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回null
- Enumeration getAttributeNames() 返回所有可用属性名的枚举
- String getSerberInfo() 返回JSP(SERVLET)引擎名及版本号
page对象
page对象就是指向当前JSP页面本身,有点像类中的this指针,它是java.lang.Object类的实例
常用方法:
- class getClass() 返回此Object类
- int hashCode() 返回此Object的hash码
- boolean equals(Object obj) 判断此Object是否与指定Object对象相等
- void copy(Object obj) 把此Object拷贝到指定Object对象中
- Object clone() 克隆此Object对象
- String toString() 把此Object对象转换成String类对象
- void notify() 唤醒一个等待的线程
- void notifyAll() 唤醒所有等待的线程
- void wait(int timeout) 使一个线程处于等待直到timeout结束或被唤醒
- void wait() 使一个线程处于等待直到被唤醒
pageContext对象
- pageContext对象提供了对JSP页面内所有的对象及名字空间的访问
- pageContext对象可以访问到本页所在的session,也可以取本页面所在的application的某一属性
- pageContext对象相当于页面中所有功能的集大成者
- pageContext对象的本类名也叫pageContext。
常用方法:
- JspWriter getOut() 返回当前客户端响应被使用的JspWriter流(out)
- HttpSession getSession() 返回当前页中的HttpSession对象(session)
- Object getPage() 返回当前页的Object对象(page)
- ServIetRequest getRequest() 返回当前页的ServIetRequest对象(request)
- ServIetResponse getResponse() 返回当前页的ServIetResponse对象(response)
- void setAttribute(Stringname,Objectattribute) 设置属性及属性值
- Object getAttribute(Stringname,intscope) 在指定范围内取属性的值
- int getAttributeScope(Stringna(e) 返回某属性的作用范围
- void forward(StringrelativeUrIPath) 使当前页面重导到另一页面
- void include(StringrelativeUrIPath) 在当前位置包含另一文件
Config对象
config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)
常用方法:
- ServletContext getServIetContext0返回含有服务器相关信息的ServletContext对象
- String getInitParameter(Stringname)返回初始化参数的值
- Enumeration getInitParameterNames()返回Servlet初始化所需所有参数的枚举
Excecption对象
exception对象是一个异常对象,当一个页面在运行过程中发生了异常,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象
常用方法:
- String getMessage() 返回描述异常的消息
- String tostring0返回关于异常的简短描述消息
- void printStackTrace()显示异常及其栈轨迹
- Throwable FillInStackTrace0重写异常的执行栈轨迹