美文网首页
jsp笔记3jsp运行原理

jsp笔记3jsp运行原理

作者: michaelYH | 来源:发表于2018-09-19 18:16 被阅读0次

    jsp第一次访问是会被翻译成servlet, 所以第一次访问通常会比较慢,但第二次访问,jsp引擎如果发现jsp没有变化,就不再会翻译,而是直接调用。

    jsp执行引擎:将jsp翻译成servlet的程序。

    jsp引擎在调用jsp对应的_jspServlet时,会传递或创建9个与web开发相关相关的对象供_jspServlet使用。

    九大隐式对象:

    request  response session application config page  exception out pageContext

    1. out隐式对象

    jps页面中out的隐式对象的类型为jspWriter,jspWriter相当于带缓存功能的PrintWriter.

    out.write("A")

    response.getWriter.write("B");

    输出的结果可能是BA,因为A写入缓存区,B也写入缓存区,当jsp结束的时候,A写入B的缓存区,显示到界面,所以最后显示结果为BA, 建议在开发的过程中用隐式对象的方式进行显示。

    2.pageContext

    2.1 代表jsp页面的运行环境

    2.2 对象封装了对其他8大隐式对象的引用

    2.3 提供的方法如下:

    getException

    getPage

    getRequest

    getResponse

    getServletConfig

    getServletContext

    getSession

    getOut

    用在自定义标签开发技术中。传递参数的时候只传递pageContext

    2.4 其他方法

    pageContex.setAttribute();  

    pageContext是域对象,涉及生命周期。

    在web开发中涉及pageContext/Request/Session/ServletContext四个域。

    findAttribute()

    pageContext.findAttribute()    //page request session application

    request.setAttribute("data","michael");

    String data = pageContext.getAttribute("data",PageContext.REQUEST_SCOPE);

    out.write(data);

    pageContext.findAttribute("data"); // page request session application

    el表达式

    ${data}     ===   pageContext.findAttribute("data"); // page  request  session application

    forward    include方法,简化RequestDispatcher.forward();

    方法接收的资源以"/"开头,"/"代表当前web应用

    pageContext.forward("/1.jsp")

    pageContext.include("/foot.jsp")

    相关文章

      网友评论

          本文标题:jsp笔记3jsp运行原理

          本文链接:https://www.haomeiwen.com/subject/hboinftx.html