今天碰到一个奇怪的问题,明明本地上好好的页面扔到服务器上就是通不过,搞了半天,才发现是was 与tomcat 的差异造成的。
跟踪到出错的位置,JSP代码如下:
java 代码
- String parentBSID = (String)request.getAttribute("parentBSID");
- pageContext.setAttribute("parentBSID", parentBSID);
在百度上搜索websphere pageContextImpl.setAttribute null,居然一无所获;google 搜出来的几个页面慢得跟蜗牛一样,没办法只能靠自己。反编译tomcat与websphere应用服务器上对应的PageContextImpl类,结果如下:
tomcat 的standard.jar包中对PageContextImpl的实现是:
java 代码
- mPage = Collections.synchronizedMap(new HashMap());
而was 的webcontainer.jar中对PageContextImpl的实现是:
java 代码
- attributes = new Hashtable(16);
tomcat和websphere对pageContext的实现最关键的差别就是前者使用了HashMap,后者使用了Hashtable,Java API Document 对Hashtable.put(Object key,Object value)有明确说明:“Maps the specified key to the specified value in this hashtable. Neither the key nor the value can be null.”
问题解决,可能很多人已经发现了这个差异,但我搜索不到,所以写在这给有需要的人作个参考吧。
分享到:
相关推荐
* Web 服务器:WebLogic、WebSphere、Tomcat 等 JSP 基础 * JSP 全称:Java Server Pages * JSP 优点:将内容的生成和显示分离、使用可重用的组件、采用标记简化页面开发、具有 Java 技术的所有好处、完善的存储...
常见的应用服务器有 BEA WebLogic Server、IBM WebSphere Application Server、Oracle9i Application Server、jBoss 和 Tomcat 等。这些服务器软件提供了对 Java EE 规范的支持,允许开发者使用 Java 语言开发 Web ...
6. **配置IDE**:在IDE中设置JSP和Tomcat的集成,例如在Eclipse中,可以创建一个“Dynamic Web Project”,关联Tomcat服务器,并将项目部署到服务器上。 **JSP文件结构**: JSP文件通常包含静态HTML和嵌入的Java...
常见的应用服务器有BEA WebLogic Server、IBM WebSphere Application Server、Oracle9i Application Server、jBoss、Tomcat等。 四、数据连接池 数据连接池是在J2EE服务器启动时建立一定数量的池连接,并一直维持...
8. **应用服务器**:2010年时,常见应用服务器有Tomcat、Jetty、JBoss、WebLogic、WebSphere等,它们提供Servlet和JSP的运行环境,支持EJB等企业级服务。 9. **SessionBean组件**:EJB(Enterprise JavaBeans)中的...
11. **Web容器和应用服务器**:如Tomcat、Jetty、WebLogic、WebSphere等,它们提供了运行JavaEE应用的环境,理解它们的工作方式对解决实际问题很有帮助。 12. **部署描述符**:如web.xml,它是JavaEE应用的配置文件...
在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。...
- **1.4.1 J2EE应用服务器**:J2EE应用服务器是运行J2EE应用程序的平台,常见的有Apache Tomcat、IBM WebSphere、Oracle WebLogic等。 - **1.4.2 J2EE开发环境搭建**:一般包括安装Java JDK、配置J2EE应用服务器以及...
- Tomcat、Jetty、WebLogic、WebSphere等的区别和应用场景。 - 部署WAR和EAR文件,以及应用的上下文路径设置。 7. **RESTful Web服务**: - REST原则:无状态、缓存、统一接口等。 - 使用JAX-RS(Java API for ...
- HttpSession (session):用于在客户端和服务器之间保持状态的会话对象 - ServletContext (application):整个应用共享的数据存储 - ServletConfig (config):Servlet的配置信息 - Object (page):当前页面的...
- **1.4.1 J2EE应用服务器**:如Apache Tomcat、IBM WebSphere、Oracle WebLogic等,它们提供了一个运行J2EE应用所需的环境。 - **1.4.2 J2EE开发环境搭建**:主要包括安装JDK(Java Development Kit)、配置开发...
**最熟悉:** Apache Tomcat,因其简单易用,在学习和开发过程中使用频率最高。 #### 2. 你熟悉的Java Web的MVC框架有哪些?其中你最熟悉哪种?谈谈你对MVC的认识。 - **Spring MVC**: 基于Spring框架的MVC实现,...
要开始JSP编程,首先需要安装Java Development Kit (JDK) 和一个支持JSP的服务器,如Apache Tomcat或IBM WebSphere。确保JDK正确安装并配置好环境变量,接着下载并解压服务器,根据服务器的文档指导进行配置,最后将...