JSP内置对象
Posted 一纸流年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP内置对象相关的知识,希望对你有一定的参考价值。
1、内置对象简介:
JSP内置对象是Web容器创建的一组对象,不使用new关键字创建就可以使用的内置对象。
2、JSP九大内置对象:
(1)out
(2)request
(3)response
(4)session
(5)application
(6)Page / pageContext / exception / config
3、Web程序的请求响应模式:
用户发送请求(request)
服务器给用户响应(response)
4、什么是缓冲区(Buffer):
缓冲区就是内存的一块区域用来保存临时数据。
5、out对象:
out对象是JspWriter类的实例,是向客户端输出内容常用的对象。
常用方法:
(1)void println() 向客户端打印字符串;
(2)void clear() 清除缓冲区的内容,如果在flush之后调用会抛出异常;
(3)void clearBuffer() 清除缓冲区的内容,如果在flush之后调用不会抛出异常;
(4)void flush() 将缓冲区内容输出到客户端;
(5)int getBufferSize() 返回缓冲区字节数的大小,如不设缓冲区则为0;
(6)int getRemaining() 返回缓冲区还剩余多少可用;
(7)boolean isAutoFlush() 返回缓冲区满时,是自动清空还是抛出异常;
(8)void close() 关闭输出流;
注意:Q:为什Flush之后clear会异常?
A:java在使用流时,都会有一个缓冲区,按一种它认为比较高效的方法来发数据:把要发的数据先放到缓冲区,缓冲区放满以后再一次性发过区,而不是分开一次一次地发。
而flush()表示强制将缓冲区中的数据发送出去,不必等到缓冲区满。
所以如果在用流的时候,没有用flush()这个方法,很多情况下会出现流的另一边读不到数据的问题,特别是在数据特别小的情况下。
所以flush()之后缓冲区内已经空了 clear就会抛出异常。
out.println();//是向缓冲区中写入<br>
当调用out.flush();时,刷新缓冲区,将缓冲区的内容输出,缓冲区清空<br>
当调用out.clear();时,清空缓冲区,缓冲区中之前的内容不会输出到页面上<br>
当缓冲区中的内容满了时,自动将缓冲区中的内容送到写的一方;
当程序正常终止时,会自动刷新输出缓冲区,但比如文件的读写等,最好的做法是,close流之前,调用flush将缓冲区的数据刷新输出。
6、表单提交方式(get和post):
(1)get:以明文的方式通过URL提交数据,数据在URL中可以看到。提交的数据最多不超过2KB。安全性较低但效率比post方式高。适合提交数据量不大,安全性不高的数据。比如:搜索、查询等功能。
(2)post:将用户提交的信息封装在html HEADER内。适合提交数据量大,安全性高的用户信息。比如:注册、修改、上传等功能。
7、request对象:
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。request对象具有请求域,即完成客户端的请求之前,该对象一直有效。
常用方法:
(1)String getParameter(String name) 返回name指定参数的参数值;
(2)String[ ] getParameterValues(String name) 返回包含参数name的所有值的数组;
(3)void setAttribute(String,Object);存储此请求中的属性;
(4)object getAttribute(String name);返回指定属性的属性值;
(5)String getContentType(); 得到请求体的MIME类型;
(6)String getProtocol(); 返回请求用的协议类型及版本号;
(7)String getServerName(); 返回接受请求的服务器主机名;
(8)int getServerPort() 返回服务器接受此请求所用的端口号;
(9)String getCharacterEncoding() 返回字符编码方式;
(10)void setCharacterEncoding() 设置请求的字符编码方式;
(11)int getContentLength() 返回请求体的长度(以字节数)
(12)String getRemoteAddr() 返回发送此请求的客户端IP地址;
(13)String getRealPath(String path) 返回一虚拟路径的真实路径;
(14)String request.getContextPath() 返回上下文路径;
以上是关于JSP内置对象的主要内容,如果未能解决你的问题,请参考以下文章