jsp内置对象是什么?常见的jsp内置对象有哪些?(jsp高人笔记)
jsp内置对象是什么?Jsp内置对象是web容器创建的一组对象,不使用new关键字创建,就可以直接使用。Jsp全名为Java server pages,免费名叫java服务器页面。那么常见的jsp内置对象有哪些呢?
常见的九大jsp内置对象全面教程:
Jsp中一共预先定义了9个这样的对象,分别为:request、response、session、application、out、pagecontext、config、page、exception
out对象:
缓冲区——Buffer,便是内存的一块区域,用来保存临时数据。
out对象是Jspwriter类的实例,向客户端输出内容时常用的对象。
out对象常用的办法有:
- void println() 向客户端打印字符串;
- void flush() 将缓冲区内容输出到客户端;
- void clear() 清除缓冲区的内容,如果在flush之后调用会抛出异常;
- void clearBuffer() 清除缓冲区的内容,在flush之后调用不会抛出异常;
- int getBuffersize() 返回缓冲区字节数的大小,如果不设缓冲区则为0;
- int getRemaining() 返回缓冲区还剩余多少可用;
- boolean isAutoFlush() 返回缓冲区满时,是自动清空还是抛出异常;
- void close() 关上输出流
get与post的区别:
表单有两种提交方式:get与post
|
提交方式 |
提交内容的方式 |
数据量大小 |
安全性 |
效率 |
适用情况 |
| get |
明文,通过URL提交数据(数据在URL中可以看到) |
不超过2KB |
较低 |
高 |
适合提交数据量不大,安全性不高,的数据;比如:搜素、查询等功能。 |
| post |
将用户提交的信息封装在HTML HEAdER内 |
数据量大 |
高 |
|
适合提交数据量大,安全性高,的用户信息;比如:注册、修改、上传等功能。 |
request对象:
客户端的请求信息被封装在request对象中,通过它才能知道到客户的需求,然后做出响应。
request对象是HttpservletRequest类的实例。
request对象具有请求域,即完成客户端的请求之前,该对象一直有效。
常用的办法有:
- string getparameter(string name) 返回指定参数的参数值;
- string[] getparameterValues(string name) 返回包含指定参数的所有参数值的数组;
- void setAttribute(string,object) 存储此请求中的属性;
- object getAttribute(string name) 返回指定属性的属性值;
- string getContentType() 得到请求体的MiME类型;
- stirng getprotocol() 返回请求的协议类型和版本号;
- string getservername() 返回接收请求的服务器主机名;
- int getserverport() 返回服务器接收此请求所用的端口号;
- string getCharacterEncoding() 返回字符编码方式;
- int getContentLength() 返回请求体的长度(字节数);
- string getRemoteAddr() 返回发送此请求的客户端ip地址;
- string getRealpath(string path) 返回某虚拟路径的真实路径;
- string getContentpath() 返回上下文路径。
response对象:
response对象包含了,响应客户请求的有关信息,在Jsp中很少直接用到它。
response对象是HttpservletResponse类的实例。
response对象具有页面作用域,即访问一个页面时,该页面内的response对象只能对这次访问有效,其它页面的response对象对当前页面无效。
常用的办法:
- string getCharacterEncoding() 返回响应的字符编码;
- void setContentType(string type) 配置响应的MiME类型;
- printwriter getwriter() 返回一个 可以向客户端输出字符的 对象;(response对象生成的输出流对象,出现在out内置对象的前面)
- sendRedirect(java.lang.string location) 重新定向客户端的请求。
请求转发Vs请求重定向
|
方式 |
Client/server |
办法 |
说明 |
URL内容 |
| 请求重定向 |
客户端行为 |
response.sendRedirect() |
本质上等同于两次请求,前一次的请求对象不会保存 |
URL改变 |
| 请求转发 |
服务器行为 |
request.getRequestdispatcher().forward(req,resp) |
一次请求,转发后请求对象会保存 |
URL不变 |
session对象:
session:客户端与服务器的一次会话
web中的session:用户在浏览某个网站时,从进入网站,到浏览器关上所经过的这段时间,也便是,用户浏览这个网站所花费的时间。
session实际上是一个特定的时间概念。
session对象在第一个Jsp页面被装载时自动创建,开始会话期管理。
一个session:从客户打开浏览器并连接到服务器开始,到客户关上浏览器离开这个服务器结束。
session对象,是Httpsession类的实例。
常用的办法:
- long getCreationTime() 返回session创建时间;
- string getid() 返回session创建时Jsp引擎为它设的唯一id号;
- object setAttribute(string name,object value) 使用指定名称将对象绑定到此会话;
- object getAttribute(string name) 返回此对话中,与指定名称绑定在一起的对象,如果该名称下没有绑定对象,返回null;
- string[] getValuenames() 返回一个 包含此会话中所有可用属性 的数组;
- int getMaxinactiveinterval() 返回两次请求间隔多长时间此session被取消;
- void setMaxinactiveinterval(long time) 配置两次请求间隔多长时间此session被取消。
session的生命周期
创建:当客户端第一次访问某个jsp或者servlet的时候,服务器会为当前会话创建一个sessionid,每次客户端向服务器端发送请求时,都会将该sessionid携带过去,服务器端会对此sessionid进行校验。
活动:
- 某次会话当中,通过超链接打开的新页面,属于同一次会话;
- 只要当前会话页面没有具体关上,重新打开新的浏览器窗口访问同一项目资源时属于同一次会话;
- 除非本次会话的所有页面都关上后,再重新访问某个jsp或者servlet将会创建新的会话。
销毁:
session的销毁方式有3种:
- 调用session.invalidate()办法;
- session过期(超时);
- 服务器重新启动。
tomcat默认session超时时间为30分钟,
配置session超时,两种方式:
- session.setMaxinactiveinterval(time) //单位是秒;
- 在web.xml中设置
<session-config>
<session-timeout>
7
</session-timeout>
</session-config> //单位是分钟
application对象:
application对象,实现用户间数据的分享,可存放全局变量;
application对象,开始于服务器启动,终止于服务器关上;
在用户的前后连接或不同用户之间的连接中,可以对application对象的同一属性进行操作;
在任何地方对application对象属性的操作,都将影响到其他用户对此的访问;
application对象是servletContext类的实例。
常用的办法:
- void setAttribute(string name,object value) 使用指定名称将对象绑定到此会话;
- object getAttribute(string name) 返回此会话中,指定名称绑定的对象,如果该名称没有绑定任何对象,则返回null;
- Enumeration getAttributenames() 返回此会话所有可用属性名的枚举;
- string getserverinfo() 返回Jsp(servlet)引擎名及版本号。
page对象:
page对象,便是指当前Jsp页面本身,有点像类中的this指针;
page对象,是java.lang.object类的实例。
pageContext对象
pageContext对象,提供了对Jsp页面内所有对象及名字空间的访问;
pageContext对象,可以访问到本页所在的session,也可以取本页面所在的application的某一属性值;
pageContext对象是pageContext类的实例。
config对象:
config对象,是在一个servlet初始化时,jsp引擎向它传递信息用的,此信息包括servlet初始化时所要用到的参数(由属性名和属性值构成)以及服务器的有关信息(传递一个servletContext对象);
常用的办法:
- servletContext getservletContext() 返回含有服务器关于信息的servletContext对象;
- string getinitparameter(string name) 返回初始化参数的值;
- Enumeration getinitparameternames() 返回servlet初始化所需要的所有参数的枚举。
exception对象:
exception对象,是一个异常对象,当一个页面在运行过程中发生了异常,就产生这个对象。如果一个Jsp页面要应用此对象,就必须把isErrorpage设为true,否则无法编译。是java.lang.Throwable的对象。
常用办法:
- string getMessage() 返回描述异常的消息;
- string tostring() 返回相关异常的简短描述消息;
- void printstackTrace() 显示异常及其栈轨迹;
- Throwable FillinstackTrace() 重写异常的执行栈轨迹。
上述便是常见的jsp内置对象的全面教程了,内容比较全面想必对大家会有用。