JSP运行原理和九大隐式对象-创新互联

   每个JSP 页面在第一次被访问时,WEB容器都会把请求交给JSP引擎(即一个Java程序)去处理。JSP引擎先将JSP翻译成一个_jspServlet(实质上也是一个servlet) ,然后按照servlet的调用方式进行调用。

创新互联公司专业为企业提供宝应网站建设、宝应做网站、宝应网站设计、宝应网站制作等企业网站建设、网页设计与制作、宝应企业网站模板建站服务,10余年宝应做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

   由于JSP第一次访问时会翻译成servlet,所以第一次访问通常会比较慢,但第二次访问,JSP引擎如果发现JSP没有变化,就不再翻译,而是直接调用,所以程序的执行效率不会受到影响。

   JSP引擎在调用JSP对应的_jspServlet时,会传递或创建9个与web开发相关的对象供_jspServlet使用。JSP技术的设计者为便于开发人员在编写JSP页面时获得这些web对象的引用,特意定义了9个相应的变量,开发人员在JSP页面中通过这些变量就可以快速获得这9大对象的引用。

   1、page当前servlet对象

   2、confingservletconfig对象

   3、application servletcontext对象,当前web应用

   4、response

   5、request

   6、session

   7、out

   8、exception在错误提示页面的对象,表示上一页页面抛出的异常。

   9、pageContext     代表整个JSP页面对象

*out

   1、相当于是response.getWriter得到PrintWriter对象

   2、out和response.getWriter获取到的流,稍微有些不同,在于这个out对象本身就具有一个缓冲区。利用out写出的内容,会先缓冲在out缓冲区中,直到out缓冲区满了或者整个页面结束时,out缓冲区中的内容才会被写出到response缓冲区中,最终可以带到浏览器页面进行展示。

   3、page指令中的

buffer="none | 8kb | sizekb" 可以用来禁用out缓冲区或设置out缓冲区的大小,默认8kb。

 autoFlush="true | false"用来设置当out缓冲区满了以后如果在写入数据时out如何处理,如果是true,则先将满了的数据自动刷新到response中后再接受新数据;如果是false,则满了再写入数据直接抛异常。

4、在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( name, value)

public java.lang.Object getAttribute( name)

public void removeAttribute( name)

public void setAttribute( name,  value, int scope)

public java.lang.Object getAttribute( name, int scope)

public void removeAttribute( name, int scope)

PageContext.APPLICATION_SCOPE      大

JSP运行原理和九大隐式对象PageContext.SESSION_SCOPE

PageContext.REQUEST_SCOPE

PageContext.PAGE_SCOPE              小

findAttribute方法 -- 搜寻四大作用域中的属性,如果找到则返回该值,如果四大作用域中都找不到则返回一个null,搜寻的顺序是从最小的域开始向大的域开始寻找

         

(3)提供了请求转发和请求包含的快捷方法

pageContext.include("/index.jsp");

pageContext.forward("/index.jsp");

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。


文章标题:JSP运行原理和九大隐式对象-创新互联
链接地址:http://myzitong.com/article/deoehs.html