• Servlet-Jsp


      Jsp实际就是Servlet。


      我们访问Http://localhost:8080/Web/index.jsp的流程:

      1 【jsp文件名】.jsp转义为【jsp文件名_jsp】.java,文件存储在Tomcat下的Work目录下的org的apache的jsp文件中。
      2 编译jsp文件名_jsp.java为.class文件,文件存储位置和【jsp文件名_jsp】.java位置相同。
      3 JVM执行.class文件。

       查看转义后的.java文件:

       public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase

       而HttpJspBase又继承了HttpServlet,可见生成的.java文件是个Servlet类。

       疑问:

       我们在<%中使用的对象%>来源于哪里呢?

       解决:查看源代码

       final javax.servlet.jsp.PageContext pageContext;
        javax.servlet.http.HttpSession session = null;
        final javax.servlet.ServletContext application;
        final javax.servlet.ServletConfig config;
        javax.servlet.jsp.JspWriter out = null;
        final java.lang.Object page = this;
        javax.servlet.jsp.JspWriter _jspx_out = null;
        javax.servlet.jsp.PageContext _jspx_page_context = null;

       这里面的对象是我们编写jsp页面的时候使用的对象。

      

       Jasper:解析JSP的引擎

      Jasper是tomcat中使用的JSP引擎,在Tomcat 6中使用的是Jasper 2,相对于原来的版本作了不少的改进,比如:JSP的标签缓冲池、后台编译、页面改变时自动重新编译、Eclipse中JDT编译等等。

      在Tomcat中可以通过配置 CATALINA_HOME/conf/web.xml 中的内容,配置Jasper的选项:

         <servlet>
            <servlet-name>jsp</servlet-name>
            <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
            <init-param>
                <param-name>fork</param-name>
                <param-value>false</param-value>
            </init-param>
            <init-param>
                <param-name>xpoweredBy</param-name>
                <param-value>false</param-value>
            </init-param>
            <load-on-startup>3</load-on-startup>
        </servlet>

      Tomcat下的Work工作目录:(这里只是我至今发现的功能,可能还有其它功能)

      1 存放.jsp文件转义的.java文件和.class文件。

      2 当服务器停止时,存放位于HttpSession中的对象的序列化文件,用于服务器开启时重新读入到内存中。

  • 相关阅读:
    C++ 数组array与vector的比较
    C/C++头文件区别
    C/C++ 标准输入输出重定向
    C文件读写
    输入输出重定向
    【剑指offer26 二叉搜索树与双向链表】
    【剑指offer25 复杂链表的复制】
    【剑指offer23 二叉搜索树的后序遍历序列】
    【剑指offer22 从上往下打印二叉树 & 60 把二叉树打印成多行】
    【剑指offer21 栈的压入、弹出序列】
  • 原文地址:https://www.cnblogs.com/kingofkai/p/5870859.html
Copyright © 2020-2023  润新知