jsp需要编译成exe文件吗
不需要。
jsp不需要编译,因为修改jsp之后,不需要重启,页面能立马生效。
所谓jsp即JavaServerJages即Java服务器界面,是一种动态的网页开发技术,通过使用JSP标签在HTML中插入JAVA代码,并由JSP引擎进行编译执行之后,然后将整个生成的页面返回到客户端。
jsp文件需要编译吗?如果需要,那么编译过程是怎么样的?
jsp文件需要编译成servlet在web容器中运行的。
编译过程如下:
1、用户访问jsp页面时,jsp的处理过程如下图所示:
2、编译阶段
预处理阶段把jsp文件解析为java代码,编译阶段jsp引擎把java代码编译成servlet类文件,对于Tomcat,生成的class文件默认情况下存放在Tomcat/work目录下。
jsp预编译问题
这个方法是到目前为止进行JSP预编译最方便的途径( flick a switch 途径) 他有许多指出来毫无意义的缺点 如果一个错误在JSP的编译期间或在部署(或重新部署) 的时候发生 Web 应用程序的预编译将会在例外处暂停 另外 如果在一个特定的Web应用程序里面有许多JSP文件的情况 declarative预编译显著的影响着部署时间 阻断部署直到所有的文件都被编译 对于大型的应用程序 当出现数以百计的JSP 文件以declarative预编译被执行的时候 这种部署时间趋向以分钟来计算 (在某些情况 到 分钟 其他情况可能更长时间) 设想开始一个服务器实例 在一个特定的Web应用程序周期内进入部署状态用declarative 预编译激活 如果在应用内有很多的JSP文件以及部署 接近完成时就已经花费了大量的时间 在编译期间由于抛出一个例外而突然失败 当然会引起挫折感 虽然起先看起来比较方便 但declarative 编译对生产系统管理造成重大的风险 因此应该在经过慎重的考虑后再使用它
程序方式的预编译
在WLS下最可靠的预编译JSP的方法是使用Java命令行 weblogic jspc 它位于WLS安装的lib目录之下的weblogic jar文件中 这个工具允许开发者在发展阶段和在部署前解决编译时间问题的时候编译需要的JSP文件 它也为生产系统提供一个有能力实现JSP预编译的管理员 这种用法的主要好处是
● 文件可以被预编译一次然后可以被多次部署 (这不被服务器实例的重复利用所影响)
● 编译时的例外可以被预先解决而不影响部署
● 类可以通过集群部署
使用weblogic jspc的缺点是需要人工干涉 并且它在开发时并当在JSP文件变得过时的时候必须被重新运行 然而 考虑到前面的两个方法的讨论 我们几乎不能将这种不方便当成该方法的一个缺点 因此推荐它作为最可靠和最灵活的机制来实现JSP预编译
执行weblogic jspc
为了更有效的使用weblogic jspc 你必须首先了解它的用法和语法 这篇文章我们将利用WLS SP 的工具的功能 注意 下面给出的语法和最好的惯例应该应用于WLS 的所有版本以及新的WLS
为了调用命令行JSP编译器(weblogic jspc) 你必须确定下面的内容
● PATH环境变量必须包含你机器上安装的J SE 包的二进制目录(例如 /opt/j se/ /sdk/bin 或者c:sunsoftj se sdkin) 以获得JVM运行时的支持 如果你打算使用javac作为你的JSP编译的Java编译器 要确定PATH包含全部Java 的软件开发工具包(SDK)的二进制目录 并且不仅仅是JRE(Java Runtime Engine Java运行时间引擎) 因为没有编译器和JRE关联 如果你打算使用一个编译器而不是javac(例如 Jikes) 也要为那个编译器确定在PATH中包含正确的目录
● 设置Java系统类路径用来包含来自WLS SP 安装目录的weblogic jar文件 通过在产品库目录下默认建立(例如 /opt/bea/wlserver /lib/weblogic jar或者c:eawlserv er libweblogic jar) 此外 请确定在JSP编译阶段中你可能需要的参考类(JAR或类文件)也在你的类路径中
在第一次执行weblogic jspc之前 你需要测试你的命令行配置是否是按上述配置 它可以通过简单运行一个WLS版本检查来完成 使用命令 java weblogic version 这个命令应该返回下面的内容
which should return the following:
WebLogic Server SP / / : :
#
WebLogic XML Module SP / /
: : #
如果你的输出和上面的不相似(和你运行的版本相对应) 在进行JSP预编译前 要重新访问PATH和类路径变量将其设置成你的当前命令行环境
一般的weblogic jspc的语法如下面给出的
java weblogic jspc [options] …
在一个编译器的单一调用中默认情况下JSP编译器可以编译一个JSP文件或一组JSP文件 并且可以通过设置命令行选项 编译器可以以不同的方法工作 下面给出一个例子
java
weblogic jspc
webapp mywebapp
piler javac
pileFlags g
classpath /u/apps/dist/src/lib jar
d
package slackwerks mywebapp jsp
mentary
keepgenerated
k
mywebappindex jsp
这篇文章只列举了一个例子 如果你要想更加了解weblogic jspc如何能在你的环境中使用和管理的话 请参阅/wldj 我们提供了对整套的工作选项 使用的含义以及相关联问题的讨论
结论
lishixinzhi/Article/program/Java/hx/201311/25749
jsp什么时候需要编译?什么时候不需要?
jsp要转换成servlet,servlet才能经过编译class文件 在调用构造方法,init方法等。jsp只要没有被改动,就不用编译,