欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

Java與PHPweb開發(fā)比較 - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設/小程序開發(fā)/軟件開發(fā)

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!

您當前位置>首頁 » 新聞資訊 » 網(wǎng)站建設 >

Java與PHPweb開發(fā)比較

發(fā)表時間:2018-11-1

發(fā)布人:葵宇科技

瀏覽次數(shù):39

一直很想寫一篇這樣的文章。Java和PHP作為web開發(fā)的2個主流語言,他們之間有什么不同呢?在項目開發(fā)時,我們應該怎么去做選擇。

1.運行方式

1.1 PHP的運行方式

客戶端發(fā)送http請求到nginx,nginx通過fastcgi與php-fpm進程通信。php-fpm執(zhí)行完成后把結果返回給nginx,最終輸出到客戶端瀏覽器。

參考fastcgi:https://baike.baidu.com/item/fastcgi/10880685?fr=aladdin

1.2 Java的運行方式

Servlet容器,比如Tomcat和Jetty等。一個Servlet容器可以運行多個Servlet實例。

當客戶端第一次請求某個Servlet時,Servlet容器將會根據(jù)web.xml配置文件實例化這個Servlet類,此時它貯存于內存中。當有新的客戶端請求該Servlet時,一般不會再實例化該Servlet類,也就是有多個線程在使用這個實例。每一個請求都是一個線程,而不是進程,因此,Servlet對請求的處理的性能非常高。

參考:https://www.ibm.com/developerworks/cn/java/j-lo-servlet/

總結:PHP是以多進程的方式運行,并且使用fastcgi與web通訊;Java需要依賴Tomcat等Servlet容器,以多線程的方式運行。

2.接受請求,GET/POST參數(shù)處理

JAVAPHPGET

均是通過HttpServletRequest.getParameter方法獲取

GET/POST根據(jù)方法名定義doGet/doPost,如果是spring,使用RequestMapping定義

使用$_GET全局變量獲取POST使用$_POST全局變量獲取原始請求體BufferedReader reader = new BufferedReader(new InputStreamReader(request.getInputStream()));
String body = reader.readLine();file_get_contents("php://input");請求來源IPHttpServletRequest.getRemoteAddr方法$_SERVER["REMOTE_ADDR"]

3.響應請求

JAVAPHP自定義狀態(tài)碼HttpServletResponse.setStatus(404);header("HTTP/1.1 404 Not Found"); 重定向response.sendRedirect("/hello");header("location: [url]");

4.Cookies & Session

JAVAPHPSession存儲

默認存儲在heap中,創(chuàng)建的cookies默認名稱是JSESSIOINID。servlet.destory()方法會導致session丟失。

默認使用文件方式,存儲在/tmp目錄下,創(chuàng)建的cookies默認名稱是PHPSESSID。

重啟php-fpm并不會丟失數(shù)據(jù)。

調用方式

讀取:HttpServletRequest.getSession().getValue(name);

寫入:

HttpServletRequest.getSession().setAttribute(name, value);

讀取:$_SESSION['key']

寫入:$_SESSION['key'] = mixed

相關案例查看更多