admin管理员组

文章数量:1540039

2024年3月30日发(作者:)

WEB应用程序介绍

Web应用程序就是一种通过互联网能够让Web浏览器和服务器通讯的计算机程序。

不同于静态网站的,Web应用程序动态创建页面。采用动态方式生成的Web站点通过使

用计算机程序来实现动态的特性。这种动态的应用程序可以用各种计算机语言来编写。运

行Web程序所需要的最基本的组成部分有:网页,Web服务器,客户端浏览器以及在客

户端和Web服务端提供通讯的HTTP协议。

网页:网页的具体组成分为网页的内容,是我们想要向用户展示的信息;网页的结构

部分,可以理解为对网页的内容进行排版;网页的表现部分,可以理解为对网页的内容进

行格式化;最后是网页的行为部分,就是网页需要实现的功能,如与用户交互,响应鼠标

或者按键事件等。

Web服务器:Web服务器实际上是一种连接在Internet上的计算机软件。它负责

Web浏览器提交的文本请求。是用来存放我们编写好的网页并监听端口。

Web工作原理:简单的讲就是先把编写好的网页存在服务器上,服务器监听发送过来

的HTTP请求,和客户端建立一个连接,接收到客户端的请求之后,把用户需要的内容封

装成HTTP请求发送给客户端,然后断开与客户端的连接,之后客户端的浏览器解析

HTML,显示网页内容。

HTTP协议:该协议描述了Client和Server之间请求和响应的过程:Client在本地

主机向运行于远程主机上的Server请求链接,连接成功之后通过GET来访问Server端对

象(可以是普通网页,也可以是通过CGI或ISAPI生成的动态页面),Server端在连接终止

之前将请求的对象或者是错误消息返回给Client,结束响应过程。

JAVA WEB应用程序结构:

1、页面中心结构:浏览器对JSP页面的直接请求调用,JSP中直接包含了处理各种业

务的逻辑代码,其结构图如图所示:

该种结构的特点是大量的Java scriptlet代码直接嵌入JSP页面中,对于较为简单的

应用程序,不失为一种直接简便的方法,但是此种方法减少了模块重用的机会,且不利于

角色功能的划分。于是,我们将处理后台资源的逻辑代码用Bean进行封装,发展成为带

Bean的页面中心结构:

带Bean的页面中心结构再结合自定义标志,确实可将一部分代码从JSP中移出,获

得较为干净的JSP,但是此种结构随着其功能的增加,层次变得不够清晰,其扩展性也变

得较差,不利于维护。

2、MVC结构

MVC即模型视图控制器(Model-View-Control),这3个组件映射到3个主要的实现

技术—Bean,JSP以及Servlet。

模型执行业务逻辑的功能,比如保存处理数据、与数据库连接、拼装SQL语句等。视

图执行显示逻辑的功能,即将获取的数据动态显示于网页上。控制器是模型和视图的粘和

剂,向模型和视图提供逻辑处理层和授权,即对不同事件调用相应的视图和模型。下面结

合上图分析基于MVC结构的应用程序在处理用户请求时的具体步骤::

(1) 浏览器发出服务请求,该请求转发给控制器;

(2) 控制器在检查用户请求的参数后,初始化并调用相应的业务组件来处理请求,该

业务组件就叫做模型;

(3) 模型含有处理该用户请求的所有业务规则,它与后台资源进行交互,并将提取的

信息包装起来返回给控制器;

(4) 控制器接收从模型返回的数据,并选择显示数据的结果页面,即是视图;

(5) 控制器在处理完请求后将结果返回给浏览器

较流行的结构:struts负责显示层,hibernate负责持久层,spring负责中间的业务

层。

jsp和servlet的关系

一. Servlet是什么?

客户机/服务器计算的发展。Java提供了一整套客户机/服务器解决方案,在这个方案

中,程序可以自动地下载到客户端并执行,这就是applet。但是它仅仅是问题的一半。问

题的另一半就是Servlet。

servlet可以被认为是服务器端的applet, 是用Java编写的服务器端程序,由服务

器端调用和执行的任何Java类。servlet被Web服务器加载和执行,就如同applet被浏

览器加载和执行一样。servlet从客户端(通过Web服务器)接收请求,执行某种作业,然

后返回结果。servlet的工作流程如下:

1、客户端通过

HTTP提出请求。

2、Web服务器接收该请求并将其发给servlet。如果这个servlet尚未被加载,Web

服务器将

把它加载到Java虚拟机并且执行它。

3、servlet将接收该HTTP请求并执行某种处理。

4、servlet将向Web服务器返回应答。

5、Web服务器将从servlet收到的应答发送给客户端。

Web浏览器并不直接和servlet通信,servlet是由Web服务器加载和执行的。

二、Servlet的结构

在Servlet API中最重要的是Servlet interface. 所有的servlets implement(执行)

这个interface, 方式多种:或者是直接的,或者通过extending 这个class执行它。

当一个servlet接收来自客户端的调用请求, 它接收两个对象:一个是

ServletRequest,另外一个是ServletResponse。ServletRequest class概括从客户端到

服务器之间的联系,而 ServletResponse class 概括从servlet返回客户端的联系。

ServletRequest interface可以获取到这样一些信息如由客户端传送的阐述名称,客

户端正在使用的协议,产生请求并且接收请求的服务器远端主机名。它也提供获取数据流

的servlet:ServletInputStream,这些数据是客户端引用中使用HTTP POST 和 PUT 方

法递交的。一个ServletRequest的子类可以让servlet获取更多的协议特性数据. 例如:

HttpServletRequest 包含获取HTTP-specific头部信息的方法。

ServletResponse interface给出相应客户端的servlet方法。它允许servlet设置内

容长度和回应的mime类型,并且提供输出流:ServletOutputStream,可以发回相应数

据。 ServletResponse子类可以给出更多protocol-specific容量的信息。 例如:

HttpServletResponse 包含允许servlet操作HTTP-specific头部信息的方法。

三、servlet的主要功能

(1) 创建并返回一个包含基于客户请求性质的动态内容的完整的 HTML页面。

(2) 创建可嵌入到现有 HTML 页面中的一部分 HTML 页面(HTML 片段)。

(3) 与其它服务器资源(包括数据库和基于 Java 的应用程序)进行通信。

(4) 用多个客户机处理连接,接收多个客户机的输入,并将结果广播到多个客户机上。

例如,Servlet 可以是多参与者的游戏服务器。

(5) 当允许在单连接方式下传送数据的情况下,在浏览器上打开服务器至applet的新

连接,并将该连接保持在打开状态。当允许客户机和服务器简单、高效地执行会话的情况

下,applet也可以启动客户浏览器和服务器之间的连接。可以通过定制协议或标准(如

IIOP)进行通信。

(6) 对特殊的处理采用 MIME 类型过滤数据。

(7) 将定制的处理提供给所有服务器的标准例行程序。例如,Servlet 可以修改如何认

证用户。

四、JSP是什么?

JSP是一种脚本语言,包装了Java Servlet系统的界面,简化了Java和Servlet的使

用难度,同时通过扩展JSP标签(TAG)提供了网页动态执行的能力。尽管如此,JSP仍没有

超出Java和Servlet的范围,不仅JSP页面上可以直接写Java代码,而且JSP是先被译

成Servlet之后才实际运行的。JSP在服务器上执行,并将执行结果输出到客户端浏览器,

我们可以说基本上与浏览器无关。它是与JavaScript不同的,JavaScript是在客户端的脚

本语言,在客户端执行,与服务器无关。JSP的工作流程如下图:

五、JSP和Servlet的区别与联系

JSP与Servlet之间的主要差异在于,JSP提供了一套简单的标签,和HTML融合的

比较好,可以使不了解Servlet的人可以做出动态网页来。JSP修改后可以立即看到结果,

不需要手工编译,JSP引擎会来做这些工作;而Servelt则需要编译,重新启动Servlet引

擎等一系列动作。

JSP引擎通常架构在Servlet引擎之上,本身就是一个Servlet。在JSP页面第一次被

请求时,JSP引擎会将JSP原始文件转换成Servlet源代码,然后调用Java编译器,编译

成Servlet,并在Servlet引擎中执行。当再次有请求的时候,JSP引擎会检查已编译好的JSP

是否比原来的JSP原始文件要新,如果是,运行Servlet;如果不是,表示文件已经更新的

了,就会从新执行转换和编译的过程。

JSP语法简单,可以方便地嵌入HTML之中,很容易加入动态的部分,方便地输出

HTML。在Servlet中输出HTML需要调用特定的方法,对于引号之类的字符也要做特殊

的处理,加在复杂的HTML页面中作为动态部分,比起JSP来说是比较困难的。

转换和编译阶段,JSP和Servlet之间的区别不大。

除去了

本文标签: 请求客户端服务器网页执行