Java与PHPweb开发比较 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 网站建设 >

Java与PHPweb开发比较

发表时间:2018-11-1

发布人:葵宇科技

浏览次数:30

一直很想写一篇这样的文章。Java和PHP作为web开发的2个主流语言,他们之间有什么不同呢?在项目开发时,我们应该怎么去做选择。

1.运行方式

1.1 PHP的运行方式

客户端发送http请求到nginx,nginx通过fastcgi与php-fpm进程通信。php-fpm执行完成后把结果返回给nginx,最终输出到客户端浏览器。

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

1.2 Java的运行方式

Servlet容器,比如Tomcat和Jetty等。一个Servlet容器可以运行多个Servlet实例。

当客户端第一次请求某个Servlet时,Servlet容器将会根据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参数处理

JAVAPHPGET

均是通过HttpServletRequest.getParameter方法获取

GET/POST根据方法名定义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自定义状态码HttpServletResponse.setStatus(404);header("HTTP/1.1 404 Not Found"); 重定向response.sendRedirect("/hello");header("location: [url]");

4.Cookies & Session

JAVAPHPSession存储

默认存储在heap中,创建的cookies默认名称是JSESSIOINID。servlet.destory()方法会导致session丢失。

默认使用文件方式,存储在/tmp目录下,创建的cookies默认名称是PHPSESSID。

重启php-fpm并不会丢失数据。

调用方式

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

写入:

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

读取:$_SESSION['key']

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

相关案例查看更多