hessianphpjava
Ⅰ java能不能遠程調用php,並傳輸數據,如果能怎麼實現
都是支持網路通信的程序語言,當然可以。
最簡單、常用的方法就是通過HTTP協議,此種方法使用現有web service比較多;
如果需要大量傳輸數據可以使用FTP;
如果客戶端比較多,也可以使用P2P通信。
------------------------------------->
都是HTTP的內容,很好弄,直接用PHP解析接收到的信息就可以了。
Ⅱ java Hessian 配置多服務
配置多個 <servlet> </servlet>段,以及對應的<servlet-mapping>
例如:
<servlet>
<servlet-name>Hessian</servlet-name>
<servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
<init-param>
<param-name>home-api</param-name>
<param-value>com.hess.IHelloService</param-value>
</init-param>
<init-param>
<param-name>home-class</param-name>
<param-value>com.hess.HelloServiceImpl</param-value>
</init-param>
</servlet>
<servlet>
<servlet-name>Hessian2</servlet-name>
<servlet-class>com.caucho.hessian.server.HessianServlet</servlet-class>
<init-param>
<param-name>home-api</param-name>
<param-value>com.hess.ITask</param-value>
</init-param>
<init-param>
<param-name>home-class</param-name>
<param-value>com.hess.TaskServiceImpl</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Hessian</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Hessian2</servlet-name>
<url-pattern>/task</url-pattern>
</servlet-mapping>
Ⅲ 為什麼大型網站前端使用 PHP 後台邏輯用 Java
首先,為什麼是PHP和Java,不是其他。這和兩者的開源社區都很活躍,並且都很適合進行Web開發有很大的關系,而且都很適合linux環境下運行,可以在運維上統一管理。
盡管.Net市場佔有率也不低,但由於Windows和sql Server的License費用、開源社區不活躍等多種問題相對而言考慮得少一些。TIOBE TOP 10中適合Web開發的語種還包括了Python Perl Ruby,其中Perl已經是昨日黃花,主要在伺服器腳本領域還有較多應用,Web上已經不太可能Yesterday oncemore了。Python最近上升勢頭挺猛,但僅需要考慮文檔較少、招聘相對困難基本就註定了暫時不會是大網站的主流選擇。Ruby就不更不用提了。
再看一下兩個語言之間的差異。 PHP靈活,上手快,易修改,發布快捷,缺點是容易犯錯(常見如拼寫錯誤、SQL注入、上傳執行等)、執行效率不高、缺乏全局緩存。Java的優點則是穩定可靠、運行效率高(尤其是JIT的出現之後差距更大了)、不容易犯錯(強類型、預編譯、必須攔截異常等等),缺點是開發和發布的效率相對較低。盡管優秀的工程師能在一定程度上改變以上的問題,但通常而言,哪能到處都是高手多如狗的夢之隊?
然後從MVC的層次結構上說,在一般網站項目的開發周期中,需求變更最頻繁、調整最多的是View,其次是Controller,最後是Model。這非常好理解,沒事干誰天天改數據結構?每次版本升級控制結構都要改的啦,或多或少而已。而View,啥時候兩天不改BU啊PM啊UED啊大概是集體休年假了吧?
再次是兩者之間的通信,目前RPC技術已經足夠成熟,無論是Web Service/Hessian/RESTful API都能夠讓開發人員專注在功能開發上,而不需要過多的考慮異構平台的差異和通訊的細節。這也就意味著在大公司里同時應用兩種語言的方案並不會引入過多的復雜度和工作量。當然,文檔量的下限倒是因此被拔高了不少,但事實上大部分團隊對此其實都是喜聞樂見的:別每天說文檔重要但沒空了,你不寫其他同事怎麼配合?
總的來說,靠近用戶的前端,使用PHP能夠更快的完成前端頻繁而瑣碎的更新,自如的應對各種需求的變化。頁面的結構調整、用戶輸入內容的基本驗證、僅只和用戶交互有關的簡單邏輯等都很適合使用PHP來開發,甚至可以通過類似Smarty等模板技術將其頁面的變動遷移到前端團隊。而基本的業務邏輯和數據的更新採用Java開發,可以有效的提高復用度、提升性能和吞吐能力、規避安全問題等。而開發效率稍有降低換來的是可維護性的提升,發布速度慢就更不是問題了,因為通常對於基礎業務邏輯的調整往往都是整體修改,並層層測試確認才能發布的。
所以,大型網站前端採用PHP後端採用Java,既好招人又好維護、系統穩定還性能高、連安全性都大大增加。代碼復用、文檔完備度居然也都改善了。讓你在以上這些好處觸手可及時,對架構師知識譜系在廣度上要求更高一些這事根本就不是個問題。
好吧,後面的同學補充了一個很好的問題,為什麼不是僅用PHP或是僅用Java?這個我原本稍微提了,不過之前發布前刪掉了的,因為問題是為什麼PHP+Java。其實也有很多公司為了保證團隊組織不至於過度復雜,會更傾向於採用單一語言,尤其是中小公司。
單一方案其實一樣可以做良好的隔離,PHP同樣可以提供Service,而性能問題其實很多時候是演算法和架構的問題而不是語言差異的問題。如Velocity或JSTL等也是很優秀的隔離方案。
但我們都知道,現實往往比理想骨感很多,這些方案在高壓力下會暴露出很多問題而體現雙語言的優勢,這些在上面其實都提到,詳細說明一些很難得到改變的點:
1、PHP由於其動態腳本語言的特性,包括類、函數、常量在內都需要在每次請求周期中重復執行後才能建立運行環境;為了保證解析速度而犧牲編譯質量;應用了FastCGI但僅僅只是復用進程處理請求減少fork成本而不是像其他語言,初始化完畢後通過FastCGI的介面獲得數據並以對應介面返回數據等幾個原因,基本上已經不可能在性能上追回當初更爛現在開著JIT牌跑車的Java了。 更何況,還缺少了系統級共享數據的支持,使得核心數據一次性初始化後重復使用必須藉助擴展或中間件。
2、在PHP里是如此的容易犯錯而難以發現,即使你用實質上出自官方的Zend Studio,也無法改變一個事實:要保證你的程序高質量無大錯,得要有充足的經驗、足夠的嚴謹、以及——負責任的QA。淘寶的黃裳就曾經拿IDE這事開過玩笑。而玩笑背後的那個原因「缺乏中間件」最近幾年有不少的改善,主要是不少中間件的支持變得更廣泛了從而讓PHP得益,但發展的根源其實還是在C和Java社區。性能和易犯錯則是語言特性造成的技術難點,也是用來換取靈活、快捷的必要代價,很難去指望有根本的改善。
3、Java的世界裡也有JSTL、Velocity和Freemaker等,但和PHP靈活而強大的動態能力、豐富的函數和類庫、輕松的學習成本、多到令人發指的文檔相比,簡直就是渣,就是渣啊!JSTL改完了要重啟Context啊有木有?Velocity不關緩存也要重啟啊有木有?Velocity開緩存性能低下啊有木有?即使這些都不管,調整下某個數據校驗規則要改Action也要重啟有木有?
好吧,吐槽結束。
實際工作中性能問題可以通過良好的架構解決,容易犯錯的問題可以通過框架和規范以及全面的測試來解決,中間件選擇少些但其實該有的都有了,Java的靈活性一樣有不少可供考慮的解決方案,不說 OSGi 之類,就算是挫得要死的摘掉節點重啟,完成後重新上節點的策略也都能湊效。
所以,大家會看到單一語言的技術團隊也很多,這個問題的真正考慮還是更多在團隊自身的特點、積累等等。用了雙語言的,也知道自己為什麼要用這些,不用的也清楚自己的路該怎麼走。最後的最後說一句:如果你不知道自己為什麼要用雙語言方案的話,基本上你也就不需要考慮它了。
小豬,寫程序很好玩
後端java最大的優勢在於龐大的生態環境,你想解決的任何問題,java都有現成的方案,而且,相對其他語言來說,基於jvm的方案在運行效率和運維成本上平均來說是最佳的(這里不討論說什麼運維人員的能力之類的,只假設我們的運維都只具有一般的平均水平),所以,後端天然是傾向java的,無論前端用什麼。
至於前端,最大的問題在於,一個網站的UI,變動相當頻繁,傳統的基於java的開發方案,jsp tag lib,freemaker, velocity。。。。你讓前端怎麼改,怎麼調試?不經過專門學習他們怎麼看得懂?而且,java的開發模式,動不動上來就是MVC,後端跟前端結合太緊密了,基本上前端很難自由的在ui層工作。反過來,基於PHP的前端方案,至少做前端的都能看得懂,都能調試得了,這就是巨大的生產力的解放了,講後端java做成rest服務,前端所有的動態代碼都可以交給前端工程師,對他們來講,最舒服的動態網頁方案,自然就是PHP,這個是歷史沉澱決定了,誰也沒法改變,無論你多麼看不起PHP,包括我自己也是並不喜歡PHP,但是仍然要再強調一次,對前端工程師來說,最舒服最自在的動態網頁方案,仍然是PHP!就如同上面很多人回答的,PHP就是快,快在哪兒?PM說要改什麼,前端上手10分改好,30分鍾後已經release了。把任務發給後端工程師?那慢慢等吧。。。
Ⅳ java網站項目,用ssh框架,怎麼和PHP一起使用搭建 後台用java處理,前台要支持php和jsp。
後台用Java開發,前台用jsp,這個肯定沒問題。
前台要用php的話,可以用java提供介面,php把需要的參數傳遞到java後台,再把結果返回給php,展示到頁面上。可以用Java做WebService,php去調用。
前台還是用php,開發速度快,也比較簡單,安全和性能都沒問題。
和後台Java交互,可以用xml做介面,php直接調用填到頁面上。
php的環境搭建也比較簡單,應用伺服器用Apache2.2,環境php5,資料庫都支持的,安裝完後把apache2.2的httpd.conf文件中路徑改為你項目路徑就可以了,具體的配置網上很多,可以自己找下。
我用的是Java做webservice,前台php調用,性能還行。
Ⅳ 為什麼用java做後台,php開發前台
如果開發一個大型的網站,我到底應該使用php還是jsp,後台到底使用php還是用java,我的選擇要麼是php要麼是java,因為我喜歡linux、unix,當然window平台也必須支持,以便哦的妹紙可以查看。這就要求用一些跨平台相當好的軟體+工具+語言,所以選擇只能是這么幾個。最後我的決定是php+java,一個前台一個後台,理由如下: php和java在開源社區的活躍度嚴重超過了其他的語言,使用人數也都是相當之多;活躍的開發工程師們能夠給我幫助,且這倆都能很好的跨平台,不用花費大量的人力物力去維護 我也做過一個物聯網的網關網站,比較復雜,當時採用的是jsp+java,復雜程度可想而知,單單說開發過程,網站部分繁瑣,每次想查看結果運行網站的時候還需要重新打包部署一下,嚴重影響了哦的開發效率,每天的時間都是在等待(因為網站比較復雜,打包部署需要浪費一些時間)。相對來說呢,php就沒有了,php靈活,好學,上手快,容易修改,容易發布,關鍵是熱部署,這個真讓哦眼睛大亮。當然看待任何事物都需要兩種眼光,php也會有缺點,比如沒有太好的開發IDE,所以拼寫錯誤很正常,且php的sql注入危險較大點,執行效率不高,安全性不如java。還有一些理由,來自知乎的米米們給的建議: Java的優點則是穩定可靠、運行效率高(尤其是JIT的出現之後差距更大了)、不容易犯錯(強類型、預編譯、必須攔截異常等等),缺點是開發和發布的效率相對較低。盡管優秀的工程師能在一定程度上改變以上的問題,但通常而言,哪能到處都是高手多如狗的夢之隊? 從MVC的層次結構上說,在一般網站項目的開發周期中,需求變更最頻繁、調整最多的是View,其次是Controller,最後是Model。這非常好理解,沒事干誰天天改數據結構?每次版本升級控制結構都要改的啦,或多或少而已。再次是兩者之間的通信,目前RPC技術已經足夠成熟,無論是Web Service/Hessian/RESTful API都能夠讓開發人員專注在功能開發上,而不需要過多的考慮異構平台的差異和通訊的細節。這也就意味著在大公司里同時應用兩種語言的方案並不會引入過多的復雜度和工作量。當然,文檔量的下限倒是因此被拔高了不少,但事實上大部分團隊對此其實都是喜聞樂見的:別每天說文檔重要但沒空了,你不寫其他同事怎麼配合? 靠近用戶的前端,使用PHP能夠更快的完成前端頻繁而瑣碎的更新,自如的應對各種需求的變化。頁面的結構調整、用戶輸入內容的基本驗證、僅只和用戶交互有關的簡單邏輯等都很適合使用PHP來開發,甚至可以通過類似Smarty等模板技術將其頁面的變動遷移到前端團隊。而基本的業務邏輯和數據的更新採用Java開發,可以有效的提高復用度、提升性能和吞吐能力、規避安全問題等。而開發效率稍有降低換來的是可維護性的提升,發布速度慢就更不是問題了,因為通常對於基礎業務邏輯的調整往往都是整體修改,並層層測試確認才能發布的。 所以,大型網站前端採用PHP後端採用Java,既好招人又好維護、系統穩定還性能高、連安全性都大大增加。代碼復用、文檔完備度居然也都改善了。讓你在以上這些好處觸手可及時,對架構師知識譜系在廣度上要求更高一些這事根本就不是個問題。
單一方案其實一樣可以做良好的隔離,PHP同樣可以提供Service,而性能問題其實很多時候是演算法和架構的問題而不是語言差異的問題。如Velocity或JSTL等也是很優秀的隔離方案。
但這些方案在高壓力下會暴露出很多問題而體現雙語言的優勢,這些在上面其實都提到,詳細說明一些很難得到改變的點:
1. PHP由於其動態腳本語言的特性,包括類、函數、常量在內都需要在每次請求周期中重復執行後才能建立運行環境;為了保證解析速度而犧牲編譯質量;應用了FastCGI但僅僅只是復用進程處理請求減少fork成本而不是像其他語言,初始化完畢後通過FastCGI的介面獲得數據並以對應介面返回數據等幾個原因,基本上已經不可能在性能上追回當初更爛現在開著JIT牌跑車的Java了。
2. 在PHP里是如此的容易犯錯而難以發現,即使你用實質上出自官方的Zend Studio,也無法改變一個事實:要保證你的程序高質量無大錯,得要有充足的經驗、足夠的嚴謹、以及——負責任的QA。淘寶的黃裳就曾經拿IDE這事開過玩笑。而玩笑背後的那個原因「缺乏中間件」最近幾年有不少的改善,主要是不少中間件的支持變得更廣泛了從而讓PHP得益,但發展的根源其實還是在C和Java社區。性能和易犯錯則是語言特性造成的技術難點,也是用來換取靈活、快捷的必要代價,很難去指望有根本的改善。
3. Java的世界裡也有JSTL、Velocity和Freemaker等,但和PHP靈活而強大的動態能力、豐富的函數和類庫、輕松的學習成本、多到令人發指的文檔相比,簡直就是渣,就是渣啊!JSTL改完了要重啟Context啊有木有?Velocity不關緩存也要重啟啊有木有?Velocity開緩存性能低下啊有木有?即使這些都不管,調整下某個數據校驗規則要改Action也要重啟有木有?
實際工作中性能問題可以通過良好的架構解決,容易犯錯的問題可以通過框架和規范以及全面的測試來解決,中間件選擇少些但其實該有的都有了,Java的靈活性一樣有不少可供考慮的解決方案哪怕是挫得要死的摘掉節點重啟,完成後重新上節點的策略。
所以,大家會看到單一語言的技術團隊也很多,這個問題的真正考慮還是更多在團隊自身的特點、積累等等。用了雙語言的,也知道自己為什麼要用這些,不用的也清楚自己的路該怎麼走。最後的最後說一句:如果你不知道自己為什麼要用雙語言方案的話,
Ⅵ 我來談談PHP和JAVA在web開發上的的區別
html css javascript 這些部分都是一樣的
然後php里的方法都是經過高度封裝的專門用來開發網站 如果你java基礎的MVC學的不錯的話掌握php用不了一個星期
在送你一個php基礎方法的圖 只要學了最基礎的語法 看著這圖就能做網站
Ⅶ java能不能遠程調用php,並傳輸數據,如果能怎麼實現
java那邊用個http客戶端,
請求php這邊的應用就可以了,
不過兩個系統還是要約定好通信協議(輸入/輸出數據格式)!
希望回答能給你帶來幫助~
如果滿意,請採納,如還有疑問,可繼續追問!
您也可以向我們團隊發出請求,會有更專業的人來為您解答!
Ⅷ 為什麼大型網站前端使用 PHP 後台邏輯用 Java
php和java在開源社區的活躍度嚴重超過了其他的語言,使用人數也都是相當之多;活躍的開發工程師們能夠給我幫助,且這倆都能很好的跨平台,不用花費大量的人力物力去維護。php靈活,好學,上手快,容易修改,容易發布,關鍵是熱部署。
Java的優點是穩定可靠、運行效率高(尤其是JIT的出現之後差距更大了)、不容易犯錯(強類型、預編譯、必須攔截異常等等),缺點是開發和發布的效率相對較低。盡管優秀的工程師能在一定程度上改變以上的問題,但通常而言,哪能到處都是高手多如狗的夢之隊?
從MVC的層次結構上說,在一般網站項目的開發周期中,需求變更最頻繁、調整最多的是View,其次是Controller,最後是Model。這非常好理解,沒事干誰天天改數據結構?每次版本升級控制結構都要改的啦,或多或少而已。
再次是兩者之間的通信,目前RPC技術已經足夠成熟,無論是Web Service/Hessian/RESTful API都能夠讓開發人員專注在功能開發上,而不需要過多的考慮異構平台的差異和通訊的細節。這也就意味著在大公司里同時應用兩種語言的方案並不會引入過多的復雜度和工作量。當然,文檔量的下限倒是因此被拔高了不少,但事實上大部分團隊對此其實都是喜聞樂見的:別每天說文檔重要但沒空了,你不寫其他同事怎麼配合?
靠近用戶的前端,使用PHP能夠更快的完成前端頻繁而瑣碎的更新,自如的應對各種需求的變化。頁面的結構調整、用戶輸入內容的基本驗證、僅只和用戶交互有關的簡單邏輯等都很適合使用PHP來開發,甚至可以通過類似Smarty等模板技術將其頁面的變動遷移到前端團隊。而基本的業務邏輯和數據的更新採用Java開發,可以有效的提高復用度、提升性能和吞吐能力、規避安全問題等。而開發效率稍有降低換來的是可維護性的提升,發布速度慢就更不是問題了,因為通常對於基礎業務邏輯的調整往往都是整體修改,並層層測試確認才能發布的。
所以,大型網站前端採用PHP後端採用Java,既好招人又好維護、系統穩定還性能高、連安全性都大大增加。代碼復用、文檔完備度居然也都改善了。讓你在以上這些好處觸手可及時,對架構師知識譜系在廣度上要求更高一些這事根本就不是個問題。
為什麼不是僅用PHP或是僅用Java?
其實也有很多公司為了保證團隊組織不至於過度復雜,會更傾向於採用單一語言,尤其是中小公司。
單一方案其實一樣可以做良好的隔離,PHP同樣可以提供Service,而性能問題其實很多時候是演算法和架構的問題而不是語言差異的問題。如Velocity或JSTL等也是很優秀的隔離方案。
但這些方案在高壓力下會暴露出很多問題而體現雙語言的優勢,這些在上面其實都提到,詳細說明一些很難得到改變的點:
1. PHP由於其動態腳本語言的特性,包括類、函數、常量在內都需要在每次請求周期中重復執行後才能建立運行環境;為了保證解析速度而犧牲編譯質量;應用了FastCGI但僅僅只是復用進程處理請求減少fork成本而不是像其他語言,初始化完畢後通過FastCGI的介面獲得數據並以對應介面返回數據等幾個原因,基本上已經不可能在性能上追回當初更爛現在開著JIT牌跑車的Java了。
2. 在PHP里是如此的容易犯錯而難以發現,即使你用實質上出自官方的Zend Studio,也無法改變一個事實:要保證你的程序高質量無大錯,得要有充足的經驗、足夠的嚴謹、以及——負責任的QA。淘寶的黃裳就曾經拿IDE這事開過玩笑。而玩笑背後的那個原因「缺乏中間件」最近幾年有不少的改善,主要是不少中間件的支持變得更廣泛了從而讓PHP得益,但發展的根源其實還是在C和Java社區。性能和易犯錯則是語言特性造成的技術難點,也是用來換取靈活、快捷的必要代價,很難去指望有根本的改善。
3. Java的世界裡也有JSTL、Velocity和Freemaker等,但和PHP靈活而強大的動態能力、豐富的函數和類庫、輕松的學習成本、多到令人發指的文檔相比,簡直就是渣,就是渣啊!JSTL改完了要重啟Context啊有木有?Velocity不關緩存也要重啟啊有木有?Velocity開緩存性能低下啊有木有?即使這些都不管,調整下某個數據校驗規則要改Action也要重啟有木有?
Ⅸ 現在開發網站,好像都是流行用php,那java web一般用在哪裡呢它們之間的區別和優劣勢在哪裡呢
現在市場上的oa基本上可歸結為兩大陣營,即php陣營和java陣營。但對接觸oa不久的用戶來說,看到的往往只是它們的表相,只是明顯的價格差異,卻很難看出它們之間的實際差異。其實, PHP + MYSQL 不值錢不僅僅局限於oa軟體,而是整體上PHP + MYSQL開發的軟體都不如java開發的軟體值錢。為什麼PHP + MYSQL 的OA為什麼不值錢呢?首先得明白php和java之間的差異才行。
1、系統的技術架構比較
分層是將系統進行有效組織的方式,分而治之的思想是計算機領域中非常重要的思想。在好的分層思想引導下,便能實現「高內聚、低耦合」,也能將具體的問題割裂開來,易於控制、易於延展,更易於分配資源。PHP只能實現簡單的分布式兩層或三層的架構,而JAVA在這方面就十分強大,可以實現多層的網路架構。運用MVC的設計模式,可使oa系統具有更加高效、合理的系統架構。技術架構的落後,使運用php編寫的oa軟體系統先天不足,而後天又無法補足其先天上的劣勢。使得系統在可拓展性、需求應變性上與JAVA編寫的oa軟體系統的差距越來越大。架構的差距,註定了php做的oa充其量是個小家碧玉,始終無法和java這種大家閨秀同台競技。
2、資料庫訪問比較
PHP可編譯成具有與許多資料庫相連接的函數。將自己編寫外圍的函數去間接存取資料庫。通過這樣的途徑當更換使用的資料庫時,可以輕松地修改編碼以適應這樣的變化。但PHP提供的資料庫介面支持彼此不統一,比如對Oracle, MySQL,Sybase的介面,彼此都不一樣。由於PHP對於不同的資料庫採用不同的資料庫訪問介面,所以資料庫訪問代碼的通用性不強。
而Java通過JDBC來訪問資料庫,通過不同的資料庫廠商提供的資料庫驅動方便地訪問資料庫,訪問資料庫的介面比較統一。如果同樣是將開發的web應用從MYSQL數據數轉到ORACLE數據,PHP需要做大量的修改工作,而且比較繁瑣。但JAVA開發的便只需要很少的更改便能實現。
資料庫訪問方式的差異,奠定了php開發出的oa和java開發出來的oa是馬車和火車的差距,前者只能亦步亦趨而且額度有限,後者卻是工業化的結晶,不僅能夠包容萬物而且速度上穩步提升。
3、安全性對比
在同是開源和跨平台的java面前,php丟掉了很多的優勢。在代碼的安全性上尤為突出。php的開發程序在別人拿到代碼後,可以很容易的進行修改。而java開發的程序由於無法看到完整的源代碼,只能看到一些編譯好的類文件,所以安全性較高。加之系統架構的優勢,在安全性上php和java是相去甚遠。
如果非要將php和java在安全性上做個比較的話,同一個小偷光顧php那是隨便拿來隨便改,想拿什麼拿什麼,拿的高興還能大筆一輝某某到此一游。而光顧java的時候,便會發現警察把守,內設自動報警裝置,即便突破重重阻擾後進入居室。那值錢的東西都放在加密後的保險櫃中,只能望洋興嘆、鎩羽而歸。
4、前瞻性和拓展性
從整體來說,php適用於中小型系統,而java適用於大型系統。Php能夠將單一的事件做好,但卻不適合完成集成度較高的多項並發事件。為什麼說php適合中小型系統而不適合做大系統呢?
首先, php缺乏多層結構支持。而對於大型的系統負荷站點,只能採用分布計算。將資料庫、應用邏輯層和表示邏輯層彼此分開,並將同層的根據流量分開,組成二維數組。而php恰恰缺乏這種支持。
其次,PHP提供的資料庫介面不統一,要將多個不同的資料庫數據統一需要花費很大的力氣。而JAVA則沒有這種缺陷,可通過SUN Java的Java Class和EJB獲得規模支持,通過EJB/CORBA以及眾多廠商的Application Server獲得結構支持。如IBM的E-business,它的核心是採用JSP/Servlet的Web Sphere,是通過CGI來提供支持的。
如果將Php比作將才,具備獨擋一方的能力。那麼java便是帥才,具有較好的前瞻性和拓展性,整體布局和協同能力強。能夠指揮千軍萬馬,最後逐鹿中原。
5、開發成本比較
既然php在諸多方面都不如java優異,那麼php開發出的oa產品何以與java產品競爭呢?在於Php陣營普遍走的是低端路線,而java陣營走的是中高端路線。兩者之間交*的區域較小。
軟體價格的高低很大程度上和自身成本和功能相掛鉤。php的入門門檻較低,絕大多數學過c的程序員都很容易轉型為php程序員,這使得php程序員的泛濫成災的同時,低成本的php軟體產品也層出不窮。以PHP最經典的組合PHP + MySQL + Apache為例,由於所有軟體都是開源免費的,所以投入並不高。
而java開發需要特定的環境,成長為一個合格的java程序員需要一定的時間,java程序員的成本也是php成本的幾倍。Java的web應用伺服器免費的有Tomcat、JBoss等,而要想具有很好的商業化服務便必須選用Web Sphere和 Web logic。這其中投入的成本無形中便超是php成本的N倍。所以,java開發oa的成本要遠遠高於php開發出來的同類軟體產品。但也正由於java開發的成本較高,很難實現抄襲和短期內逾越的可能,也使得java用開發出的產品門檻更高。
不怕不識貨,就怕貨比貨。Php開發出來的產品也能用,但是和java開出的同類產品是沒法比較的。正因為php開發的產品整體性能和java開發的相去甚遠,所以php運用低成本的低價優勢和同類的java產品抗爭,以價格落差來平衡購買者的心態。所以,PHP + MYSQL 的OA不值錢也就不足為怪了
第二種
比較PHP和JSP這兩個web開發技術,在目前的情況是其實是比較PHP和Java的Web開發。以下是我就幾個主要方面進行的比較:
一、 語言比較
Php是解釋執行的伺服器腳本語言,首先php有簡單容易上手的特點。語法和c語言比較象,所以學過c語言的程序員可以很快的熟悉php的開發。而java需要先學好java的語法和熟悉一些核心的類庫,懂得面向對象的程序設計方法。所以java不如php好學。
Java首先要編譯成位元組碼.class文件,然後在java虛擬機上解釋執行。Java的web開發首先最容易想到的就是JSP(現在已經到JSP2.0),原來的java的web開發都是用servlet來實現的,用servlet來開發需要程序員在java的源文件中嵌入大量的html代碼。所以後來就出現了JSP,JSP可以方便的嵌入到html文件當中,其實jsp文件在伺服器上執行的時候首先會被應用伺服器轉換成servlet,然後再編譯執行。Jsp可以通過servlet和JavaBean的支持產生強大的功能。JavaBean 是一種可復用的、跨平台的軟體組件。使用javabean可以方便的實現java代碼和html的分離,能夠增強系統的功能和軟體的復用性。
Java的web開發屬於SUN公司定義的J2EE其中的規范。而且在J2EE中包括了java的web開發的所有方面,如:JSP、Servlet、JDBC、JNDI、JAVABEAN、EJB等等。J2EE就特別適合於做大型的企業級的應用。
二、 資料庫訪問比較
Java通過JDBC來訪問資料庫,通過不同的資料庫廠商提供的資料庫驅動方便地訪問資料庫。訪問資料庫的介面比較統一。
PHP對於不同的資料庫採用不同的資料庫訪問介面,所以資料庫訪問代碼的通用性不強。例如:用Java開發的web應用從MySQL資料庫轉到Oracle資料庫只需要做很少的修改。而PHP則需要做大量的修改工作。
三、 系統設計架構比較
採用Java的web開發技術,需要使用的是面向對象的系統設計方法,而PHP還是採用面向過程的開發方法。所以用Java進行開發前期需要做大量的系統分析和設計的工作。
四、 跨平台性
Java和PHP都有很好的跨平台的特性。幾乎都可以在不作任何修改的情況下運行在Linux或者Windows等不同的操作系統上。
五、 開發成本比較
PHP最經典的組合就是:PHP + MySQL + Apache。非常適合開發中小型的web應用,開發的速度比較快。而且所有的軟體都是開源免費的,可以減少投入。
Java的web應用伺服器有免費Tomcat、JBoss等,如果需要更好的商業化的服務有:Web Sphere和 Web logic。
六、 分布式多層架構比較
PHP只能實現簡單的分布式兩層或三層的架構,而JAVA在這方面就比較強大,可以實現多層的網路架構。資料庫層(持久化層)、應用(業務)邏輯層、表示邏輯層彼此分開,而且現在不同的層都已經有一些成熟的開發框架的支持。例如Struts就是利用java的web開發技術實現了MVC的設計模式,而在業務邏輯層也有Spring框架,資料庫持久化層有Hibernate等框架。這些框架可以方便開發者高效、合理、科學得架構多層的商業應用。
下面簡要的說一下Struts,它實質上是在JSP Model2的基礎上實現的一個MVC(Model、View、Controler)框架。JSP Model2體系結構是一種聯合使用JSP 與Servlet 來提供動態內容的方法。在Struts框架中,模型由實現業務邏輯的JavaBean或EJB組件構成,控制器由Servlet實現的,視圖由一組JSP文件組成。採用Struts可以明確角色的定義和開發者與網頁設計者的分工。而且項目越復雜,其優勢越明顯。
七、 源代碼安全
PHP開發的程序的源代碼都是公開的,他人拿到php開發的程序後都可以進行修改。
Java開發的程序,最後用戶拿到的是只是一些編譯好的class類,無法看到完整的源代碼,安全性高。
八、性能比較
有人做過試驗,對這兩種種語言分別做迴圈性能測試及存取Oracle資料庫測試。
在循環性能測試中,JSP只用了令人吃驚的四秒鍾就結束了20000*20000的迴圈。而PHP測試的是2000*2000循環(少一個數量級),卻分別用了63秒。
資料庫測試中,二者分別對 Oracle 8 進行 1000 次 Insert,Update,Select和Delete: JSP 需要 13 秒,PHP 需要 69 秒。
表格 1 PHP 與Java的比較
PHP JAVA
可復用性 低 高
開發速度 快 慢
易維護性 差 優
可移植性 優-Linux、Windows、Unix等
安全性 低 高
開發費用 低 高
多層架構 差 優
資料庫訪問 介面不統一 介面統一
可擴展性 差 優
面向對象 差 優
綜上 PHP適合於快速開發,中小型應用系統,開發成本低,能夠對變動的需求作出快速的反應。而Java適合於開發大型的應用系統,應用的前景比較廣闊,系統易維護、可復用性較好。還有,同樣功能的系統用Java開發的系統要比PHP開發的系統的價格要高
Ⅹ hessian2為什麼對java的支持更好
Java本身的反序列化機制雖然性能稍差一些,但本身使用的約束條件相對卻要寬松一些,其實只要滿足下面兩條,一個類對象就是可以完美支持序列化機制了:
類實現java.io.Serializable介面。
類包含的所有屬性都是實現了java.io.Serializable介面的,或者被標記為了transient。
對於構造函數本身沒有任何約束。這里,Java序列化本身其實也是和new以及Java反射機制「平級」的實例化對象的方式