【Jsp精品源码栏目提醒】:网学会员Jsp精品源码为您提供web应用程序运行原理 - 软件工程参考,解决您在web应用程序运行原理 - 软件工程学习中工作中的难题,参考学习。
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 WE B 应用程序结构: 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 页面第一次被请求时, 然后调用 Java 编译器,
JSP 引擎会将
JSP 原始文件转换成 Servlet 源代码, 编译成 Servlet并在 Servlet引擎中执行。
当再次有请求的时候,
JSP 引擎会检查已编译好的
JSP 是否比原来的
JSP 原始文件要新,如果是运行 Servlet;如果不是,表示文件已经更新的了,就会从新执行转换和编译的过程。
JSP 语法简单,可以方便地嵌入 HTML 之中,很容易加入动态的部分,方便地输出 HTML。
在Servlet 中输出 HTML 需要调用特定的方法,对于引号之类的字符也要做特殊的处理,加在复杂的HTML 页面中作为动态部分,比起
JSP 来说是比较困难的。
除去了转换和编译阶段,
JSP 和 Servlet之间的区别不大。