所谓“动态”并不是指那几个放在页面上的有动效果的图片(GIF动态图片)。而是具备以下几个特点:
1. 交互性 即网页会根据用户的要求和选择而动态改变和响应。将浏览器作为客户端界面,这将是Web发展的大势所趋。
2. 自动更新 即无须手动更新HTML文档,便会自动生成新的页面,可以大大减少工作量。
3. 因时因人而变 即当不同的时间,不同的人访问同一网址时会产生不同的页面。
这里先提提很早的,基本上是爷爷辈的一个技术。那就是CGI(Common Gateway Interface: 公用网关接口)。这个你可能没听说过。这个是早期动态网页主要采用的技术。这里就给出一个简单的CGI的例子就过了。有兴趣可以去Google世界里找相关CGI的信息。
例子:
#!/usr/bin/perl
$Hello="Hello, My CGI"; #字符串变量
$Time=2;
print $Hello,"for the" ",$Time,"nd time!","\n" ; # 输出一句话
#End hello.pl
输出结果是:Hello, My CGI for the 2nd time!
程序中第一个注释行具有特殊的含义,它是UNIX系统中shell的一条指令,表示在命令行上运行其后的命令。第一行市必需的,/usr/bin/perl提供Perl解释器的完整路径名。
ASP
ASP其实更精确的说是一个中间件,这个中间件将Web上的请求转入到一个解释器中,在这个解释器中对所有ASP的Script进行分析,再执行。而这时可以在这个中间件中创建一个新的COM对象,对这个对象中的属性和方法进行操作和调用,同时再通过这些COM组件完成更多的工作。所以可以说ASP的强大不在于它的VBScript,而在于后台的COM组件,这些组件无限地扩充ASP的能力。
那么现在还是有人在用ASP那么下面就谈谈ASP的优势吧!
最大的优点就是简单易学。Basic语言有着很大的用户群,开发基础是最广的。而Microsoft有一向做的非常好的联机手册和本地化语言的帮助,同时非常快地出现很多教学书籍。而且大都学校也是开设Microsoft的相关课程。这样对很大部分的学生或者开发人员带来学习和查询资料的方便性。
其次就是安装很方便。装好Windows2000,只要按照IIS,ASP就可以使用。没有什么需要发很多心思去配置
第三开发工具强大而多样,易用,简单,人性化
最后 在访问量较低的情况下,ASP能体现出一定的效率,这时它对机器的要求不高。
前面谈谈了谈谈它的优点,那么下面也谈谈它的缺点吧!
Windows本身的所有问题都会一成不变的累加到它的身上。安全性、稳定性、跨平台性都会随之而来。
ASP由于使用了COM组件,所以会变得十分强大,但是由于Windows NT系统最初的设计问题,这样的强大会引发大量的安全问题。只要在这样的组件或操作中稍微不注意,外部攻击就可以取得相当高的权限导致网站瘫痪或者数据丢失。
由于ASP还是一种Script语言,所以除了大量使用组件外,没有别的办法提高其工作效率。它必须面对即时编译的时间考验
无法实现跨从操作系统的应用
无法完全实现企业级的功能:完全的集群和负载均衡
上面简单列出了一些ASP缺点。
现在给出一个简单的ASP例子
<%@ language="VBScript"%>
<HTML>
<HEAD>
<META Http-EGUIV="Content-Type" content="text/html; charset=gb2312"/>
<TITLE> 简单的ASP例子</TITLE>
</HEAD>
<BODY>
<%
Week=DatePart("w",Date())
Response.Write WeekdayName(Week)
%>
</BODY>
</HTML>
输出结果为:
今天是:星期几
ASP.NET
ASP.NET是ASP在微软的.NET平台上的神经版本,你可以使用任何.NET兼容的语言来编写ASP.NET应用程序。使用VB.NET、C#、J#、ASP.NET页面(Web Form)进行编译可以提供比脚步语言更出色的性能表现。Web From可以让你在网页的基础上建立强大的窗体。当建立页面时,你可以使用ASP.NET服务端建立常用的UI元素,并对它们编程来完成一般的任务。这些控件允许你使用内建可重用的组件和自定义组件快速建立Web Form,使代码简单化。
ASP.NET 提供了一种编程模型和结构,对比原来的Web技术来说,它能更快速,容易地建立灵活、安全和稳定的应用程序。
下面给出使用C#语言和使用VB.NET语法的ASP.NET代码示例
C#语法
<Script language="C#" runat="server">
void Page_Load()
{
Response.Write("Hello World!");
}
</Script>
ASP.NET语法的例子
<script language="vb" runat="server">
sub page_load()
response.write("Hello World!")
end sub
</script>
至于上面的例子输出,我想就不必多说了。
PHP
PHP(Hypertext Preprocessor)是一种HTML内嵌式的语言(类似IIS上的ASP)。而PHP独特的语法混合了C、Java、Perl及PHP式的新语法,它可以比CGI或者Perl更快速地执行动态网页。
PHP能够支持诸多数据库,如Microsoft SQL Service、MySQL、Sybase、Oracle等。
它与HTML语言具有非常行的兼容性,使用者可以直接在脚本代码中加入HTML标签,或者在HTML标签中加入脚本代码,从而更好地实现页面控制。PHP提供了标准的数据库接口,连接数据库方便,兼容性强,扩展性强,可以进行面向对象编程。
那么也谈谈它的优势吧!
它是一种能很快速学习的、跨平台的,有良好数据库交互能力的开发语言。ASP比不上它的地方就是这种跨平台能力了。
PHP和Apache及其他扩展库结合紧密。PHP与Apache可以以静态编译的方式结合起来。而与其他的扩展库也可以用这样的方式结合(Windows平台除外)。这种方式最大的好处就是最大化地利用了CPU和内存,同时极为有效的利用Apache高性能的吞吐能力。同时外部的扩展也是静态联编,从而达到了最快的运行速度。由于与数据库的接口也使用了这样的方式,所以使用的是本地化的调用,这也让数据库发挥了最佳效能。
良好的安全性。由于PHP本身的代码开发,所以它的代码在许多工程师手中进行了检测,同时它与Apache编译在一起的方式也让它具有灵活的安全设定。所以到现在为止,PHP具有了公认的安全性能。
PHP的不足
数据库支持的极大变化。由于PHP的所有扩展接口都是由独立团队开发完成的,同时再开发时为了形成相应数据的个性化操作,所以PHP虽然支持许多数据库,但是针对每种数据库的开发语言却完全不同。针对一种数据库的开发工作,在数据库进行升级后需要开发人员进行几乎全部的代码的更正工作。而为了让应用支持更多种的数据库,就需要开发人员使用不同的代码对同样的数据库操作写出很多种代码库,是程序员的工作量大大增大
安装复杂
缺少企业级的支持
缺少正规的商业支持
无法实现商品化应用的开发。
PHP例子
<HTML>
<HEAD>
<TITLE>php</TITLE>
</HEAD>
<BODY>
<?
echo "This is My First php!"
?>
</BODY>
</HTML>
输出:This is My First php!
Servlet
Java Servlet (或称服务器小应用程序)是一种用来提供动态内容服务的技术,是用Java语言编写的、协议和平台都独立的服务器组件。Servlet能够像CGI脚步一样扩展Web服务器功能,但是只占用很少的密集资源,不像很多用CGI脚本编程的站点那样,由于访问量剧增,性能迅速下降。同时,由于Servlet运行于服务器内部,不需要图形用户接口。
Servlet API为Servlet提供了统一的编程接口。Servlet程序是用Java Servlet API开发的一个标准的Java扩展,但不是Java核心框架的一部分。编写Servlet已不需像CGI脚本那样,不必关心Servlet是如何装载的,Servlet运行的服务器环境是什么,或者用来传输数据的协议是什么等。同时由于Servlet是用Java编写的,具有良好的跨平台性能,Servlet可以嵌入到许多不同种类的Web服务器中。
所有Servlet都必须实现javax.servlet.Servlet接口,Servlet编写者可以通过直接继承该接口开发Servlet。但是大多数Servlet是针对用HTTP协议的Web服务器,因此通用的开发Servlet的办法就是使用javax.servlet.http.HttpServlet类。HttpServlet类通过扩展GenericServlet基类继承Servlet接口,提供了处理HTTP协议的功能。它的service()方法支持标准HTTP/1.1请求。
一般地,用HttpServlet指定的类编写的Servlet可以多线程地并发运行Servlet()方法
在使用HttpServelt类时,必须重载HttpServlet类的下列方法:
一个简单的HTTPServlet的例子
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SimpleServlet extends HttpServlet{
//描述doGet方法
public void doGet(HttpServletRequest req,HttpServeltResponse res) throws ServletException ,IOException{
// 首先设置头部信息
res.setContentType("text/html;charset=GBK");
//用write方法返回响应数据
PrintWrite out=res.getWriter();
res.setCharacterEncoding("BG2312");
out.println("<html><head></head></html>");
out.println("<h1 align=center><b><i><font size=5>"+
"一个简单的Servlet </h1></i></b><br>");
out.println("<h2 align=center> 你好, 这是SimpleServlet的输出</h2>");
out.println("");
out.println("</body></html>");
out.close();
}
//获取Servlet信息
public String getServletInfo(){
return "A Simple Servlet";
}
}
上面是一个简单的例子。
JSP
JSP页面有HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户的请求以后这这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet是JSP技术的基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了java技术的简单易用,完全面向对象,具有平台无关性且安全可靠,主要面向Internet的所有特点。
JSP技术的优势
JSP技术的不足
简单的JSP例子
<%@page language="java"%>
<HTML>
<HEAD>
<TITLE>jsp</TITLE>
</HEAD>
<BODY>
<%
out.println("This is my first JSP Page!");
%>
</BODY>
</HTML>
输出结果:This is my first JSP Page!
下面在介绍在Web开发领域,脚本语言Python,Ruby。者两个脚本语言开发出一些开源的工具:例如Trac,Redmine等。最近也有一个基于Ruby的Web开发框架ROR(Ruby On Rails).