`
zhuyuanxiang
  • 浏览: 127106 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

在Tomcat上开发Web应用如何保证兼容性

阅读更多

最近,协助伙伴将Tomcat上开发的应用向Apusic移植时发现了一个兼容性问题。
应用中代码为:HashMap params = (HashMap) request.getParameterMap();

而getParameterMap()在JCP规范中的定义为:
public java.util.Map getParameterMap()
Returns a java.util.Map of the parameters of this request. Request parameters are extra information sent with the request. For HTTP servlets, parameters are contained in the query string or posted form data.
请求的参数将返回一个java.util.Map。请求参数是请求发送的特别信息。对于HTTP servlets来说,参数包含在查询字符串或者发出的表单数据中。

Returns: an immutable java.util.Map containing parameter names as keys and parameter values as map values. The keys in the parameter map are of type String. The values in the parameter map are of type String array.
一个不可更改的java.util.Map包含参数名称(关键字)和参数值(映射值)。参数映射中的关键字是String类型。参数映射中的值是String数组类型。

可见规范中定义的返回值只是Map类型,而没有强制为HashMap。
Apusic在实现的时候也是Map作为返回值,而Tomcat返回时(参考org.apache.catalina.connector.Request.java)就是一个扩展自HashMap的ParameterMap类,因此开发时如何作为Map来用也不会出现问题,但是如果强制转换成HashMap就可能会与其他应用服务器产品无法正确兼容。

Tomcat是一款非常不错的开源Web服务器,许多公司在软件开发时都使用Tomcat作为Web容器,并且Tomcat也较好的对Servlet和JSP规范进行了支持,因此许多在Tomcat上开发的应用都可以向其他商业应用服务器上进行移植。

但是,Tomcat因为未去通过规范测试,因此可能会存在没有完全参考规范实现的部分,因此在开发中建议开发人员去www.jcp.org上去下载一个规范来进行参考,开发过程中尽可能按照规范给定的参数和返回值来使用系统的核心功能,从而避免在移植中出现不必要的问题。

附注:出现问题也不可怕,总有许多方式可以解决,就如上文出现的Map与HashMap的问题。其实网上有许多Map向HashMap转换的代码,可以增加个过渡参数将得到的Map进行一次转换就可以不修改其他业务代码了。

4
3
分享到:
评论

相关推荐

    常用J2EE应用服务器简介.docx

    这是其它Web应用系统所不具备的 所以,在扩展性方面WebLogic是远远超越了Tomcat。 费用上: Tomcat开源免费。 WebLogic不开源不免费。 总之,在功能强大和扩展性和可用性等方面WLS比Tomcat好很多,但这也不能说明WLS...

    快逸报表软件-免费、快速开发WEB报表的JAVA报表工具

    •直接使用web应用已有的用户角色管理机制,不存在两套管理机制无法兼容的问题,提供统一的登录界面,最终用户不需要登录两次。 总结:润乾采取的集成方案新颖独到,其报表工具完全解决了程序员的集成烦恼,非常...

    springboot基于微信小程序的点餐系统的实现.rar

    用户端采用了uniapp作为安卓开发框架,借助HBuilder X作为开发软件,实现了混合开发模式,既保留了Web应用的跨平台特性,又兼顾了原生应用的性能和用户体验。用户可以通过谷歌浏览器进行访问和使用,实现了跨平台的...

    django基于微信平台小区服务系统.rar

    用户端采用了uniapp作为安卓开发框架,借助HBuilder X作为开发软件,实现了混合开发模式,既保留了Web应用的跨平台特性,又兼顾了原生应用的性能和用户体验。用户可以通过谷歌浏览器进行访问和使用,实现了跨平台的...

    基于J2EE框架的个人博客系统项目毕业设计论...

    3.2.1. Web应用程序开发环境—SQLserver数据库 SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的。SQL Server 2000是Microsoft公司于...

    最新SpringBoot项目基于SpringBoot的CSGO赛事管理系统.zip

    - JDK版本建议使用JDK1.8,以保证最佳的兼容性和性能。 - 服务器推荐使用Tomcat 7,它是一个广泛使用的Web服务器,适合本项目的需求。 4. **项目实战资源**: - 提供了全套项目源码,方便直接部署和使用。 - 包括...

    最新SpringBoot项目疫苗接种管理系统.zip

    - JDK版本建议使用JDK1.8,以保证最佳的兼容性和性能。 - 服务器推荐使用Tomcat 7,它是一个广泛使用的Web服务器,适合本项目的需求。 4. **项目实战资源**: - 提供了全套项目源码,方便直接部署和使用。 - 包括...

    宿舍管理系统

    Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    3.2.1. Web应用程序开发环境—SQLserver数据库 SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的。SQL Server 2000是Microsoft公司于...

    zebraCMS(斑马内容管理系统)1.0安装包

    兼容性:tomcat,resin linux windows 编码:utf8 程序语言:中文 推荐开发工具: windows(linux)+eclipse+mysql+mysql query browser +tomcat +zebraCMS+dreamvear+photoshop windows(linux)+netbeans+mysql+...

    zebraCMS(斑马内容管理系统)源码

    兼容性:tomcat,resin linux windows 编码:utf8 程序语言:中文 推荐开发工具: windows(linux)+eclipse+mysql+mysql query browser +tomcat +zebraCMS+dreamvear+photoshop windows(linux)+netbeans+mysql+...

    最新SpringBoot项目车辆充电桩.zip

    - 推荐使用Java JDK 1.8作为开发和运行环境,以确保稳定性和兼容性。 - 服务器建议使用Tomcat,这是一个广泛使用的Web服务器,特别适合与Spring Boot搭配使用。 - 数据库版本推荐使用mysql8.0,以便利用最新的...

    基于Javaweb+Tomcat+MySQL的大学生公寓管理系统.zip

    此外,MySQL支持多种操作系统,包括Windows、Linux、macOS、Solaris等,确保了其在不同环境下的兼容性和部署灵活性。 关系型模型与SQL支持 MySQL基于关系型数据库模型,数据以表格形式组织,并通过预定义的键(如...

    最新SpringBoot项目结合疫情情况的婚恋系统.zip

    - JDK版本建议使用JDK1.8或更高版本,以保证最佳的兼容性和性能。 - 服务器推荐使用Tomcat或其他适合Spring Boot的Web服务器。 4. **项目实战资源**: - 提供了全套项目源码,方便直接部署和使用。 - 包括完整的文档...

    最新SpringBoot项目智慧外贸平台.zip

    - 推荐使用的JDK版本为1.8以上,以确保最佳的性能和兼容性。 - 服务器建议使用Tomcat,这是一个广泛使用的Web服务器,特别适合与Spring Boot搭配使用。 - 适合的IDE环境包括IntelliJ IDEA和Eclipse,以及数据库管理...

    基于Java-web停车场管理系统的设计与实现.docx

    J2EE本身是一个标准,1999年,由Sun公司正式领导开发了J2EE的第一个版本,到后来的J2EE1.4版本最初的作用是用来制作动态网页Applet,但是由于企业系统API之间不能相互兼容,为了规范企业应用系统的开发,构成了J2EE...

    最新SpringBoot项目一起来约苗系统.zip

    - 使用Java作为开发语言,确保了应用的跨平台性和安全性。 - 采用Spring Boot框架,简化了企业级应用的开发和部署过程。 - JDK版本为1.8,与现代Java技术生态兼容。 - 服务器选用tomcat7,提供了稳定的Web服务环境。...

    使用MyEclipse创建Spring Boot项目demo

    可能你还需要考虑各个版本的兼容性,jar 包冲突的各种可行性。 那么使用 Spring Boot 之后我们需要开发一个 web 项目需要哪些操作呢? 1)登录网址 http://start.spring.io/ 选择对应的组件直接下载 2)导入项目...

    Java网上书店管理系统(基于MVC模式编写:前端jsp页面、数据库MySQL、服务器Tomcat).zip

    此外,MySQL支持多种操作系统,包括Windows、Linux、macOS、Solaris等,确保了其在不同环境下的兼容性和部署灵活性。 关系型模型与SQL支持 MySQL基于关系型数据库模型,数据以表格形式组织,并通过预定义的键(如...

Global site tag (gtag.js) - Google Analytics