目录
1、常用的JSP内置对象
2、缓冲区
3、get与post区别
4、处理日期格式的工具类
JSP内置对象是Web容器创建的一组对象,不使用new关键字就可以使用的内置对象。
一、常用的JSP内置对象
(一)out
1、out对象是 JspWriter 类的实例,是向客户端输出内容常用的对象
2、常用方法:
void println() | 向客户端打印字符串 |
void clear() | 清除缓冲区的内容,如果在flush之后调用会抛出异常 |
void chearBuffer(); | 清除缓冲区的内容,如果在flush之后调用不会抛出异常 |
void flush() | 将缓冲区内容输出到客户端 |
int getBufferSize() | 返回缓冲区以字节数的大小,如不设缓冲区为0 |
int getRemaining() | 返回缓冲区还剩余多少可用 |
boolean isAutoFlush() | 返回缓冲区满时,是自动清空还是抛出异常 |
void close() | 关闭输出流 |
(二)request
1、客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。request对象具有请求域,即完成客户端的请求之前,该对象一直有效。
2、常用方法:
String getParameter(String name) | 返回name指定参数的参数值 |
String[] getParameterValue(String name) | 返回包含参数name的所有值的数组 |
void setAttribute(String,Object); | 存储此请求中的属性 |
object getAtribute(String name) | 返回指定属性的属性值 |
String getContentType() | 得到请求体的MIME类型 |
String getProtocol() | 返回请求用的协议类型及版本号 |
String getServerName() | 返回接受请求的服务器主机名 |
int getServerPort() | 返回服务器接受此请求所用的端口 |
String getCharacterEncoding() | 返回字符编码方式 |
void setCharacterEncoding() | 设置请求的字符编码方式 |
int getContentLength() | 返回请求体的长度(以字节数) |
String getRemoteAddr() | 返回发送此请求的客户端IP地址 |
String getRealPath(String path) | 返回一虚拟路径的真实路径 |
String request。getContextPath() | 返回上下文路径 |
(三)response
1、response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例。response对象具有页面作用域,即访问一个页面时,该页面内的response对象只能对这次访问有效,其他页面的response对象当前页面无效。
2、常用方法:
String getCharacterEncoding() | 返回响应用的是何种字符编码 |
void setContentType(String type) | 设置响应的MIME类型 |
PrintWriter getWriter() | 返回可以向客户端输出字符的一个对象(注意比较:PrintWriter与内置out对象的区别) |
sendRedirect(java.lang.String location) | 重新定向客户端的请求 |
(四)请求转发与请求重定向
1、请求重定向:客户端行为,response.sendRedirect(),本质上讲等同于两次请求,前一次的请求对象不会保存,地址栏的URL地址会改变。
2、请求转发:服务器行为,request.getRequestDispatcher().forward(req,resp);是一次请求,转发后请求对象会保存,地址栏的URL地址不会改变。
(五)session
1、session对象在第一个JSP页面被加载时自动创建,完成会话期管理。
当一个客户访问一个服务器时,可能会在服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个客户,就需要session对象。
session对象是HttpSession类的实例。
2、常用方法
long getCreationTime() | 返回SESSION创建时间 |
public String getId() | 返回SESSION创建时JSP引擎为它设的唯一ID号 |
publicObject setAttribute(String name , Object value) | 使用指定名称将对象绑定到此会话。 |
public object getAttribute(String name) | 返回与此会话中指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回null。 |
String[ ] getValueNames() | 返回一个包含此SESSION中所有可用属性的数组 |
int getMaxInactiveInterval() | 返回两次请求间隔多长时间此SESSION被取消(单位秒) |
3、生命周期
(1)创建:当客户端第一次访问某个jsp或者Servlet时候,服务器会为当前会话创建一个SessionId,每次客户端想服务器发送请求时,都会将SeesionId携带过去,服务器会对此sessionId进行校验。
(2)活动
1)某次会话当中通过超链接打开的新页面属于同一次会话
1)只要当前会话页面没有全部关闭,重新打开的浏览器窗口访问同一项目资源时属于同一次会话。
3)除非本次会话的所有页面都关闭后再重新访问某个Jsp或者Servlet将会创建新的会话。
4)注意事项:注意原有会话还存在,只要这个旧的SessionId仍然存在于服务端,只不过再也没有客户端会携带它然后交予服务端效验。
(3)销毁:Session的销毁有三种方式
1)调用了session.invalidate()方法
2)Session过期(超时)
3)服务器重新启动
(4)Tomcat默认session超时时间为30分钟
(5)设置session超时有两种方式
1)session.setMaxInactiveInterval(时间);//单位是秒
2)在web.xml配置
<session-config>
<session-timeout>
10
</session-timeout>
</session-config>
(六)application
1、application对象实现了用户间数据的共享,可存放全局变量
2、application开始于服务器的启动,终止于服务器的关闭
3、在用户的前后链接或不同用户之间的链接中,可以对application对象的同一属性进行操作。
4、在任何地方对application对象属性的操作,都将影响到其他用户对此的访问
5、服务器的启动好关闭决定了application对象的生命
6、application对象是ervletContext类的实例。
7、常用方法
public void setAttribute(String name , Object value) | 使用指定名称将对象绑定到此会话。 |
public Object getAttribute(String name) | 返回与此会话中的指定名称绑定在一起的对象,如果没有对象绑定在该名称下,则返回null。 |
Enumeration getAttributeNames() | 返回所有可用属性名的枚举 |
String getServerInfo() 返回JSP(SERVLET) | 引擎名及版本号 |
(七)Page
1、page对象就是指向当前JSP页面本身,有点像类中的this指针,它是java.lang.Object类的实例
2、常用方法
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
1、pageContext对象提供了对JSP页面内所有的对象及名字空间的访问
2、pageContext对象可以访问到本页面所在的session,也可以取本页面所在的application的某一属性值
3、pageContext对象相当于某页面中所有功能的集大成者
4、pageContext对象的本类名也叫pageContext
5、常用方法
JspWriter getOut() | 返回当前客户端响应被使用的JspWriter流(out) |
HttpSession getSession() | 返回当前页中的HttpSession对象(session) |
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
1、exception对象是一个异常对象,当一个页面在运行过程当中发生了异常,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。它实际上是java.lang.Throwable的对象
2、常用方法
String getMessage() | 返回描述异常的消息 |
String toString() | 返回关于异常的简短描述消息 |
void printStackTrace() | 显示异常及其栈轨迹 |
Throwable FillInStackTrace() | 重写异常的执行栈轨迹 |
(十)Config
1、config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)
2、常用方法:
ServletContext getServletContext() | 返回含有服务器相关信息的ServletContext对象 |
String getInitParameter(String name) | 返回初始化参数的值 |
Enumeration getInitParameterNames() | 返回Servlet初始化所需所有参数的枚举 |
二、缓冲区
Buffer,缓冲区是内存的一块区域用来保存临时数据
三、get与post区别
1、<form name="regForm" action="动作" method="提交方式"></form>
2、get:
以明文的方式通过URL提交数据,数据在URL中可以看到。提交的数据最多不超过2KB。安全性比较低但效率比post方式高。适合提交数据量不大,安全性不高的数据。比如:搜索、查询等功能。
2、post:
将用户提交的信息封装在HTML HEADER内。适合提交数据量大,安全性高的用户信息。比如注册、修改、上传等功能。
四、处理日期格式的工具类
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
(2)
(3)