现在开发网站,好像都是流行用php,那javaweb一般用在哪里呢它们之间的区别和优劣势在哪里呢

现在开发网站,好像都是流行用php,那javaweb一般用在哪里呢它们之间的区别和优劣势在哪里呢,第1张

现在市场上的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则没有这种缺陷,可通过SUNJava的JavaClass和EJB获得规模支持,通过EJB/CORBA以及众多厂商的ApplicationServer获得结构支持。如IBM的E-business,它的核心是采用JSP/Servlet的WebSphere,是通过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等,而要想具有很好的商业化服务便必须选用WebSphere和Weblogic。这其中投入的成本无形中便超是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(现在已经到JSP20),原来的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等,如果需要更好的商业化的服务有:WebSphere和Weblogic。

六、分布式多层架构比较

PHP只能实现简单的分布式两层或三层的架构,而JAVA在这方面就比较强大,可以实现多层的网络架构。数据库层(持久化层)、应用(业务)逻辑层、表示逻辑层彼此分开,而且现在不同的层都已经有一些成熟的开发框架的支持。例如Struts就是利用java的web开发技术实现了MVC的设计模式,而在业务逻辑层也有Spring框架,数据库持久化层有Hibernate等框架。这些框架可以方便开发者高效、合理、科学得架构多层的商业应用。

下面简要的说一下Struts,它实质上是在JSPModel2的基础上实现的一个MVC(Model、View、Controler)框架。JSPModel2体系结构是一种联合使用JSP与Servlet来提供动态内容的方法。在Struts框架中,模型由实现业务逻辑的JavaBean或EJB组件构成,控制器由Servlet实现的,视图由一组JSP文件组成。采用Struts可以明确角色的定义和开发者与网页设计者的分工。而且项目越复杂,其优势越明显。

七、源代码安全

PHP开发的程序的源代码都是公开的,他人拿到php开发的程序后都可以进行修改。

Java开发的程序,最后用户拿到的是只是一些编译好的class类,无法看到完整的源代码,安全性高。

八、性能比较

有人做过试验,对这两种种语言分别做回圈性能测试及存取Oracle数据库测试。

在循环性能测试中,JSP只用了令人吃惊的四秒钟就结束了20000*20000的回圈。而PHP测试的是2000*2000循环(少一个数量级),却分别用了63秒。

数据库测试中,二者分别对Oracle8进行1000次Insert,Update,Select和Delete:JSP需要13秒,PHP需要69秒。

表格1PHP与Java的比较

PHPJAVA

可复用性低高

开发速度快慢

易维护性差优

可移植性优-Linux、Windows、Unix等

安全性低高

开发费用低高

多层架构差优

数据库访问接口不统一接口统一

可扩展性差优

面向对象差优

综上PHP适合于快速开发,中小型应用系统,开发成本低,能够对变动的需求作出快速的反应。而Java适合于开发大型的应用系统,应用的前景比较广阔,系统易维护、可复用性较好。还有,同样功能的系统用Java开发的系统要比PHP开发的系统的价格要高

如果你是非技术开发工程,不熟悉Java、PHP、Python、Golang这些后端的编程语言,但熟悉MySQL、Oracle、SQL Server、PostgreSQL这些数据库的查询 *** 作,当你需要把现有的数据库的数据,通过API接口形式提供给外部人员使用时,使用派框架·接口大师这个工具,就能轻松实现。

派框架·接口大师,是一套研发、管理和开放API接口的软件源代码和解决方案,基于PhalApi开源接口框架+Vue前后端分离,可用于快速搭建各类企业级接口平台。

适合用于开发新项目、已使用PhalApi开源框架的项目,或现有项目的系统重构,可用于快速搭建:OpenAPI、接口平台、数据平台、PaaS平台、SaaS平台、BaaS平台、开放平台等。

本地安装好后,就可以开始使用了。

假设我们已经在以下的国家数据库表pp_countries:

字段 sortname:表示国家简称,name 表示国家全称,还有区号phonecode,以及经纬度字段。

现在使用 接口大师 这个工具,介绍如何低代码开发、管理和开放你的数据API接口。

进入接口大师的管理后台,进入接口管理-低代码接口开发-添加接口。

接口设计类型选择:生成数据库表接口API。

在接口服务名称这里,把类名改成你的数据库表名,不需要带表前缀,同时使用大写开头的坨峰法写法。

在接口参数填写需要支持的搜索参数。

例如,支持国家名称的模糊匹配。

接下来,点击生成代码。会生成类似如下的PHP代码:

例如,找到SQL这一行的语句:

改成你自己的SQL语句,例如模糊搜索国家名。

同时把参数调整成左右模糊匹配:

然后,点击保存并发布。

发布接口后,就可以在OpenAPI在线接口文档看到刚刚添加发布的新数据接口。

点击可以进入新接口的在线接口文档。截图如下:

你可以在线进行接口测试。填入需要搜索的国家名,例如:输入A。

可以看到接口返回以下数据:

开启调试模式后,还可以看到背后执行的SQL语句和执行时间:

完善接口文档

你还可以补充添加接口返回的结构、字段说明。

再次发布后,就可以在前台接口文档查看到:

最后,再来看下如何把你开发添加好的新数据接口API开放给其他人。

开发者的主要使用流程是:

所以,开发者,需要先到开放平台注册一个新账号,然后登录。

再创建新的应用并等待后台审核通过:

应用通过审核后,根据app_key和密钥,申请接口访问令牌。

获取到访问令牌access_token后,就可以调用和使用你新添加的数据API接口。

ASP(Active Server Pages)是微软公司为开发互联网络应用程序所提出的工具之一 它是一种类似HTML(Hypertext Markup Language超文本标记语言) Script与CGI(Common Gateway Interface通用网关接口)的结合体 但是其运行效率却比CGI更高 程序编制也比HTML更方便且更有灵活性 程序安全性及保密性远比Script好 因此ASP是目前网页开发技术中最容易学习 灵活性最大的开发工具 ASP内置的ADO组件是微软公司开发的互联网络数据库存取解决方案 也是ASP存取数据库的重要功臣 ADO通过ODBC访问数据库 从理论上讲ADO能访问各种ODBC所支持的数据库 如Microsoft SQL Server Access Foxpro Oracle Dbase等 然而在实践中我们发现ADO可以完全支持Microsoft SQL Server和Acess 然而对于Oracle就有些困难了 笔者在实践中利用ADO访问Oracle 结果发现ADO不能访问Oracle 的数字型字段 并且发现ADO访问Oracle 的速度极慢 为了解决利用ASP访问Oracle 的速度及其他技术问题 笔者尝试了利用Oracle Object for OLE访问Oracle 结果完全取得了笔者预期的结果 Oracle Object for OLE是Oracle公司为了客户端存取数据库所发展的一个重要的产品 它以Windows / /NT为基础 共所有与OLE兼容的应用程序访问Oracle数据库 它是没有用户界面的OLE Server 其所包含的Oracle Objects Server是ASP访问Oracle数据库的重要功臣之一 要通过Oracle Objects Server来访问Oracle 数据库 除了基本的Web服务器与ASP等软件外 还必须确定Web服务器已经安装了Oracle Object for OLE软件 其所需的软件包括 Neork Protocol Adapter Oracle Object for OLE X SQLNet Client X或Oracle Net Client X SQLPlus及Oracle ODBC Driver 在确定Web服务器已安装上述软件后 还必须利用SQLNet Client X或Oracle Net Client X进行数据库的连接测试并设置数据库别名(Database Alias) Oracle Objects Server共提供Oraclient Orasession Oraconnection OraDatabase OraDynaset OraSQLstmt OraField Oraparameter Oraparameter Array等九个对象供开发者使用 其功能与作用分述如下 .Oraclient对象 Oraclient对象是用来定义服务器端(Client或Workstation)的范围 Oraclient会记录此服务器端的所有Orasession对象 Oraclient由系统根据需要自动建立 .Orasession对象 Orasession对象用来在程序中管理Oraconnection OraDatabase OraDynaset等对象 其建立方法如下 Set Orasession=Create( OracleInProcServer Xorasession ) .Oraconnection对象 Oraconnection对象表示对OraDatabase对象的连接 当需要建立OraDatabase对象时 系统会自动产生一个Oraconnection对象 反之 当与数据库断开连接时 Oraconnection对象自动释放 .OraDatabase对象 OraDatabase对象表示对数据库服务器的虚拟登录 其登录方法如下 Set Oradadabase=Orasession Dbopendatabase_ ( 数据库别名 用户名称/密码 ) .OraDynaset对象 OraDynaset对象会将数据库服务器符合SELECT命令的数据加以存储在客户端的缓冲区 让用户浏览或更新 最后将结果写回到服务器 其方法如下 SetOraDynaset=OraDatabase DbcreateDynaset( SQL语句 ) .OraSQLstmt对象 OraSQLstmt对象通常用来运行SQL命令 或是调用存储过程 其用法如下 Set Orasqlstmt=Oradatabase createSQl( SQL语句 ) .OraField对象 OraField对象表示在OraDynaset对象中的某个字段或数据项目 他通过Value属性设置或取得OraDynaset对象中的某个字段值 .Oraparameter对象 Oraparameter对象表示一个在SQL命令或PL/SQL程序区块中所附加的变量 .Oraparameter Array对象 Oraparameter Array对象是Oraparameter对象的数组类型 Oraparameter Array对象可以间接通过OraDatabase对象的Oraparameter数据集合来增加 存取或删除某个变量  下面举一具体例子说明如何在ASP中利用Oracle Object for OLE访问Oracle 笔者编写了一个在ASP中利用Oracle Object for OLE 查询Oracle 数据库 并进行分页显示的程序 由于Orasession对象的属性中没有控制分页的属性 应此笔者自编了分页控制的程序 以下共两个ASP文件(query asp和query asp) query asp文件先取得数据库表的内容 然后计算分页的页数 如果页数超过一页 则交由query asp处理 其程序代码如下 query asp <% ‘连接数据库 set orasession=createobject("oracleinprocserverxorasession") set oradatabase=orasessiondbopendatabase("orant","scotter/tiger",0) ‘设置查询条件 sql="select from cq_hjwj " set session(oradynaset)=oradatabasedbcreatedynaset(sql,0) ‘设置页长 pagesize=15 if session(oradynaset)recordcount=0 then responsewrite "无符合条件的数据" else responsewrite"查询结果" ‘计算页数 pages=int(session(oradynaset)recordcount/pagesize) if pagespagesize=session(oradynaset)recordcount then pages=int(session(oradynaset)recordcount/pagesize) else pages=int(session(oradynaset)recordcount/pagesize)+1 end if if request("page")="" then page=1 else page=cstr(request("page")) end if responsewrite"共"&pages&"页,目前第"&page&"页" responsewrite"" for i=0 to session(oradynaset)unt - 1 responsewrite"" responsewrite session(oradynaset)fields(i)name responsewrite"" next responsewrite "" startrow=(page-1)pagesize+1 endrow=pagepagesize oradynasetmoveto startrow for j=startrow to endrow responsewrite"" for i=0 to session(oradynaset)unt - 1 responsewrite"" responsewrite session(oradynaset)fields(i)value responsewrite"" next responsewrite"" session(oradynaset)dbmovenext if session(oradynaset)eof then exit for next responsewrite"" end if if page> then response write 第一页 response write 上一页 end if if cint(page) response write 下一页 response write 最后页 end if set orasession=nothing %>  query asp <% 设置页长 pagesize= if session(oradynaset) recordcount= then response write 无符合条件的数据 else response write 查询结果 计算页数 pages=int(session(oradynaset) recordcount/pagesize) if pagespagesize=session(oradynaset) recordcount then pages=int(session(oradynaset) recordcount/pagesize) else pages=int(session(oradynaset) recordcount/pagesize)+ end if if request( page )= then page= else page=cstr(request( page )) end if response write 共 &pages& 页 目前第 &page& 页  response write for i= to session(oradynaset)unt response write response write session(oradynaset) fields(i) name response write next response write startrow=(page )pagesize+ endrow=pagepagesize oradynaset moveto startrow for j=startrow to endrow response write for i= to session(oradynaset)unt response write response write session(oradynaset) fields(i) value response write next response write session(oradynaset) dbmovenext if session(oradynaset) eof then exit for next response write end if if page> then response write 第一页 response write 上一页 end if if cint(page) response write 下一页 response write 最后页 end if set orasession=nothing %>

以上就是关于现在开发网站,好像都是流行用php,那javaweb一般用在哪里呢它们之间的区别和优劣势在哪里呢全部的内容,包括:现在开发网站,好像都是流行用php,那javaweb一般用在哪里呢它们之间的区别和优劣势在哪里呢、会SQL语句,就能快速开放你的数据接口API、在ASP中利用Oracle Object for OLE访问Oracle 8等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9746524.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存