如果一个jsp中,既有jsp脚本:<% %>,又<c:forEach>这些struts标签,
他们在tomcat中的解析顺序是怎样的,也就是翻译成servlet的顺序??
一、是按先后顺序谁前先解析谁吗?
二、还是先统一解析<c:forEach>这些struts标签,在解析<% %>?
三、是先<% %>再<c:forEach>?
四、乱来的。我在项目中不会把<% %>和<c:forEach>这些混写在一起,我知道的。
这是道面试题面试题来的,看你懂不懂原理,谁知道呢?

解决方案 »

  1.   

    这道题目比较简单
    首先应该回答每一个标签都是对应1个tld
    每一个tld是一个xml
    在tld里有一个<tag>标记的<name>对应一个<tag-class>类
    每次调用这个name的标签就会调用相对应的类
    具体xml配置可以去看下tld,流程就是这个简单最后在
    web.xml中加入这个tld页面的uri上对应一下就好了
      

  2.   

    我的理解 不知道对不对
    既然一个JSP在生成class文件前先生成一个servlet文件
    那么不管这个JSP里面含有<%...%> 还是jstl 都是按照顺序来解析的
    因为最后都是按照顺序输出的
      

  3.   

    我认为是从上到下解析的
    jsp是特殊的Servlet首先把jsp文件翻译成.java文件 这个类是继承org.apache.jasper.runtime.HttpJspBase这个类的
    文件中可以看到使用了 JspWriter out = pageContext.getOut(); out.write();可以在tomcat下的work目录下找到 再把.java文件编辑成.class文件
      

  4.   

    这个题有意思,这个出题人,也是没题出了吧!这样的题也想的到。
    这个开放任何系统没有任何联系,出这样的题一定是个外行。
    现在很对面试题上,我浏览过,很多都是很开发没有太多联系甚至没联系,就是乱搞。
    这个题看样就是人事那个外行乱搞的。
    出这样题目的公司,估计也不是怎么好公司?
    不过还是告诉,
    在jsp 解析到servlet过程中,是按jsp中源码顺序解析。形成java与html嵌套的java文件
      

  5.   

    就是不懂tag-lib.也可以想象出来。答案是2.
    因为底层的servlet容器根本不认识你是structs,还是spring这些框架。你要把一个jsp交给容器解析你就要交一个JSP规范的文档。如果structs不把tag-lib标签先解析了底层的servlet容器怎么知道你的tag是什么意思?
      

  6.   

    <c:forEach>里嵌套<%form%>再嵌套<c:forEach>运行下,看输出结果就晓得了。。
    我想应该是按顺序来的我也没有运行过 呵呵。。
      

  7.   

    我感觉选2,走Action后到达页面我想就应该先执行struts2  标签。
      

  8.   

    是啊 那就是分层解析了,貌似有多个解析器 struts,jsp等
      

  9.   

    咕~~(╯﹏╰)b,是面试华为做BOSS的一个项目,那人是做技术的,我在网上找不到答案就来问了