`

手工编译jsp

    博客分类:
  • java
阅读更多

A java-classpath jasper.jar;servlet-api.jar;catalina.jar;F:\server\tomcat.6\bin\tomcat-juli.jar;ant.jar;jsp-

 

api.jar;jasper-el.jar;el-api.jar;jstl.jar;standard.jar;jasper-el.jar;jasper-jdt.jar org.apache.jasper.JspC  -

 

uriroot ./temp -d temp temp.jsp

JspC类在jasper.jar

运行上边的命令 因为用到jstl标签。所以有jstl.jar standard.jar.上边那些jar都是tomcat中的jar,另外需要个antjar

 

下边是tomcat源码TldLocationsCache.java中看到的,看不明白。估计需要这些jar,我只用了上边的A处的。

noTldJars = new HashSet<String>();

        // Bootstrap JARs

        noTldJars.add("bootstrap.jar");

        noTldJars.add("commons-daemon.jar");

        noTldJars.add("tomcat-juli.jar");

        // Main JARs

        noTldJars.add("annotations-api.jar");

        noTldJars.add("catalina.jar");

        noTldJars.add("catalina-ant.jar");

        noTldJars.add("catalina-ha.jar");

        noTldJars.add("catalina-tribes.jar");

        noTldJars.add("el-api.jar");

        noTldJars.add("jasper.jar");

        noTldJars.add("jasper-el.jar");

        noTldJars.add("jasper-jdt.jar");

        noTldJars.add("jsp-api.jar");

        noTldJars.add("servlet-api.jar");

        noTldJars.add("tomcat-coyote.jar");

        noTldJars.add("tomcat-dbcp.jar");

        // i18n JARs

        noTldJars.add("tomcat-i18n-en.jar");

        noTldJars.add("tomcat-i18n-es.jar");

        noTldJars.add("tomcat-i18n-fr.jar");

        noTldJars.add("tomcat-i18n-ja.jar");

        // Misc JARs not included with Tomcat

        noTldJars.add("ant.jar");

        noTldJars.add("commons-dbcp.jar");

        noTldJars.add("commons-beanutils.jar");

        noTldJars.add("commons-fileupload-1.0.jar");

        noTldJars.add("commons-pool.jar");

        noTldJars.add("commons-digester.jar");

        noTldJars.add("commons-logging.jar");

        noTldJars.add("commons-collections.jar");

        noTldJars.add("jmx.jar");

        noTldJars.add("jmx-tools.jar");

        noTldJars.add("xercesImpl.jar");

        noTldJars.add("xmlParserAPIs.jar");

        noTldJars.add("xml-apis.jar");

        // JARs from J2SE runtime

        noTldJars.add("sunjce_provider.jar");

        noTldJars.add("ldapsec.jar");

        noTldJars.add("localedata.jar");

        noTldJars.add("dnsns.jar");

        noTldJars.add("tools.jar"); j2eelib下的jar

        noTldJars.add("sunpkcs11.jar");

我的目录结构F:/server/tomcat.6/lib

F:/server/tomcat.6/lib/jspC.bat

F:/server/tomcat.6/lib/temp/temp.jsp

F:/server/tomcat.6/lib/temp/WEB-INF/web.xml 编译jstl的话需要用到web.xml.

F:/server/tomcat.6/lib/temp/c.tld 编译jstl的话需要用到c.tld,standard.jarMETA-INF目录中解压出来。

 

 

jspC.bat 就是上边A 的编译命令。

我在tomcat/lib 目录下编译

不用jstl的话。在temp目录中建立temp.jsp如下,运行上边命令。在temp目录下就生成了org.apache.jsp.temp_jsp.javaservlet原文件。

 

<%@page pageEncoding="utf-8"%>

<html>

    <head>hello</head>

    <body>

    </body>

</html>

 

需要编译包含jstljsp的话,需要用到web.xml

Temp.jsp改为如下

<%@page pageEncoding="utf-8"%>

<%@ taglib prefix="c" uri="c.tld"%>

<html>

    <head>hello</head>

    <body>

   

       <c:out value="helloWorld"></c:out>

    </body>

</html>

 

Web.xml中定义如下:刚发现dtdj2ee/lib/dtds中可以找到。

<!DOCTYPE web-app PUBLIC

    "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

    "http://java.sun.com/dtd/web-app_2_3.dtd"> 

<web-app>

    <jsp-config>

   <taglib>

        <taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>//uri就是c.tld中声明的uri

       <taglib-location>c.tld</taglib-location>就是temp目录下的c.tld

    如果是stardard.jar

     </taglib>

     </jsp-config>

</web-app>

如果是stardard.jar就是找jar包中就找下边这个路径。

"META-INF/taglib.tld";

运行上边A处命令可以编译。同样在temp.jsp中生成一个org.apache.jsp.temp_jsp.java文件.

如果运行出错:没有堆栈信息。或者提供信息不多。因为代码中没有e.printstacktract().我的办法是把tomcat源码下载下来 。手动加上e.printstacktract()

运行jspC.java文件。

jspC编译参数如下:可以运行改下上边A JspC –help列出编译应该是运行参数

protected static Log log = LogFactory.getLog(JspC.class);

 

    protected static final String SWITCH_VERBOSE = "-v";

    protected static final String SWITCH_HELP = "-help";

    protected static final String SWITCH_OUTPUT_DIR = "-d";

    protected static final String SWITCH_PACKAGE_NAME = "-p";

    protected static final String SWITCH_CACHE = "-cache";

    protected static final String SWITCH_CLASS_NAME = "-c";

    protected static final String SWITCH_FULL_STOP = "--";

    protected static final String SWITCH_COMPILE = "-compile";

    protected static final String SWITCH_SOURCE = "-source";

    protected static final String SWITCH_TARGET = "-target";

    protected static final String SWITCH_URI_BASE = "-uribase";

    protected static final String <span styl

分享到:
评论

相关推荐

    JSP所需的jar包

    6. **jasper-compiler.jar**和**jasper-runtime.jar**:Apache Tomcat服务器的Jasper引擎用于编译JSP页面到Java servlet。这两个jar包包含了编译和执行JSP的必要组件。 7. **javassist.jar**:在某些情况下,如...

    编译tomcat源码所需jar包

    编译源码时,会用到`ecj.jar`,这是Eclipse Java Compiler的jar包,用于编译JSP文件。 6. **其他依赖库**:Tomcat源码中还包括了其他一些必要的库,如`servlet-api.jar`、`jsp-api.jar`等,这些都是Java Web应用的...

    李兴华视频教程笔记 Java JSP 技术

    - **运行过程**:初次访问JSP页面时,服务器会先将其编译成Java源代码,然后编译成字节码文件(`.class`文件)。这一过程可能会导致首次访问速度较慢,但后续访问会更加迅速。 #### 五、注释处理 - **注释类型**:...

    Jsp开发的基本的网上书店

    而对于有一定经验的开发者,这个项目可以作为不依赖框架的简单应用实例,理解如何手工管理请求响应和数据操作。同时,这也是一个改进和优化的好机会,比如引入MVC框架(如Spring MVC)以提高代码组织和可维护性,...

    基于JSP技术的教师办公系统的设计与实现.pdf

    JSP文件通过Web服务器上的JSP引擎被编译成Servlet类字节码文件,然后由Servlet引擎执行。 ##### 2.2 JSP与Servlet的工作原理 JSP和Servlet都支持HTTP请求/响应模型,并且采用多线程的方式来处理来自客户端浏览器的...

    JSP源码基于JSP技术的猎头公司管理软件的设计和实现-内部事务部分(源代码+论文)

    传统的手工管理方式效率低下且容易出错,因此,开发一款基于JSP技术的猎头公司管理软件显得尤为必要。 #### 2.2 项目目标 该项目旨在利用JSP技术开发一套高效、稳定的猎头公司内部事务管理系统,以提高工作效率和...

    JSP设计的学生管理系统

    JSP文件被服务器编译成Servlets,然后执行并生成动态HTML页面返回给客户端。 - **HTML (HyperText Markup Language)**: 超文本标记语言,用于创建网页结构的标准标记语言。 - **SQL Server**: 微软开发的关系型...

    基于JSP的图书管理系统的课程设计报告

    - **执行速度**:首次编译后,JSP页面会驻留在服务器内存中,提高响应速度。 - **Java优势**:充分利用Java语言的跨平台性、健壮性等特点。 - **可扩展性**:通过自定义JSP标签库来减少对脚本语言的依赖,提高...

    JSP源码JSP学生信息管理系统(部分论文及截图)

    - JSP 页面在服务器端被编译成 Servlets,然后由服务器执行并返回结果给客户端。 2. **Java**: - Java 是一种广泛使用的高级编程语言,以其强大的跨平台能力和丰富的类库而著称。 - 在本系统中,Java 主要用于...

    JavaWeb开发(jsp)课程设计借鉴.pdf

    JSP页面在首次访问时会被编译成Java字节码,后续请求可以直接从内存中获取,提高响应速度。同时,JSP还支持自定义标签库,降低对脚本语言的依赖,增强代码的可重用性。 JDBC是Java语言中与数据库交互的标准接口,...

    JSP源码jsp高校智能排课系统设计(源代码+论文)

    在教育信息化的背景下,高校课程安排日益复杂,传统的手工排课方式不仅效率低下,而且容易出现时间冲突等问题。因此,开发一套高校智能排课系统显得尤为重要。该系统能够自动进行课程安排,解决教师、学生之间的教学...

    JSP源码JSP自动排课管理系统(源代码+论文+开题报告)

    - JSP 页面最终会被编译成 Servlet,并由服务器执行。 2. **Java**: - Java 是一种广泛使用的面向对象编程语言,具有良好的跨平台特性。 - 在本系统中,Java 主要用于处理后台逻辑,如数据库操作、算法实现等。...

    3-张壮壮-201730910524-开题报告-基于JSP的学生公寓管理系统设计与实现1

    JSP页面在运行时会被编译为Java Servlet,服务器端执行后返回结果给客户端,减轻了客户端的负担,提高了用户体验。 5. 实现策略 系统开发过程中,将采用以下步骤: - 需求分析:深入了解学生公寓管理的实际需求,...

    基于ssm+jsp实验室耗材管理系统源码数据库.doc

    JSP页面由Web服务器上的JSP引擎编译执行,并返回HTML页面给客户端浏览器。JSP技术非常适合用于构建动态网站和Web应用程序。 **2.4 MySQL** MySQL是一个关系型数据库管理系统(RDBMS),它在Web开发中被广泛应用。...

    svn增量包工具

    但是有时候开发一个功能模块所涉及到的文件HTML,jsp,js,web,controller,service,mapper,mpper.xml等等很多文件,加入需要编译之后手工拷贝到一个文件夹下再一个一个的找到对应目录上传到服务器,(...这个过程即...

    基于jsp的毕业选题系统源码数据库.doc

    - **手工报送效率低下**:传统的手工选题方式效率低,容易出错。 - **资源分配不均**:由于信息不对称,导致优质题目被快速抢占,而一些较为冷门的题目则无人问津。 - **流程复杂**:整个选题过程涉及到多个环节,如...

    基于jsp+ssh的失物招领管理系统源码数据库.doc

    在信息化时代背景下,传统的手工管理模式在效率、安全性等方面存在诸多不足,尤其是在处理大量数据时,查找、更新和维护变得异常复杂。本项目——基于JSP+SSH的失物招领管理系统,旨在解决这些问题,提升失物招领...

Global site tag (gtag.js) - Google Analytics