當前位置:編程學習大全網 - 源碼下載 - Tomcat上開發Web應用如何保證兼容性

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因為未去通過規範測試,因此可能會存在沒有完全參考規範實現的部分,因此在開發中建議開發人員去上去下載壹個規範來進行參考,開發過程中盡可能按照規範給定的參數和返回值來使用系統的核心功能,從而避免在移植中出現不必要的問題。

附註:出現問題也不可怕,總有許多方式可以解決,就如上文出現的Map與HashMap的問題。其實網上有許多Map向HashMap轉換的代碼,可以增加個過渡參數將得到的Map進行壹次轉換就可以不修改其他業務代碼了。

  • 上一篇:七牛雲圖床測試域名失效的補救
  • 下一篇:上海電子信息職業學院中職部專業有哪些?專業介紹
  • copyright 2024編程學習大全網