JSP 应用程序具有可移植性,这意味着它们可以在安装了 Java 平台和 Web 服务器的任何系统上运行。这种跨平台兼容性使 JSP 成为构建可移植 Web 应用程序的理想选择。
Java 是一个跨平台语言,这意味着它可以在 Windows、macOS、Linux 和其他操作系统上运行。因此,使用 Java 编写的 JSP 应用程序也具有跨平台兼容性。JSP 规范独立于 Web 服务器,这意味着 JSP 应用程序可以在任何支持 Java 平台的 Web 服务器上运行,例如 Apache Tomcat、JBoss EAP 和 GlassFish。
JSP 可移植性的好处包括:
- 部署简便:JSP 应用程序可以在各种系统上轻松部署,而无需对代码进行修改。
- 可维护性:由于 JSP 应用程序的跨平台兼容性,维护它们更加容易,因为代码可以轻松地在不同的系统之间转移。
- 可扩展性:JSP 可移植性使可扩展应用程序更容易,因为应用程序可以部署在多台服务器上,而无需担心兼容性问题。
以下是 JSP 可移植性的一个示例:
// JSP 文件
<%
String name = request.getParameter("name");
%><html>
<body>
<p>你好,<%= name %>!</p>
</body>
</html>
这个 JSP 文件可以在任何支持 Java 平台和 Web 服务器的系统上运行。当用户访问此 JSP 文件时,Web 服务器将编译它并生成一个 HTML 页面,该页面包含用户的名称。这允许此 JSP 文件在任何平台上部署和使用,而无需对代码进行任何修改。
JSP 的可移植性使其成为构建跨平台 Web 应用程序的理想选择。这种可移植性使应用程序可以轻松部署到各种系统上,并简化了维护和可扩展性。
什么是JSP,JAVA又是什么?各有什么作用呢?
JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*,*)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*)。
用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。
插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。
目前较新的是JSP1.2规范,JSP2.0规范的征求意见稿也已出台。
JSP页面由HTML代码和嵌入其中的Java代码所组成。
服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。
JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
1. JSP技术的强势 (1)一次编写,到处运行。
在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。
(2)系统的多平台支持。
基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。
相比ASP/PHP的局限性是现而易见的。
(3)强大的可伸缩性。
从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
(4)多样化和功能强大的开发工具支持。
这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
2. JSP技术的弱势 (1) 与ASP一样,Java的一些优势正是它致命的问题所在。
正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。
(2) Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。
从另一方面,它还需要硬盘空间来储存一系列的文件和文件,以及对应的版本文件。
=================================java Java是Sun公司推出的一种编程语言。
它是一种通过解释方式来执行的语言,语法规则和C++类似。
同时,Java也是一种跨平台的程序设计语言。
用Java语言编写的程序叫做“Applet”(小应用程序),用编译器将它编译成类文件后,将它存在WWW页面中,并在HTML档上作好相应标记,用户端只要装上Java的客户软件就可以在网上直接运行“Applet”。
Java非常适合于企业网络和Internet环境,现在已成为Internet中最受欢迎、最有影响的编程语言之一。
Java有许多值得称道的优点,如简单、面向对象、分布式、解释性、可靠、安全、结构中立性、可移植性、高性能、多线程、动态性等。
Java摈弃了C++中各种弊大于利的功能和许多很少用到的功能。
Jave可以运行与任何微处理器,用Java开发的程序可以在网络上传输,并运行于任何客户机上。
JAVA介绍 一、前言 『Java』从1995年的暑假开始在计算机业界就受到了高度注意,特别是在Internet和多 媒体(Multimedia)相关产品类方面。
Java为何有如此这么大的魅力?人作如此的比喻: Java在全球资讯网(World Wide Web, WWW )地位就如同电子表格(Spreadsheet)与个人计 算机(PC)的关系。
那Java究竟有那些特色呢? Java是一种软件技术 是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言 是一种为 Internet发展的计算机语言 是一种使网页(Web Page)产生生动活泼画面的语言 是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言 是一种语言,用以产生「小应用程序(Applet(s))」 是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能 是一种将安全性(Security)列为第一优先考虑的语言 是一种使用者不需花费很多时间学习的语言 是一种突破用户端机器环境和CPU结构的语言 是一种「写一次,即可在任何机器上执行(Write OnceRun Anywhere)」的语言是有史以来,第一套允使用者将应用程序(Applications)通过Internet从远端的服务器(Remote Server)传输到本地端的机器上(LocalMachine)并执行 是一种应用程序提供者不需要知道使用者的计算机硬件(如:Sun, Intel, 或MAC等)与软件(如:SW- UNIX, MAC O/S, Windows, 或NT等)环境的语言(Kestenbaum, 1995)。
Java的版本J2SE Java的标准版本 (Java2 Standard Edition) 定位在客户端,主要用于桌面应用软件的编程J2ME (Java2 Micro Edition)主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE 企业版本(Java2 Enterprise Edition)定义在服务器端Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
下面将依序地介绍Java,首先是Java的发展历史与Java语言介绍,其次依序是Java Applet和HotJava的简单介绍。
二、Java FAQ 下面以问答的方式来说明Java的发展历史与其背景(下列内容整理自 Java FAQ list and Tutorial和The Java Language: A White Paper,读者若欲深 入了解,请自行参阅原文): Java何时开始发展?(When) 最早大概可追溯至1991年四月份,Sun的绿色计划(Green Project)开始着手于发展消费性电子产品(Consumer Electronics),所使用的语言是C、C++、及Oak (为Java语 言的前身),后因语言本身和市场的问题, 使得消费性电子产品的发展无法达到当初 预期的目标,再加上网络的兴起, 绿色计划也因此而改变发展的方向,这已是1994 年了。
为何称之为Java?(Why) Java是美国SUN计算机公司Java发展小组历经无数次的激烈讨论之后才被选择出。
生动(Liveliness)、动画(Animation)、速度(Speed)、交互性(Interactivity)为当 初选择名字时所欲表达出的特色。
Java是在无数的建议中脱颖而出的,而Java 不是由几个单字的首字所组成, 而是从许多程序设计师钟爱的热腾腾、香浓咖啡中 产生灵感的。
谁开发了Java?(Who) Java是美国SUN计算机公司Java发展小组开发的,早期的成员(绿色工程)是Patrick Naughton, James Gosling, & Mike Sheridan,而现在大家较为熟悉的成员是James Gosling。
在那里开发了Java?(Where) 也就是问Java的出生地?答案是美国。
如何可以找到所需的Java信息?(How to) 在网路上,您可以连到Sun公司的Java WWW网站,URL是,或是。
在那里几乎可以找到您所需要的所有Java信息,但是语 言多少是一个障碍, 至少对某些人而言;没关系,目前国内已有很多个网站提供中文 Java信息。
在清华和中科院的FTP站点上有不少有关资料。
想象以后应会有更多的站点提供相关信息。
如何才能看到Java的效果?(How Do I) 首先您需要有含有Java解释器的浏览器(Browser),例如:Netscpae公司的Netscape Navigator 2.0以上或是Sun公司的HotJava浏览器,对个人计算机使用者而言,操作 系统需是Windows 95或是Windows NT。
Java是因为撰写C++语言程序时的困难而研制开的,起先,只是一个消费性电子产品 大计划中的一部份,C++语言是当初被考虑采用的,但从一开始的编译问题一直到最 后的一连串问题迫使得放弃C++语言,而有Java语言的产生。
Sun是要Java成为一个简 单(Simple)、面向对象的(Object Oriented)、 分布式的(Distributed)、解释的(Interpreted)、健壮的(Robust)、安全的(Secure)、 结构中立的(Architecture Neutral)、可移植的(Portable)、高效能的(High Performance)、多线程的(Multithreaded)、动态的(Dynamic)的程序语言(摘译自 TheJava Language: A White Paper, 1995)。
在Sun的Java语言白皮书中明白地说明上述Java语言的技巧。
若以木工为比喻,一个面 向对象的木工,他(她)最主要的重点是即将要做的木椅子,其次才是所需要的工具; 反之;一个以非面向对象的木工,他(她)所关心的只是工具。
最近的即插即用(Plug and Play)亦是面向对象设计的重点。
分布式的(Distributed):Java有一个很周全的程薪录JAVA介绍 。
一、 『Java』从1995年的暑假开始在计算机业界就受到了高度注意,特别是在Internet和 多媒体(Multimedia)相关产品类方面。
Java为何有如此这么大的魅力?人作如此的比喻: Java在全球资讯网(World Wide Web, WWW )地位就如同电子表格(Spreadsheet)与个人计 算机TTP和FTP等TCP/IP通讯协定相配合。
Java应用程序(Applications) 能在网路上开启及连结使用物件,就如同透过URLs连结使用一个本地文件系统(Local File System)。
健壮的(Robust):由Java所编写出的程序能在多种情况下执行而具有其稳定性。
Java与 C/C++最大不同点是Java有一个指针模型(Pointer Model)来排除内存被覆盖(Overwriting Memory)和毁损数据(Corrupting Data)的可能性。
安全的(Secure):Java是被设计用于网络及分布式的环境中,安全性自必是一个很 重要的考虑。
Java拥有数个阶层的互锁(Interlocking)保护措施,能有效地防止病 毒的侵入和破坏行为的发生。
结构中立的(Architecture Neutral):一般而言,网络是由很多不同机型的机器所 组合而成的,CPU和作业系统体系结构均有所不同;因此,如何使一个应用程序可以 在每一种机器上执行,是一个难题。
所幸,Java的编译器产生一种结构中立的目标 文件格式(Object File Format);这使得编译码得以在很多种处理器中执行。
可移植的(Portable):原始资料型式的大小是被指定的,例如float一直是表示一 个32位元IEEE 754浮点运算数字,因绝大多数的CPU都具有此共同特征。
程序库属于 系统的一部份,它定义了一些可移植的程序接口,Java本身具备有很好的可移植性。
解释的(Interpreted):Java解释器能直接地在任何机器上执行Java位元码(Bytecodes), 因此在进行程序连结时,时间的节省,这对于缩短程序的开发过程,有极大的帮助。
高效能的(High Performance):Java位元码迅速地能被转换成机器码(Machine Code), 从位元码转换到机器码的效能几乎与C与C++没有分别。
多线程的(Multi threaded):Java语言具有多线程的功能,这对于交互回应能力及 即时执行行为是有帮助的。
动态的(Dynamic):Java比C或C++语言更具有动态性,更能适应时刻在变的环境, Java不会因程序库的更新,而必须重新编译程序。
此外,Hank Shiffman (Making Sense of Java)亦针一般对Java的错误看法及观 念提出他的说明,特在此摘译如下: Java是一种编写Web Pages的一种语言,就如同HTML和VRML一样 事实上,Java并不像是HTML此一类的描述语言(Description Language),而是一种 编程语言(Programming Language)。
描述语言标明内容和位置,而编程语言描述一 种产生结果的过程。
2. Java语言容易学习和使用,不像C、C++和其它程序语言 Java是一种编程语言。
Java容易学吗?Java或许是比C或C++容易学,但仍是一种编程语言,而不是一种描述语言。
3. Java码是可移植的,但C及C++不是 Java原代码(Source Code)是比C语言来得可移植一点,差别在于Java的目标码。
Java码在一种机器上进行编译,而能在所有的机器上执行, 只要那部机器上有 Java解释器。
4. Java能被拓展而在机器上执行任何事情 理论上,Java Applet (Java小应用程序)能做任何事情,如模拟3D VRML模型、播放电影、产生音频....等。
但事实上,一个小应用程序(Applet)仅能在那一页上被执行,而无法在那一页之外执行。
同时,Java亦受限于程序库的功能。
5. Java是适合于建立大型的应用程序 如果Java适合于大型程序,则Java就不适合应用于Web浏览器了。
第一个商业 性的Java Applets (Applixs Java-Based Spreadsheet) 并不是全然使用Java, 它只使用Java作为用户接口,而所有的处理工作, 是用CGI码。
6. Java是解释执行的,Basic是解释执行的,因此Java=Basic 虽然Java的确是使用解释器,但事实上,Java则与C或C++等完全编译语言较为相近,但与Basic或APL等完全解译语言较不相近。
7. Java删除了CGI命令稿(Scripts)和程序的需求 Java Applets将会取代部份CGI的用途。
在有些情况,Java Applets能够取代一些服务器端代码(Server-Side Code),但大多数的情况,基于安全性理由或是效 能的考虑,Java仍无法全然取代CGI Scripts。
8. Netscapes JavaScript是与Java有相关 除了名称之外,Java和JavaScript是有一点点相关。
JavaScript是一种命令稿语 言,是可以在HTML页中使用。
Java码并未出现在HTML中,而在HTML中通过一个链 结来链结编译码组。
Java和JavaScript之间的关系就如同C语言和C Shell一般。
Asp,php,jsp在网站中各是起什么作用的?
asp、php、、jsp介绍及优缺点比较现在主流的网站开发语言无外乎asp、php、、jsp等。
网页从开始简单的hmtl到复杂的服务语言,走过了10多个年头,各种技术层出不穷,单个的主流技术也在不断翻新的版本,现在分析下各种语言的区别、优势、劣势、开发注意事项!HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了.主流网站开发语言之ASP:ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和Visual BASIC类似,可以像SSI(Server Side Include)那样把后台脚本代码内嵌到HTML页面中。
虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。
目前在微软的 战略中新推出的 借鉴了Java技术的优点,使用C Sharp (C#) 语言作为的推荐语言,同时改进了以前ASP的安全性差等缺点。
但是,使用ASP/仍有一定的局限性,因为从某种角度来说它们只能在微软的 Windows NT/2000/XP + IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案,但是目前ASP在UNIX/Linux上的应用可以说几乎为0)。
所以平台的局限性和ASP自身的安全性限制了ASP的广泛应用。
ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。
主流网站开发语言之PHP:PHP 的全名非常有趣,它是一个巢状的缩写名称——“PHP: Hypertext Preprocessor”,打开缩写还是缩写。
PHP是一种HTML 内嵌式的语言 (就像上面讲的ASP那样)。
而 PHP 独特的语法混合了C,Java,Perl以及 PHP 式的新语法。
它可以比 CGI 或者 Perl 更快速地执行动态网页。
PHP的源代码完全公开,在 Open Source 意识抬头的今天,它更是这方面的中流砥柱。
不断地有新的函数库加入,以及不停地更新,使得 PHP 无论在 UNIX 或是 Win32 的平台上都可以有更多新的功能。
它提供丰富的函数,使得在程式设计方面有着更好的资源。
目前PHP的最新版本为4.1.1 ,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。
PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统 CGI 或者 ASP 等技术有了更好的表现。
平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。
如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话, 使用不同的数据库,PHP的函数名不能统一。
这样,使得程序的移植变得有些麻烦。
不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。
是的一部分,作为战略产品,不仅仅是 Active Server Page (ASP) 的下一个版本;它还提供了一个统一的 Web 开发模型,其中包括开发人员生成企业级 Web 应用程序所需的各种服务。
的语法在很大程度上与 ASP 兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。
可以通过在现有 ASP 应用程序中逐渐添加 功能,随时增强 ASP 应用程序的功能。
是一个已编译的、基于 的环境,可以用任何与 兼容的语言(包括 Visual Basic 、C# 和 JScript .)创作应用程序。
另外,任何 应用程序都可以使用整个 Framework。
开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。
可以无缝地与 WYSIWYG HTML 编辑器和其他编程工具(包括 Microsoft Visual Studio )一起工作。
这不仅使得 Web 开发更加方便,而且还能提供这些工具必须提供的所有优点,包括开发人员可以用来将服务器控件拖放到 Web 页的 GUI 和完全集成的调试支持。
微软为设计了这样一些策略:易于写出结构清晰的代码、代码易于重用和共享、可用编译类语言编写等等,目的是让程序员更容易开发出Web应用,满足计算向Web转移的战略需要。
主流网站开发语言之JSP:JSP和Servlet要放在一起讲,是因为它们都是Sun公司的J2EE(Java 2 platform Enterprise Edition)应用体系中的一部分。
Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。
它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。
不同的是,CGI对每个客户请求都打开一个进程(Process),而Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。
对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。
由于线程与线程之间可以通过生成自己的父线程(Parent Thread)来实现资源共享,这样就减轻了服务器的负担,所以,Java Servlet可以用来做大规模的应用服务。
虽然在形式上JSP和ASP或PHP看上去很相似——都可以被内嵌在HTML代码中。
但是,它的执行方式和ASP或PHP完全不同。
在JSP被执行的时候,JSP文件被JSP解释器(JSP Parser)转换成Servlet代码,然后Servlet代码被Java编译器编译成 字节文件,这样就由生成的Servlet来对客户端应答。
所以,JSP可以看做是Servlet的脚本语言(Script Language)版。
由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA – Write Once, Run Anywhere)”。
除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。
因此,JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。
在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。
这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数,而是指转换后的Servlet程序代码的行数。
这给调试代码带来一定困难。
所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错),逐步缩小出错代码段的范围,最终确定错误代码的位置。
主流网站开发语言之CGI:CGI就是公共网关接口 (Common Gateway Interface) 的缩写。
它是最早被用来建立动态网站的后台技术。
这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等,但是目前在CGI中使用的最为广泛的是Perl语言。
所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是或者 。
CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。
CGI程序最后将执行的结果(HTML页面代码)传回给客户。
由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。
这也就是最近几年来随着各种新的后台技术的诞生,CGI应用在Internet上越来越少的原因。
CGI方式不适合大访问量的应用。
如今主流的Web服务器软件主要由IIS或Apache组成。
IIS支持ASP且只能运行在Windows平台下,Apache支持PHP,CGI,JSP且可运行于多种平台,虽然Apache是世界使用排名第一的Web服务器平台,但是众所周知,Windows以易用而出名,也因此占据不少的服务器市场。
我们常用的开发组合:IIS环境下++SQL ++SQL SERVERAPACHE环境下+++MYSQL可以说,asp确实快过时了,在未来jsp和将会有巨大的潜力,但php凭借其开源的特性也会占有一定份额。
vb一般指vb6.0,是传统的win32编程。
和是基于微软平台的语言。
说java好主要是因为java的j2ee部分做企业级开发很强大,而且跨平台。
c#是平台上最好用的语言,现在只能运行在windows系统。
web开发方面和j2ee的竞争很激烈,难说以后鹿死谁手。
现在做网站大部分都是或jsp的,容易上手,比较普及,但是平台单一,jsp虽然上手难,但是跨平台,安全性高。
下面比较一下ASP、、JSP和PHP的优点和缺点:ASP优点:1. 无需编译2. 易于生成3. 独立于浏览器4. 面向对象5. 与任何ActiveX scripting 语言兼容6. 源程序码不会外漏缺点:1、Windows本身的所有问题都会一成不变的也累加到了它的身上。
安全性、稳定性、跨平台性都会因为与NT的捆绑而显现出来。
2、ASP由于使用了COM组件所以它会变的十分强大,但是这样的强大由于Windows NT系统最初的设计问题而会引发大量的安全问题。
只要在这样的组件或是操作中一不注意,哪么外部攻击就可以取得相当高的权限而导致网站瘫痪或者数据丢失。
3、由于ASP还是一种Script语言所没除了大量使用组件外,没有办法提高其工作效率。
它必须面对即时编绎的时间考验,同时我们还不知其背后的组件会是一个什么样的状况。
4、无法实现跨操作系统的应用。
当然这也是微软的理由之一,只有这样才能发挥ASP最佳的能力。
可是我却认为正是Windows限制了ASP,ASP的概念本就是为一个能让系统运行于一个大的多样化环境而设计的。
5、还无法完全实现一些企业级的功能:完全的集群、负载均横。
优点:1. 简洁的设计和实施。
2. 语言灵活,并支持复杂的面向对象特性。
3. 开发环境。
缺点:1.数据库的连接复杂。
JSP优点:1、 一处编写随处运行。
2、 系统的多台平支持。
3、 强大的的可伸缩性。
4、 多样化和功能强大的开发工具支持。
缺点:1、 与ASP一样,Java的一些优势正是它致命的问题所在。
2、 缺少系统性的资料。
3、 速度超慢PHP优点:1、 一种能快速学习、跨平台、有良好数据库交互能力的开发语言。
2、 简单轻便,易学易用。
3、 与Apache及其它扩展库结合紧密。
4、 良好的安全性。
缺点:1、 数据库支持的极大变化。
2、 不适合应用于大型电子商务站点3、 安装复杂。
4、 缺少正规的商业支持。
5、 无法实现商品化应用的开发。
jsp好学么?是语言还是开发工具?
JSP(JavaServer Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*,*)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*)。
用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。
插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。
目前较新的是JSP1.2规范,JSP2.0规范的征求意见稿也已出台。
JSP页面由HTML代码和嵌入其中的Java代码所组成。
服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。
JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
JSP技术的强势[编辑本段](1)一次编写,到处运行。
在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。
(2)系统的多平台支持。
基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。
相比ASP/PHP的局限性是显而易见的。
(3)强大的可伸缩性。
从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
(4)多样化和功能强大的开发工具支持。
这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
JSP技术的弱势[编辑本段](1) 与ASP一样,Java的一些优势正是它致命的问题所在。
正是由于为了跨平台的功能,为了极度的伸缩能力,所以极大的增加了产品的复杂性。
(2) Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比起用户数量来说确实是“最低性能价格比”了。
从另一方面,它还需要硬盘空间来储存一系列的文件和文件,以及对应的版本文件。
JSP九种内置对象:[编辑本段]request, response, out, session, application, config, pagecontext, page, exception. 一对象:该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息。
二对象:对客户的请求做出动态的响应,向客户端发送数据。
三.session对象1.什么是session:session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。
从一个客户打开浏览器并连接到服务器开始,到客户关闭浏览器离开这个服务器结束,被称为一个会话。
当一个客户访问一个服务器时,可能会在这个服务器的几个页面之间反复连接,反复刷新一个页面,服务器应当通过某种办法知道这是同一个客户,这就需要session对象。
2.session对象的ID:当一个客户首次访问服务器上的一个JSP页面时,JSP引擎产生一个session对象,同时分配一个String类型的ID号,JSP引擎同时将这个ID号发送到客户端,存放在Cookie中,这样session对象和客户之间就建立了一一对应的关系。
当客户再访问连接该服务器的其他页面时,不再分配给客户新的session对象,直到客户关闭浏览器后,服务器端该客户的session对象才取消,并且和客户的会话对应关系消失。
当客户重新打开浏览器再连接到该服务器时,服务器为该客户再创建一个新的session对象。
四.aplication对象1.什么是application:服务器启动后就产生了这个application对象,当客户在所访问的网站的各个页面之间浏览时,这个application对象都是同一个,直到服务器关闭。
但是与session不同的是,所有客户的application对象都是同一个,即所有客户共享这个内置的application对象。
2.application对象常用方法:(1)public void setAttribute(String key,Object obj): 将参数Object指定的对象obj添加到application对象中,并为添加的对象指定一个索引关键字。
(2)public Object getAttribute(String key): 获取application对象中含有关键字的对象。
五.out对象out对象是一个输出流,用来向客户端输出数据。
out对象用于各种数据的输出。
六•page 对应this关键字。
JSP网页本身page对象是当前页面转换后的Servlet类的实例。
从转换后的Servlet类的代码中,可以看到这种关系:Object page = this;在JSP页面中,很少使用page对象。
七•. ServletConfig 的实例,该实例代表该JSP 的配置信息。
常用的方法有getInitPararneter(String paramNarne) 及getInitPararneternarnes() 等方法。
事实上, JSP 页面通常无须配置,也就不存在配置信息。
因此,该对象更多地在Servlet 中有效。
八• 的实例,该实例代表其他页面中的异常和错误。
只有当页面是错误处理页面,即编译指令page 的isErrorPage 属性为true 时,该对象才可以使用。
常用的方法有getMessageO和printStackTraceO等。
九• 的实例,该对象代表该JSP 页面上下文,使用该对象可以访问页面中的共享数据。
常用的方法有getServletContextO和getServletConfigO等。
//使用pageContext 设置属性,该属性默认在page 范围内pageContext. setAttribute (page , hello) ;//使用request 设置属性,该属性默认在request 范围内request. setAttribute (request , hello);//使用pageContext将属性设置在request 范围中(request2 , hello , _SCOPE);// 使用session将属性设置在session 范围中(session , hellol;//使用pageContext将属性设置在session范围中(session2 , hello , _SCOPE);//使用application将属性设置在application范围中application. setAttribute (app , hello) ;//使用pageContext 将属性设置在application 范围中(app2 , hello , 工CATION_SCOPE) ;JSP动态网站开发技术[编辑本段]早期的动态网站开发技术使用的是CGI-BIN接口。
开发人员编写与接口相关的单独的程序和基于Web的应用程序,后者通过Web服务器来调用前者。
这种开发技术存在着严重的扩展性问题——每一个新的CGI程序要求在服务器上新增一个进程。
如果多个用户并发地访问该程序,这些进程将耗尽该Web服务器所有的可用资源,直至其崩溃。
为克服这一弊端,微软公司提出了Active Server Pages(ASP)技术,该技术利用“插件”和API简化了Web应用程序的开发。
ASP与CGI相比,其优点是可以包含HTML标签,可以直接存取数据库及使用无限扩充的ActiveX控件,因此在程序编制上更富有灵活性。
但该技术基本上是局限于微软的操作系统平台之上,主要工作环境是微软的IIS应用程序结构,所以ASP技术不能很容易地实现跨平台的Web服务器程序开发。
Hypertext Preprocessor(超文本预处理器),即PHP动态网站开发技术与ASP相似,也是一种嵌入HTML文档的服务器端脚本语言。
其语法大部分与C、Java、Perl等语言相似,并形成了自己的独有风格,利用该语言Web程序员可以快速地开发出动态网页。
PHP在大多数Unix平台、GUN/Linux和微软Windows平台上均可以运行。
PHP的优点主要有:安装方便,学习过程简单;数据库连接方便,兼容性强;扩展性强;可以进行面向对象编程等。
但PHP也存在一些弱点,主要是PHP是一种解释型语言,不支持多线程结构,支持平台和连接的数据库都有限,特别是在支持的标准方面存在先天不足,对于某些电子商务应用来说,PHP是不适合的。
还有一些技术,如Java Servlets技术,利用该技术可以很容易地用Java语言编写交互式的服务器端代码。
一个Java Servlets就是一个基于Java技术的运行在服务器端的程序(与Applet不同,后者运行在浏览器端)。
开发人员编写这样的Java Servlets,以接收来自Web浏览器的HTTP请求,动态地生成响应(可能需要查询数据库来完成这种请求),然后发送包含HTML或XML文档的响应到浏览器。
这种技术对于普通的页面设计者来说要轻易地掌握是很困难的。
采用这种方法,整个网页必须都在Java Servlets中制作。
如果开发人员或者Web管理人员想要调整页面显示,就不得不编辑并重新编译该Java Servlets。
太阳微系统公司(Sun Microsystems Inc.)在Web服务器、应用服务器、交易系统以及开发工具供应商间广泛支持与合作下,整合并平衡了已经存在的对Java编程环境(例如Java Servlets和JavaBeans)进行支持的技术和工具后产生了一种新的、开发基于Web应用程序的方法——JavaServer Pages技术(JSP)。
这种动态网站开发技术主要有以下一些特点: 能够在任何Web或应用程序服务器上运行; 分离了应用程序的逻辑和页面显示; 能够进行快速的开发和测试; 简化了开发基于Web的交互式应用程序的过程。
JSP的技术方法 为了快速方便地进行动态网站的开发,JSP在以下几个方面做了改进,使其成为快速建立跨平台的动态网站的首选方案。
1.将内容的生成和显示进行分离 用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面,并使用JSP标识或者小脚本来生成页面上的动态内容(内容是根据请求变化的,例如请求账户信息或者特定的一瓶酒的价格等)。
生成内容的逻辑被封装在标识和JavaBeans组件中,并且捆绑在脚本中,所有的脚本在服务器端运行。
由于核心逻辑被封装在标识和JavaBeans中,所以Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。
在服务器端,JSP引擎解释JSP标识和脚本,生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC技术访问数据库或者包含文件),并且将结果以HTML(或者XML)页面的形式发送回浏览器。
这既有助于作者保护自己的代码,又能保证任何基于HTML的Web浏览器的完全可用性。
2.可重用组件 绝大多数JSP页面依赖于可重用的、跨平台的组件(JavaBeans或者Enterprise JavaBeans组件)来执行应用程序所要求的复杂的处理。
开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者和客户团体所使用。
基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。
3.采用标识 Web页面开发人员不会都是熟悉脚本语言的编程人员。
JSP技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。
标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。
4.适应平台 几乎所有平台都支持Java,JSP+JavaBeans几乎可以在所有平台下通行无阻。
从一个平台移植到另外一个平台,JSP和JavaBeans甚至不用重新编译,因为Java字节码都是标准的与平台无关的。
5.数据库连接 Java中连接数据库的技术是JDBC,Java程序通过JDBC驱动程序与数据库相连,执行查询、提取数据等操作。
Sun公司还开发了JDBC-ODBC bridge,利用此技术Java程序可以访问带有ODBC驱动程序的数据库,目前大多数数据库系统都带有ODBC驱动程序,所以Java程序能访问诸如Oracle、Sybase、MS SQL Server和MS Access等数据库。
此外,通过开发标识库,JSP技术可以进一步扩展。
第三方开发人员和其他人员可以为常用功能创建自己的标识库。
这使得Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来进行工作。
JSP技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且能扩展到支持企业级的分布式应用中。
作为采用Java技术家族的一部分,以及Java 2(企业版体系结构)的一个组成部分,JSP技术能够支持高度复杂的基于Web的应用。
由于JSP页面的内置脚本语言是基于Java的,而且所有的JSP页面都被编译成为Java Servlets,所以JSP页面具有Java技术的所有好处,包括健壮的存储管理和安全性。
作为Java平台的一部分,JSP拥有Java编程语言“一次编写,各处运行”的特点。
JSP的应用模型 利用JSP技术,动态信息由JSP页面来表现,JSP页面由安装在Web服务器或者使用JSP的应用服务器上的JSP引擎执行。
JSP引擎接受客户端对JSP页面的请求,并且生成JSP页面作为对客户端的响应。
JSP页面通常被编译成为Java Servlets,这是一个标准的Java扩展。
页面开发人员能够访问全部的Java应用环境,以利用Java技术的扩展性和可移植性。
当JSP页面第一次被调用时,如果它还不存在,就会被编译成为一个Java Servlets类,并且存储在服务器的内存中。
这就使得在接下来的对该页面的调用中,服务器会有非常快的响应(这避免了CGI-BIN为每个HTTP请求生成一个新的进程的问题)。
JSP页面可以包含在多种不同的应用体系结构或者模型中,可以用于由不同协议、组件和格式所组成的联合体中。
基于JSP的动态信息发布技术是一个开放的、可扩展的建立动态Web页面的标准。
不论采用什么创建工具,开发人员都可以使用JSP页面来创建可移植的Web应用,在不同的Web应用服务器上运行。
JSP 2.0介绍[编辑本段]新的JSP规范版本包括新的用于提升程序员工作效率功能,主要有:An Expression Language (EL) 允许开发者创建 Velocity-样式 templates (among other things). 更快更简单的创建新标签的方法。
Hello, ${} <%-- same as: Hello, <%=(visitor)%> --%>[编辑] 模-视图-控件 模式为了把表现层presentation从请求处理request processing 和数据存储data storage中分离开来,升阳公司推荐在JSP文件中使用一种模-视图-控件Model-view-controller 模式。
规范的SERVLET或者分离的JSP文件用于处理请求。
当请求处理完后,控制权交给一个只作为创建输出作用的JSP页。
有几种平台都基于服务于网络层的模-视图-控件 模式(比如Struts 和Spring framework)。
JSP2.0样例[编辑本段]不管JSP编译器是生成SERVLET的JAVA源码,或者是直接发布二进制码,了解一下JSP编译器是如何把文件转换成一个JAVA SERVLET,都是很有帮助的。
例如,看一下如下输入JSP和它最后生成的JAVA SERVLET:Input JSP<%@ page errorPage= %><%@ page import= %><html><head><%! int serverInstanceVariable = 1;%>...<% int localStackBasedVariable = 1; %>[table][tbody][tr][td]<%= expanded inline %>import _myserlvet implements , {//inserted as a//result of <%! int serverInstanceVariable = 1;%>int serverInstanceVariable = 1; void _jspService( request, response )throws ,{ config = ...;//get the servlet configObject page = this;PageContext pageContext = ...;//get the page context for this request out = ();HttpSession session = ( true );try {( <html>\r\n );( <head>\r\n );...//from <% int localStackBasedVariable = 1; %>int localStackBasedVariable = 1; ( [/tbody][/table][table]\r\n );( [tbody][tr][td] );//note, toStringOrBlank() converts the expression into a string or if// the expression is null, it uses the empty string.//from <%= expanded inline %>}}}[/tbody][/table]