现在市场上的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首先要编译成字节码文件,然后在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只用了令人吃惊的四秒钟就结束了*的回圈。 而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开发的系统的价格要高
代码无错,不代表你的代码健壮性就很强,很明显,楼主你犯了个错误,你这是空指针异常,因为你获取到一个null,但是你仍然引用了这个null,所以报错了,就在SaveAction的execute里面
JSP就是Java,只是它是一个特别的Java语言,加入了一个特殊的引擎,这个引擎将HTTPServlet这个类的一些对象自动进行初始化好让用户使用,而用户不用再去操心前面的工作。JSP广泛应用于网页开发,是一种很好的编程语言。
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 [2] 。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
语言特点
1.简单性
Java看起来设计得很像C++,但是为了使语言小和容易熟悉,设计者们把C++语言中许多可用的特征去掉了,这些特征是一般程序员很少使用的。例如,Java不支持go to语句,代之以提供break和continue语句以及异常处理。Java还剔除了C++的操作符过载(overload)和多继承特征,并且不使用主文件,免去了预处理程序。因为Java没有结构,数组和串都是对象,所以不需要指针。Java能够自动处理对象的引用和间接引用,实现自动的无用单元收集,使用户不必为存储管理问题烦恼,能更多的时间和精力花在研发上。
2.面向对象
Java是一个面向对象的语言。对程序员来说,这意味着要注意应中的数据和操纵数据的方法(method),而不是严格地用过程来思考。在一个面向对象的系统中,类(class)是数据和操作数据的方法的集合。数据和方法一起描述对象(object)的状态和行为。每一对象是其状态和行为的封装。类是按一定体系和层次安排的,使得子类可以从超类继承行为。在这个类层次体系中有一个根类,它是具有一般行为的类。Java程序是用类来组织的。
3.分布性
Java设计成支持在网络上应用,它是分布式语言。Java既支持各种层次的网络连接,又以Socket类支持可靠的流(stream)网络连接,所以用户可以产生分布式的客户机和服务器。
4.编译和解释性
Java编译程序生成字节码(byte-code),而不是通常的机器码。Java字节码提供对体系结构中性的目标文件格式,代码设计成可有效地传送程序到多个平台。Java程序可以在任何实现了Java解释程序和运行系统(run-time system)的系统上运行。
5.稳健性
Java原来是用作编写消费类家用电子产品软件的语言,所以它是被设计成写高可靠和稳健软件的。Java消除了某些编程错误,使得用它写可靠软件相当容易。
6.安全性
Java的存储分配模型是它防御恶意代码的主要方法之一。Java没有指针,所以程序员不能得到隐蔽起来的内幕和伪造指针去指向存储器。更重要的是,Java编译程序不处理存储安排决策,所以程序员不能通过查看声明去猜测类的实际存储安排。编译的Java代码中的存储引用在运行时由Java解释程序决定实际存储地址。
7.可移植性
Java使得语言声明不依赖于实现的方面。例如,Java显式说明每个基本数据类型的大小和它的运算行为(这些数据类型由Java语法描述)。
8.高性能
Java是一种先编译后解释的语言,所以它不如全编译性语言快。但是有些情况下性能是很要紧的,为了支持这些情况,Java设计者制作了“及时”编译程序,它能在运行时把Java字节码翻译成特定CPU(中央处理器)的机器代码,也就是实现全编译了。
9.多线程性
Java是多线程语言,它提供支持多线程的执行(也称为轻便过程),能处理不同任务,使具有线索的程序设计很容易。Java的lang包提供一个Thread类,它支持开始线索、运行线索、停止线索和检查线索状态的方法。
10.动态性
Java语言设计成适应于变化的环境,它是一个动态的语言。例如,Java中的类是根据需要载入的,甚至有些是通过网络获取的。
最后总结,通过以上关于jsp是什么语言内容介绍后,相信大家会对jsp是什么语言有个新的了解,更希望可以对你有所帮助。
命名空间的作用是避免命名冲突,提高代码的可读性和可维护性、促进代码的模块化。
一、避免命名冲突
在编程中,变量、函数、等的命名是非常重要的。不同的变量或函数使用相同的名称,会导致命名冲突,让代码无法正确运行。使用命名空间可以避免这种情况的发生。命名空间可以将不同的名称划分到不同的命名空间中,让每个名称都有唯一的标识符,避免了命名冲突的问题。
二、提高代码的可读性和可维护性
命名空间还可以提高代码的可读性和可维护性。通过将相关的代码划分到同一个命名空间中,可以使代码更加模块化和易于理解。同时,当代码需要修改或更新时,也可以更容易地找到需要修改的代码段,提高了代码的可维护性。
三、促进代码的模块化
命名空间可以促进代码的模块化,即将代码划分为多个独立的模块,每个模块都有其特定的功能和作用。这种模块化的方式可以使代码更加清晰和易于维护,同时也有助于实现代码的重用和扩展。
命名空间的嵌套、继承、限定符和别名
一、命名空间的嵌套
命名空间可以嵌套使用,即一个命名空间可以包含另一个命名空间。嵌套的命名空间可以进一步划分代码的层次结构,使其更加清晰和有条理。嵌套的命名空间可以增加代码的可重用性和可维护性。
二、命名空间的继承
命名空间可以继承其他命名空间的成员,包括变量、函数、类等。通过继承,一个命名空间可以获得另一个命名空间的全部成员,从而减少重复代码。继承可以使代码更加模块化和易于扩展。
三、命名空间的限定符
命名空间可以使用限定符来限定成员的可见性。限定符包括public、protected和private,它们决定了成员的访问权限。通过限定符,可以实现代码的封装和隐藏,从而提高代码的安全性和稳定性。
四、命名空间的别名
命名空间可以使用别名来简化复杂的命名空间路径。别名可以使代码更加简洁和易于阅读。别名还可以用于跨库引用,使得不同库的代码可以更好地协同工作。
优点:
缺点:
优点:
缺点:
对于这个问题,我们首先要清楚,HTML和JSP各自的作用以及使用的环境,这里就简单的介绍一下:
对于HTML来说,它是一种超文本标记语言,用来定义网页的基本结构,它是是由一系列标签组成的,可以用浏览器直接打开,也可以部署到服务器之后通过HTTP协议打开,一般我们会将HTML编写好的页面看作是静态页面;
对于JSP来说,它是运行在服务器中的一种脚本语言,在JSP页面中可以包括HTML代码、Java代码以及其他一些脚本,而且JSP编写好的页面需要部署到服务器中才可以打开,所以说它和PHP、ASP的作用是一样的,使用JSP可以将页面和代码分离,增强代码的可读性和可维护性;
到这里为止,不知道您发现没有,HTML、JSP有很大的差别,对于HTML来说,它只是一种标记语言,没有编程的能力,所以它的页面是静态的,而JSP则不然,是一种运行在服务器端的脚本语言,可以包括HTML代码展示页面,也可以包含Java代码处理逻辑。
综上所述,HTML和JSP并不一样,可以将JSP看作是一种包含HTML和数据的动态页面,而HTML则只是一种静态页面。
reusing javabeans in jsp |
---|
本文地址:http://www.hyyidc.com/article/16026.html