`
kiki1120
  • 浏览: 315823 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

开启Jasper的JSP预编译支持

阅读更多

    不少Java Web容器(如Tomcat, Jetty等等)都采用Apache Jasper作为其JSP容器,用它来对JSP文件进行编译,调用由JSP编译成的Servlet等。在这类Web容器中,只要将jsp文件按扩展名映射到org.apache.jasper.servlet.JspServlet,就可以将JSP全权交由Jasper来处理,免去了自行编写JSP处理逻辑的麻烦。

    JSP预编译是指在部署一个Web应用前(或部署时),就将Web应用中所有的JSP文件编译成Servlet的.class文件,这样在客户端访问JSP时,JSP容器不再对JSP文件进行编译,而是直接寻找编译好的.class文件进行加载和调用。JSP预编译可以提高Web应用的性能,同时,Web应用开发者可以在部署前就将所有JSP编译成.class文件,然后将JSP文件删去,这样可以使JSP代码不被不该看的人看到。编译成的.class文件应放在Web应用的WEB-INF/classes目录下,包名为org.apache.jsp,文件名模式为“JSP文件的主名_扩展名.class”,例如index.jsp对应的.class文件为index_jsp.class。

    部署时进行JSP编译的方法不在本文讨论范围之内,我们只讨论如何让Jasper启用JSP预编译支持。

    在JspServlet(它是一个servlet)的初始化参数里有一个“usePrecompiled”,我们只要将其设为True即可启用JSP预编译支持。不同的Web容器在不同的地方进行此项配置,我们以Jetty 6.1.24为例:在etc/webdefault.xml中有如下一段:

 

 

  <servlet id="jsp">
    <servlet-name>jsp</servlet-name>
    <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
    <init-param>
        <param-name>logVerbosityLevel</param-name>
        <param-value>DEBUG</param-value>
    </init-param>
    <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>0</load-on-startup>
  </servlet>

  
    与这里面所有的init-param标签并列地,再添加一个如下内容的init-param标签即可:
  
 

    <init-param>
        <param-name>usePrecompiled</param-name>
        <param-value>true</param-value>
    </init-param>

     
    也可以通过修改Jetty 6.1.24代码来进行,在org.mortbay.jetty.webapp.WebXmlConfiguration.initServlet(Node)方法中的以“if (id!=null && id.equals("jsp"))”打头的代码块中添加如下一条语句即可:

    holder.setInitParameter("usePrecompiled", "true");

转自:http://blog.csdn.net/langchibi_zhou/archive/2010/06/15/5672860.aspx

 

 

 

分享到:
评论

相关推荐

    Tomcat的jsp编译参数

    【标题】"Tomcat的JSP编译参数" 在Java Web开发中,Tomcat服务器扮演着重要的角色,尤其是对于处理JSP(JavaServer Pages)页面。JSP是一种动态网页技术,它允许开发者将HTML代码与Java代码混合编写,从而实现动态...

    把jsp编译打包成jar

    总的来说,将JSP编译打包成jar是一个将静态的JSP文件转换为可执行的Servlet代码,并利用构建工具Ant完成打包的过程,这样可以方便地在不支持JSP的环境中运行和部署。这个过程涉及到JSP、Servlet、Ant构建工具以及web...

    jsp调用jasper

    jsp调用jasper jsp 调用 jasper 是一种常见的报表生成方式,jasper 报表工具可以与 jsp 集成,以生成动态的报表。下面是 jsp 调用 jasper 的一些关键知识点: 1. iReport 设置默认语言:在 iReport 中,语言设置...

    Tomcat JSP编译器Jasper.docx

    **Jasper:Tomcat的JSP编译器** Jasper是Apache Tomcat服务器中的核心组件,...同时,通过集成像JSR-45这样的标准和先进的编译技术,Jasper提供了良好的调试支持和高效的代码生成,为JSP应用的开发和维护提供了便利。

    org.apache.jasper 的jar包下载

    在实际开发中,Apache Jasper的配置可以通过Tomcat的conf目录下的web.xml文件进行调整,例如设置错误处理、JSP编译选项、缓存策略等。了解并熟练掌握这些配置可以帮助优化JSP应用的性能和稳定性。 总结来说,Apache...

    JASPER

    4. **错误处理**:JASPER能够捕获并报告JSP编译期间出现的错误,有助于开发者快速定位和修复问题。 5. **优化**:JASPER还提供了对JSP页面的优化功能,例如,它可以合并多个小的JSP文件为一个大的Servlet,减少...

    jasper-runtime.jar jasper-compiler.jar

    Jasper编译器对开发者隐藏了底层的编译细节,使得开发者可以专注于JSP页面的设计,而不必深入理解底层的编译机制。 在了解了这两个JAR包的用途之后,我们再来深入探讨一下Jasper项目在Java Web开发中的重要角色。...

    jasper-runtime.jar

    **JSP编译过程**: 1. **解析阶段**:当JSP页面被请求时,服务器会将JSP页面转换为一个Java源代码文件(默认扩展名为`.java`)。这个过程是由JSP引擎完成的,jasper-runtime.jar就提供了这个功能。 2. **编译阶段**...

    jsp上使用jasper做报表

    编译阶段是将JRXML转换为.jasper编译文件,这个编译文件可以被JasperReports引擎执行。 在JSP中使用JasperReports,我们需要以下步骤: 1. **安装和配置**:首先,确保你的项目中包含了JasperReports库(jar文件)...

    jsp 自动编译机制详细介绍

    JSP编译发生在Wrapper级别,通过StandardWrapper进行控制。在每个容器中,都有一个后台线程执行backgroundProcess方法,以处理各种后台任务。JspServlet,作为Servlet实例,实现了PeriodicEventListener接口,它的...

    JSP所需的jar包

    7. **javassist.jar**:在某些情况下,如Tomcat的Jasper引擎,可能会用到javassist库来动态地修改字节码,这是JSP编译过程的一部分。 8. **javax.faces.*.jar**:对于使用JSF技术的项目,如`jsf-api.jar`和`jsf-...

    编译tomcat源码所需jar包

    5. **Jasper Compiler**:Jasper是Tomcat中的JSP编译器,负责将JSP文件转换为Servlet。编译源码时,会用到`ecj.jar`,这是Eclipse Java Compiler的jar包,用于编译JSP文件。 6. **其他依赖库**:Tomcat源码中还包括...

    junit扩展JspTest.zip

    内部它使用Jasper作为jsp编译引擎---tomcat的jsp引擎。对于使用maven作为构建工具的团队或个人,使用非常简单,添加下面的依赖到你的pom文件    &lt;groupId&gt;com.github.lkoskela.jsptest&lt;/groupId&gt;  &lt;artifactId&gt;...

    jsp下的jar包, 一共五个

    5. **jasper.jar**:Tomcat服务器(或其他兼容的Servlet容器)的一部分,负责JSP的编译工作,将JSP页面转换为Java源代码,然后编译成Servlet。 6. **jsp-api-*.jar**和**jsp-impl-*.jar**:有时,容器会区分JSP API...

    springBoot支持JSP页面的 3个必须依赖包

    tomcat-embed-jasper 依赖包是 Tomcat 嵌入式容器的 JSP 引擎,它提供了 JSP 页面的编译和执行功能。在 Spring Boot 项目中,我们需要这个依赖包来支持 JSP 页面的编译和执行。在 Maven 项目中,我们可以添加以下...

    jasper_Java

    2. **编译报表模板**:设计完成后,模板需要被编译成.jasper文件,这是jasper报表引擎可以识别的格式。 3. **填充数据**:在Java代码中,开发者使用 JasperFillManager 填充数据源到报表模板,数据源可以是数据库...

    SpringBoot添加JSP支持实例代码

    在Spring Boot框架中,默认情况下并不直接支持JSP视图解析,因为Spring ...同时,考虑到JSP在现代Web开发中的局限性,如动态标签支持不足,以及编译和加载速度较慢,建议在新的项目中优先考虑使用更现代的模板引擎。

    commons-el-1.0.jar,jasper-compiler.jar,jasper-runtime.jar

    JSP编译器的作用是将JSP文件转换为Java源代码,然后再编译成Servlet。这个过程是JSP生命周期的一部分,从JSP到Servlet的转换使得JSP可以被高效的处理和执行。jasper-compiler.jar提供的编译器负责解析JSP文件,生成...

    tomcat6.0源码及编译依赖项(可编译)

    源码揭示了JSP编译过程,包括EL表达式和JSTL的处理。 编译过程: 1. **Apache Ant**:Apache Ant是一个Java库和命令行工具,用于驱动构建过程。在`tomcatsource`目录中,通常会包含一个名为`build.xml`的Ant构建...

    spring boot之jsp整合

    Spring Boot以其“开箱即用”的特性,极大地简化了Java Web开发,但默认并不支持JSP,而是倾向于使用Thymeleaf、Freemarker或Mustache等模板引擎。然而,如果你的项目需要使用JSP,可以通过以下步骤进行整合。 首先...

Global site tag (gtag.js) - Google Analytics