首页 > 代码库 > Servlet 基础知识

Servlet 基础知识

8.Response
  8.1.getOutputStream和getWriter方法分别用于得到输出二进制数据、输出文本数据的ServletOutputStream 、Printwriter对象。
  8.2.getOutputStream和getWriter方法互相排斥,调用其中的任何一方发后就不能调用另一方法,在一个Serlet里调用一方法,转发后的Servlet中也不能出现另一个方法。
  8.3.Servlet程序向ServletOutputStream或PrintWriter对象中写入的数据将被Servlet引擎从response里面获取,Servlet引擎将这些数据当作响应消息的正文,然后再与响应状态行和各响应头组合后输出到客户端
  8.4.Servlet的service方法结束后,Servlet引擎将检查getWriter或getOutputStream方法返回的输出流对象是否已经调用过close犯法,如果没有,Servlet引擎将调用close方法关闭输出流对象。

9.forward细节
  9.1.forward方法用于请求转发到RequestDispatcher对象封装的资源。
  9.2.如果在调用forward方法之前,在Servlet程序中写入的部分内容已经被真正地传送到了客户端,forward方法将抛出IllegalStateException异常。
  9.3.如果在调用forward方法之前向Servlet引擎的缓冲区(response)中写入内容,只要写入到缓冲区的内容还没有被真正地输出到客户端,forward方法就可以被正常执行,原来写入到输出缓冲区中的内容将被清空,但是,已写入到HttpServletResponse对象中的响应头字段信息保持有效。

10.Cookie
  10.1.一个Cookie只能标识一种信息,它至少含有一个标识信息的名称(Name)和设置值(Value)。
  10.2.一个WEB站点可以给一个WEB浏览器发送多个Cookie,一个WEB浏览器也可以存储多个WEB站点提供的Cookie
  10.3.浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB。
  10.4.如果创建了一个cookie,并将他发送到浏览器,默认情况下它是一个会话级别的cookie(即存储在浏览器的内存中),用户推出浏览器之后即被删除。若希望浏览器将该cookie存储在磁盘上,则需要使用maxAge,并给出一个以秒为单位的时间。将最大时效设为0则是命令浏览器删除该cookie。
  10.5.注意,删除cookie时,path必须一致,否则不会删除

Servlet 基础知识