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

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

159-8711-8523

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

知識(shí)

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們在追求其視覺表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營銷的便利,運(yùn)營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏壧峁┍憬莸闹С郑?

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

Java與PHPweb開發(fā)比較

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

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

瀏覽次數(shù):39

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

1.運(yùn)行方式

1.1 PHP的運(yùn)行方式

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

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

1.2 Java的運(yùn)行方式

Servlet容器,比如Tomcat和Jetty等。一個(gè)Servlet容器可以運(yùn)行多個(gè)Servlet實(shí)例。

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

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

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

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.響應(yīng)請求

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

4.Cookies & Session

JAVAPHPSession存儲(chǔ)

默認(rèn)存儲(chǔ)在heap中,創(chuàng)建的cookies默認(rèn)名稱是JSESSIOINID。servlet.destory()方法會(huì)導(dǎo)致session丟失。

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

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

調(diào)用方式

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

寫入:

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

讀取:$_SESSION['key']

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

相關(guān)案例查看更多