1、JSP容器的过期检查机制:
JSP编译成Java源文件:
java weblogic.jspc -keepgenerated -d .\WEB-INF\classes index.jsp;
将在\WEB-INF\classes\jsp_servlet生成__index.java文件;
// StaleIndicator interface
public boolean _isStale() {
weblogic.servlet.jsp.StaleChecker sci
=(weblogic.servlet.jsp.StaleChecker)(getServletConfig().getServletContext());
java.io.File f = null;
long lastModWhenBuilt = 0L;
if
(sci.isResourceStale("/index.jsp", 1174625990234L, "8.1.6.0", "Asia/Shanghai"))
return true;
return false;
}
public static boolean
_staticIsStale(weblogic.servlet.jsp.StaleChecker sci) {
java.io.File f =
null;
long lastModWhenBuilt = 0L;
if
(sci.isResourceStale("/index.jsp", 1174625990234L, "8.1.6.0", "Asia/Shanghai"))
return true;
return false;
}
源文件中包含两个方法,_staticIsStale(),其中包含文件名称、编译时间、版本、时区
1、 要检查的资源,比如,/foo.jsp。
2、 JSP页面的时间戳(长整型)。
3、 WebLogic Release
Build版。
4、 当前机器的默认时区。
_isStale()方法被回调,决定是否需要重新编译。
weblogic.servlet.jsp.StaleChecker.isResourceStale()
2、静态包含文件变化,也会导致JSP重新编译:
<%@ include file="header.inc"%>
_staticIsStale()方法中也会包含header.inc文件时间的记录。
3、导致重新编译的原因:
JSP编译后,JSP源文件被上传或复制到另一目录下,源文件时间戳改变,导致重编译。
修改weblogic.xml的packagePrefix参数将导致重新编译。
修改weblogic.xml的workingDir参数也会导致重新编译。
将预构建的WAR部属到一个更新版本的WebLogic服务器会导致重新编译所有JSP。
4、如何控制过期检查:
weblogic.xml JSP文件检查周期设置(秒,-1为永不检查)
<weblogic-web-app>
<jsp-descriptor>
<jsp-param>
<param-name>pageCheckSeconds
</param-name>
<param-value>-1
</param-value>
</jsp-param>
</jsp-descriptor>
</weblogic-web-app>
weblogic.xml /WEB-INF/class检查周期设置(秒,-1为永不检查)
<weblogic-web-app>
<container-descriptor>
<servlet-reload-check-secs>-1
</servlet-reload-check-secs>
</container-descriptor>
</weblogic-web-app>
JSP类加载器
每个JSP都是在自己的类加载器(通常称为一次性类加载器)中加载的。该类加载器是Web应用程序类加载器的子加载器,负责加载有关的JSP类及其内部类(如果有的话)。
更加简单的控制个别JSP文件改动导致所有JSP重新编译。
分享到:
相关推荐
在部署配置中,确保WebLogic知道已经预编译过的JSP文件,这样服务器在启动时就会直接加载预编译的Servlet,而不会尝试重新编译JSP。 五、优化与注意事项 - 预编译可能会增加磁盘空间的占用,因为每个JSP都会生成一...
**注意事项**:确保所有Java源代码已经正确编译,避免因未编译而直接打包导致部署失败。 ##### 3. 在Weblogic控制台中部署 **3.1 进入Weblogic控制台界面** 1. **重新登录控制台**:如前所述,通过浏览器登录...
【jsp网上书店源码weblogic】是一个基于JSP(JavaServer Pages)技术的网上书店项目,结合了WebLogic服务器和XML(eXtensible Markup Language)进行应用部署和配置。这个项目展示了如何利用JSP来构建动态网页,实现...
对于使用Myeclipse集成开发环境和Weblogic应用服务器的开发者来说,能够熟练地进行JSP和Java代码的断点调试是提高工作效率的重要技能。本文将详细介绍如何在Myeclipse中利用Weblogic中间件进行断点调试。 首先,...
默认情况下,WebLogic会监视JSP文件的变化,并在检测到更改时自动重新编译。然而,对于Java类,这种机制并不直接适用。为了解决这个问题,我们需要配置WebLogic的部署描述符文件`weblogic.xml`。 在`weblogic.xml`...
1. WebLogic 里面的一个 class 修改了,需要重新启动 WebLogic 吗? 答案是不需要重新启动 WebLogic。WebLogic 提供了热部署机制,可以在不重新启动的情况下部署新的类文件。 2. Tomcat 关于 UTF-8 JSP 文件的 BUG ...
虽然在示例中为空,但在实际使用中可以设置JSP编译选项、错误报告等。 ##### 4. `container-descriptor`元素 此元素用于配置容器级别的设置,如异常处理、事务管理等。 ##### 5. `context-root`元素 此元素非常...
6. 设置Java编译器,以提升JSP编译性能。 7. 利用WebLogic集群技术提高整体性能,通过负载均衡分散服务器压力。 8. 实时监控WebLogic域,及时发现性能瓶颈并采取相应措施。 总之,理解并优化WebLogic的配置文件对于...
Weblogic 部署项目详细步骤使用手册 Weblogic 是一种流行的 Java EE 服务器,可以部署各种类型的 Web...* Java EE:Java EE 是一种流行的企业级应用程序开发平台,提供了多种 API 和服务,例如 Servlet、JSP、EJB 等。
- 使用Apache Ant工具可以自动化构建Java项目,包括编译、测试和打包成JAR、WAR或EAR文件。这对于部署到WebLogic服务器上的应用来说,是非常有用的。 **3. EJB的jar** - EJB(Enterprise JavaBeans)是Java EE中...
本项目"jsp留言板(myeclipse、weblogic直接使用)"是用JSP技术构建的一个完整的留言板系统,具备留言、回复和删除等常见功能,适用于初学者学习和实际应用场景。 **1. JSP基础** - **JSP元素**: JSP页面包含指令...
如果不支持,则需要重新编译Apache并在编译时加入`--enable-module=so --enable-rule=SHARED_CORE`参数。 ##### 3. 修改Apache配置文件 完成插件安装后,还需要在Apache的配置文件`httpd.conf`中添加相应的配置...
JSP编译后并不是直接的Servlet,而是生成一个实现了Servlet接口的类。 3. **XML文档定义与解析** - **定义形式**:XML文档可以使用DTD(Document Type Definition)或XML Schema进行定义。DTD是XML的早期验证机制...
7. **jsp-descriptor**:定制JSP页面的编译和处理行为,如设置JSP的编译选项。 8. **auth-filter**:定义认证过滤器,用于在请求到达Servlet之前进行身份验证。 9. **container-descriptor**:提供Web容器的全局...
- **JSP配置**:JSP编译为Servlet运行,可通过JSP指令和表达式语言进行配置。 - **Session管理**:WebLogic支持基于cookie和URL重写的方式实现会话跟踪。 - **安全配置**:包括角色、权限、认证和授权,可利用...
欢迎来到“管理角”这个... JSP预编译的必要性 本月的文章着眼于移除潜在的系统性能瓶颈,它通过解决一个最普通的问题――在服务器运行时间中的JSP (JavaServer Page)编译的系统开销问题,这个问题困扰着几乎所有的J2E
- **JSP**:JavaServer Pages(JSP)使得HTML页面可以嵌入Java代码,WebLogic支持JSP的编译和执行。 - **EJB**:Enterprise JavaBeans(EJB)是Java EE的核心组件,WebLogic提供了对EJB 3.x的全面支持,包括实体...