程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> Servlet-Jsp,jspservlet

Servlet-Jsp,jspservlet

編輯:JAVA綜合教程

Servlet-Jsp,jspservlet


  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中的對象的序列化文件,用於服務器開啟時重新讀入到內存中。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved