一个Web应用

现在让我们想想如何创建一个应用,令其在真实的Web环境中运行,它将把Java的优势表现得淋漓尽致。这个应用的一部分是在Web服务器上运行的一个Java程序,另一部分则是一个“程序片”或“小应用程序”(Applet),从服务器下载至浏览器(即“客户”)。这个程序片从用户那里收集信息,并将其传回Web服务器上运行的应用程序。程序的任务非常简单:程序片会询问用户的E-mail地址,并在验证这个地址合格后(没有包含空格,而且有一个@符号),将该E-mail发送给Web服务器。服务器上运行的程序则会捕获传回的数据,检查一个包含了所有E-mail地址的数据文件。如果那个地址已包含在文件里,则向浏览器反馈一条消息,说明这一情况。该消息由程序片负责显示。若是一个新地址,则将其置入列表,并通知程序片已成功添加了电子函件地址。
若采用传统方式来解决这个问题,我们要创建一个包含了文本字段及一个“提交”(Submit)按钮的HTML页。用户可在文本字段里键入自己喜欢的任何内容,并毫无阻碍地提交给服务器(在客户端不进行任何检查)。提交数据的同时,Web页也会告诉服务器应对数据采取什么样的操作——知会“通用网关接口”(CGI)程序,收到这些数据后立即运行服务器。这种CGI程序通常是用Perl或C写的(有时也用C++,但要求服务器支持),而且必须能控制一切可能出现的情况。它首先会检查数据,判断是否采用了正确的格式。若答案是否定的,则CGI程序必须创建一个HTML页,对遇到的问题进行描述。这个页会转交给服务器,再由服务器反馈回用户。用户看到出错提示后,必须再试一遍提交,直到通过为止。若数据正确,CGI程序会打开数据文件,要么把电子函件地址加入文件,要么指出该地址已在数据文件里了。无论哪种情况,都必须格式化一个恰当的HTML页,以便服务器返回给用户。
作为Java程序员,上述解决问题的方法显得非常笨拙。而且很自然地,我们希望一切工作都用Java完成。首先,我们会用一个Java程序片负责客户端的数据有效性校验,避免数据在服务器和客户之间传来传去,浪费时间和带宽,同时减轻服务器额外构建HTML页的负担。然后跳过Perl CGI脚本,换成在服务器上运行一个Java应用。事实上,我们在这儿已完全跳过了Web服务器,仅仅需要从程序片到服务器上运行的Java应用之间建立一个连接即可。
正如大家不久就会体验到的那样,尽管看起来非常简单,但实际上有一些意想不到的问题使局面显得稍微有些复杂。用Java 1.1写程序片是最理想的,但实际上却经常行不通。到本书写作的时候,拥有Java 1.1能力的浏览器仍为数不多,而且即使这类浏览器现在非常流行,仍需考虑照顾一下那些升级缓慢的人。所以从安全的角度看,程序片代码最好只用Java 1.0编写。基于这一前提,我们不能用JAR文件来合并(压缩)程序片中的.class文件。所以,我们应尽可能减少.class文件的使用数量,以缩短下载时间。
好了,再来说说我用的Web服务器(写这个示范程序时用的就是它)。它确实支持Java,但仅限于Java 1.0!所以服务器应用也必须用Java 1.0编写。

时间: 2024-08-08 04:23:02

一个Web应用的相关文章

如何能在微信中内嵌一个web页面

问题描述 如何能在微信中内嵌一个web页面 想问一下如何能在微信公众平台中内嵌一个web页面呢?具体方向是什么呢?本人对这个不太懂.想咨询一下

分享一个web开发人员做的SEO小抄

当我第一次开始seo工作的时候,我是作为一个没有毕业的实习生进入一家seo企业公司,我是作为一个web开发人员进入这家公司,当然对我来说完全编写代码,我的经验非常有限,我需要花更多的时间和努力来扩充我的知识. 更加具体点说,我的工作是配合seo技术实现商业实践,这对我来说更是一个挑战,对于seo技术我没有任何概念,所以我更需要花几周的时间对seo的一些基础理论知识继续拧拉结,在我每学一个知识和概念的时候我都都会做一个备忘录,里面好汉了定义,包含了一些代码片段,今天看到之前自己所做的一些小抄,觉得

构建一个Web API来显示Salesforce.com对象

简介 Web API 是一个快速增长的业务渠道,可帮助您的企业进入新的市场,并吸引新的客户 与合作伙伴.它们还可以帮助您从大型开发人员社区中挖掘创新,而不仅仅是在您的公司的开发人员中 挖掘创新. 由于 Web API 显示关键的业务资产和服务(如产品目录或电话清单),所以它们就 像是您的企业的外部人员.它们应该是自我描述性,并且简单易用.它们也应该使用 Representational State Transfer (REST) 架构风格,这样就可以很容易地从浏览器或移动设备调用 它们. 利用

利用Go语言初步搭建一个web应用的教程

  这篇文章主要介绍了利用Go语言初步搭建一个web应用的教程,由于很多国人盲目迷信谷歌,导致Go语言在国内的人气远超国外...需要的朋友可以参考下 1.Abstract 在学习web开发的过程中会遇到很多困难,因此写了一篇类似综述类的文章.作为路线图从web开发要素的index出发来介绍golang开发的学习流程以及Example代码. 在描述中多是使用代码来描述使用方法不会做过多的说明.最后可以方便的copy代码来实现自己的需求. 本文适应对象: 对web开发有一定经验的人 能够灵活使用aj

Win 2003环境中设置一个Web服务器

  概要 本文介绍了如何在 Windows Server 2003 环境中设置一个用于匿名访问的WWW服务器. 安装 Internet 信息服务 Microsoft Internet 信息服务 (IIS) 是与Windows Server 2003 集成的 Web 服务. 要安装IIS.添加可选组件或删除可选组件,请按以下步骤xx作: 单击开始,指向控制面板,然后单击"添加或删除程序". "添加或删除程序"工具就会启动. 单击添加/删除 Windows 组件. 显示

eclipes创建一个web项目web.xml不能自动更新的原因(web.xml和@WebServlet的作用)

在eclipse中创建一个Web项目的时候,虽然有web.xml生成,但是再添加Servlet类文件的时候总是看不见web.xml的更新,所以异常的郁闷!上网查了查,原来我们在创建Web项目的时候,会弹出一个对话框,"Dynamic web module version"这个选项默认成了3.0,按照老规范,应该是在eclipse的WebContent \ WEB-INF \ 目录下创建web.xml的.而新规范是可以不用web.xml的,如tomcat 7.0就支持新规范,这样相关的s

一步一步用jenkins,ansible,supervisor打造一个web构建发布系统

新blog地址:http://hengyunabc.github.io/deploy-system-build-with-jenkins-ansible-supervisor/ 一步一步用jenkins,ansible,supervisor打造一个web构建发布系统. 本来应该还有gitlab这一环节的,但是感觉加上,内容会增加很多.所以直接用github上的spring-mvc-showcase项目来做演示. https://github.com/spring-projects/spring-

如何将自己的电脑搭建成一个web服务器

问题描述 如何将自己的电脑搭建成一个web服务器 不用其他软件可以做到么,或者说能不能搭建一个简易的,能够连接外网的,单对单的简易服务器呢,只用代码实现行么 解决方案 看你怎么界定"其它软件".windows操作系统自带的iis算不算"其它软件",如果不算,用它就可以了. 但是无论什么软件,都不能跨越或者解决你的网络问题.如果你的网络没有公网ip,电信运营商封掉了80端口,那就没任何办法了. 解决方案二: 用tomcat 或者 xampp集成包, 具体的网上都有 解

hibernate-Maven test一个Web项目,报错,弄了一天没弄好,求高手解答

问题描述 Maven test一个Web项目,报错,弄了一天没弄好,求高手解答 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'defaultServletHandlerMapping' defined in class path resource [org/springframework/web/servlet/config/annotation/Delegating

如何真实压测一个Web浏览型应用的性能

对于应用压测大家应该都有一些自己的方式,通常都是构造一些请求,不过构造请求学问就大了. 构造什么样的请求?构造的请求是否真实?构造的请求各种业务场景的配比?读写比例? 对于一个Web浏览型应用来说,相比对纯DB的压测,会更复杂一些,主要因为涉及缓存. 之前采用过很多压测方式,包括ab.httpload等等,这些压测方式的缺点在于无法真实反映一个浏览型系统的性能指标.和其它对DB的查询或是调用外部服务的应用不同,浏览型系统在大量采用Cache和存在命中率的前提下,命中Cache和不命中的性能差距非