重新学javaweb----九大隐式对象
来源:互联网 发布:微信支付域名要备案吗 编辑:程序博客网 时间:2024/05/27 20:44
JSP九大隐式对象:在翻译过来的Servlet中Service方法自动帮我们前置定义的九个对象,可以在jsp页面中直接使用
page(代指该jsp翻译过去的那个servlet) confing(ServletConfig) application(ServletContext 表示本web应用) response request session out(response.getWriter 但是有缓冲区 ) exception pageContext (其他八大隐式对象的入口 )
out
相当于是response.getWriter得到PrintWriter
out和response.getWriter获取到的流不同在于,在于这个out对象本身就具有一个缓冲区.利用out写出的内容,会先缓冲在out缓冲区中,直到out缓冲区满了或者整个页面结束时out缓冲区中的内容才会被写出到response缓冲区中,最终可以带到浏览器页面进行展示
page指令中的
[buffer=”none | 8kb | sizekb” ]可以用来禁用out缓冲区或设置out缓冲区的大小,默认8kb
[ autoFlush=”true | false”]用来设置当out缓冲区满了以后如果在写入数据时out如何处理,如果是true,则先将满了的数据写到response中后再接受新数据,如果是false,则满了再写入数据直接抛异常
在jsp页面中需要进行数据输出时,不要自己获取response.getWriter,而是要使用out进行输出,防止即用out又用response.getWriter而导致输出顺序错乱的问题
pageContext
(1)可以作为入口对象获取其他八大隐式对象的引用
getException方法返回exception隐式对象 getPage方法返回page隐式对象 getRequest方法返回request隐式对象 getResponse方法返回response隐式对象 getServletConfig方法返回config隐式对象 getServletContext方法返回application隐式对象 getSession方法返回session隐式对象 getOut方法返回out隐式对象
(2)域对象,四大作用域的入口,可以操作四大作用域中的域属性
作用范围: 当前jsp页面
生命周期: 当对jsp页面的访问开始时,创建代表当前jsp的PageContext,当对当前jsp页面访问结束时销毁代表当前jsp的pageContext
作用:在当前jsp中共享数据
public void setAttribute(java.lang.String name,java.lang.Object value) public java.lang.Object getAttribute(java.lang.String name) public void removeAttribute(java.lang.String name) public void setAttribute(java.lang.String name, java.lang.Object value,int scope) public java.lang.Object getAttribute(java.lang.String name,int scope) public void removeAttribute(java.lang.String name,int scope)PageContext.APPLICATION_SCOPEPageContext.SESSION_SCOPEPageContext.REQUEST_SCOPEPageContext.PAGE_SCOPE
findAttribute方法 – 搜寻四大作用域中的属性,如果找到则返回该值,如果四大作用域中都找不到则返回一个null,搜寻的顺序是从最小的域开始向最大的域开始寻找
(3)提供了请求转发和请求包含的快捷方法
pageContext.include(“/index.jsp”);
pageContext.forward(“/index.jsp”);
3.零散知识
(1)jsp映射
< servlet>
< servlet-name>index
< jsp-file>/index.jsp
< /servlet>
< servlet-mapping>
< servlet-name>index
< url-pattern>/jsp/*
< /servlet-mapping>
(2)JSP最佳实践
(3)域的总结
servletContext (application)
session (session)
request (request)
pageContext
如果一个数据只在当前jsp页面使用,可以使用pageContext域存储
如果一个数据,除了在当前Servlet中使用,还要在请求转发时带到其他Servlet处理或jsp中显示,这个时候用request域
如果一个数据,除了现在我自己要用,过一会我自己还要用,存在session域
如果一个数据,除了现在我自己要用过一会其他人也要用,存在ServletContext域中
- 重新学javaweb----九大隐式对象
- 重新学javaweb---ServletConfig
- 重新学javaweb---ServletContext
- 重新学javaweb ---- DbUtils
- 重新学javaweb---Response&Request
- 重新学javaweb---路径专题
- 重新学javaweb---cookie&&session
- 重新学javaweb----jsp标签
- 重新学javaweb---JSTL标签
- 重新学javaweb---JavaEE 监听器
- 重新学javaweb---文件下载
- 重新学javaweb---JSP乱码 图解
- 重新学javaweb----EL表达式(1)
- 重新学javaweb----EL表达式(2)--TLD
- 重新学javaweb---过滤器 Filter基础知识
- 重新学javaweb---文件上传1
- 重新学javaweb---文件上传监听--进度条
- 重新学javaweb---过滤器 应用--全站乱码
- iOS block传值
- Java正则表达式入门
- Mac极简安装Caffe并训练MNIST
- hdu 4362(单调队列优化dp)
- js两种形式写淡入弹出轮播图(面向对象和不面向对象)
- 重新学javaweb----九大隐式对象
- ubuntu 下 Ogre 引擎开发环境配置
- VS2008 OGRE环境搭建
- GitHub上README.md教程
- 删除win7上多余无效的托盘图标
- android 如何自定义view
- IE不能访问网站故障的一种解决办法
- 使用shell脚本显示出当前路径或者去掉目录路径
- mysql存储过程详解