Jsp语法笔记
jsp在html里用<% %>括起来
jsp注释<%– –%>
解决中文传参乱码:server.xml里Connector标签添加 URIEncoding=”utf-8”
jsp的内置对象,无需new,直接使用
out对象
JspWriter类的实例,是向客户端输出内容常用的对象
void println() 向客户端打印字符串
void clear() 清除缓冲区的内容,如果在flush之后调用会抛出异常
void clearBuffer() 清除缓冲区的内容,如果在flush之后调用不会抛出异常
void flush() 将缓冲区内容输出到客户端
int getBufferSize() 返回缓冲区以字节数的大小,如不设缓冲区则为0
int getRemaining() 返回缓冲区还剩余多少可用
boolean isAutoFlush() 返回缓冲区满时,是自动清空还是抛出异常
void close() 关闭输出流
request
void setCharacterEncoding("utf-8") 防止中文乱码
void getRequestDispatcher(String path)服务器内部转发
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()返回接受请求的服务器主机名
response
response对象是服务器端向客户端返回的数据
String getCharacterEncoding()返回响应用的是何种字符编码
void setContentType(String type)设置响应的MIME类型
PrintWriter getWriter()返回可以向客户端输出字符的一个对象
sendRedirect(java.lang.String location)重新定向客户端的请求
session
session表示客户端与服务器的一次会话,是用户来浏览网站所花费的时间
- session对象在第一个jsp页面被装载时自动创建,完成会话期管理
- session对象是HttpSession类的实例
- 从用户打开浏览器连接到服务器开始,到关闭浏览器离开服务器,称为一个会话
- 用户在服务器的几个页面间切换时,服务器通过session对象,确定是同一个用户
session生命周期:
某次会话当中通过超链接打开的新页面属于同一次会话
只要当前会话页面没有全部关闭,重新打开新的浏览器窗口访问同一项目资源时属于同一次会话
除非本次会话的所有页面都关闭后再重新访问某个Jsp或者Servlet将会创建新的会话
注意事项:注意原有会话还存在,只是这个旧的SessionId仍然存在于服务器端,只不过再也没有客户端会携带它然后交予服务端校验
Session的销毁方式
- 调用了session.invalidate()方法
- Session过期(超时)
*除了getMaxInactiveInterval()方法外,还有在web.xml里配置
xml
<session-config>
<session-timeout>
10
</session-config>
</session-timeout>//单位分钟*
- 服务器重新启动
long getCreationTime()返回Session创建时间
public String getId()返回seesion创建时jsp引擎为他设的唯一ID号
public Object setAttribute(String name,Object value)使用指定名称将对象绑定到此会话
public Object getAttribute(String name)返回与此会话中的指定名称绑定在一起的对象,如果没有对象绑定在改名称下,则返回null
String[] getValueNames()返回一个包含此session中所有可用属性的数组
int getMaxInactiveInterval()返回两次请求间隔多长时间此session被取消(单位秒)
application
- application对象实现了用户间数据的共享,可存放全局变量
- application开始于服务器的启动,终止于服务器的关闭
- 在用户的前后连接或不同用户之间的连接中,可以对application对象的同一属性进行操作
- 在任何地方对application对象属性的操作,都将影响到其他用户对此的访问
- 服务器的启动和关闭决定了application对象的生命
- application对象是ServletContext类的实例
public void setAttribute(String name,Object value)使用指定名称将对象绑定到此会话
public Object getAttribute(String name)返回与次会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回null
Enumeration getAttributeNames()返回所有可用属性名的枚举
String getServerInfo()返回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)
ServletRequest getRequest()返回当前页的ServletResquest对象(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
exception对象是一个异常对象,当一个页面在运行过程中发生了异常,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。他实际上是java.lang.Throwable的对象,常用方法如下:
String getMessage()返回描述异常的消息
String toString()返回关于异常的简短描述消息
void printStackTrace()显示异常及其栈轨迹
Throwable FillInStackTrace()重写异常的执行栈轨迹