JSP笔记04——架构(转)

Web服务器需要一个JSP引擎,即一个处理JSP页面的容器。JSP容器负责截取JSP页面的请求。本教程使用了内置JSP容器的Apache来支持JSP页面的开发。

JSP容器与Web服务器配合工作以提供运行时环境和JSP需要的其他服务。它知道如何理解作为JSP一部分的特殊元素。

下图显示了JSP容器和JSP文件在Web应用程序中的位置。

Web服务器如何使用JSP创建Web页面

以下步骤说明Web服务器如何使用JSP创建Web页面 -

  • 与正常页面一样,浏览器向Web服务器发送HTTP请求
  • Web服务器识别HTTP请求是针对JSP页面,并将其转发给JSP引擎。这可以通过使用以.jsp而不是.html结尾的URL或JSP页面完成。
  • JSP引擎从磁盘加载JSP页面并将其转换为servlet(.java)。此转换非常简单,所有HTML文本都转换为println()语句,所有JSP元素转换为Java代码。这些代码实现了页面的相应动态行为。【注释】直接看转换的源代码就清楚了
  • JSP引擎将servlet编译成可执行类(.class),并将原始请求转发到servlet引擎
  • servlet引擎(Web服务器的一部分)加载Servlet类并执行它。在执行期间,servlet生成HTML格式的输出。HTTP响应中的servlet引擎将输出传递给Web服务器。
  • Web服务器将含有静态HTML的HTTP响应转发到浏览器。
  • 最后,Web浏览器处理HTTP响应中动态生成的HTML页面,就像处理一个静态页面一样。

所有上述步骤可以在下图中看到 -

通常,JSP引擎将检查JSP文件的对应的servlet是否已存在,以及.jsp文件的修改日期是否比对应的.java更早。如果.jsp早于其生成的.java,则JSP容器假定.jsp没有更改,并且生成的.java仍然与.jsp的内容匹配。这使得创建Web页面的过程相对其他脚本语言(如PHP)更加高效。【注释】友情链接

所以,在某种程度上,JSP页面实际上只是另一种编写servlet的方法除了翻译阶段,JSP页面的处理方式与普通的servlet完全相同

时间: 2024-10-20 08:23:03

JSP笔记04——架构(转)的相关文章

《掌握需求过程》阅读笔记04

<掌握需求过程>阅读笔记04 我们在开发我们的系统的时候要是要给用户用使用的,所以用户的使用感受非常重要,这就需要我们站在用户的角度去考虑这个系统如何让用户的使用更加的简捷,而不是站在你开发者的角度去考虑这个系统如何开发比较省我自己的事儿.抱着多一事不如少一事的态度开发出的系统是我们懒惰情况下的残次品,是注定要被淘汰的,而我们也可能因为这样的态度,面临我们的工作也将被人这样轻视.要把握好用户的使用习惯.操作环境,就需要我们去体会用户的使用感受,就需要我们具有同理心. 编写用户故事.我们可以把我

Android自定义View学习笔记04

Android自定义View学习笔记04 好长时间没有写相关的博客了,前几周在帮学姐做毕设,所以博客方面有些耽误.过程中写了一个类似wp的磁贴的view,想再写个配套的layout,所以昨天看了一下自定义viewGroup的相关知识-晚上睡觉想了一下可行性不是很高-代码量还不如直接自己在xml上写来得快,速度上也是个问题.今天看了一下张鸿洋老师的Android 自定义View (三) 圆环交替 等待效果这篇博文,再加上前一段时间看到的一幅图,结合之前写的一个圆形imageView的实现博文And

《30天自制操作系统》笔记(04)——显示器256色

<30天自制操作系统>笔记(04)--显示器256色 进度回顾 从最开始的(01)篇到上一篇为止,已经解决了开发环境问题和OS项目的顶层设计问题. 本篇做一个小练习:设置显卡显示256色. 原理 设置显卡模式 调用BIOS中断命令INT 0x10,设置显卡模式为VGA图形模式,320*200*8位彩色模式,调色板模式.代码如下. 1 MOV AL,0x13 ; VGA图形模式,320*200*8位彩色模式 2 MOV AH,0x00 3 INT 0x10 设置调色板 256色的调色板是这样一个

【OpenGL 学习笔记04】顶点数组

通过之前的学习,我们知道,如果要绘制一个几何图形,那就要不断的调用绘制函数,比如绘制一个20条边的多边形,起码要调用22条函数(包含glBegin和glEnd). 所以OpenGL提供了一系列的顶点数组函数减少函数调用的次数来提高性能.而且使用顶点还可以避免顶点共享的冗余处理. 1.简单示例 先来回顾一下之前我们是怎么画直线的: void drawOneLine(GLfloat x1,GLfloat y1,GLfloat x2,GLfloat y2) { glBegin(GL_LINES); g

SWIFT学习笔记04

1.在实际编译时,Swift 编译器会优化字符串的使用,使实际的复制只发生在绝对必要的情况下,这意味着您将字符串作为值类型的同时可以获得极高的性能. 2.for character in "Dog!" { println(character) } // D // o // g // ! 3.通过标明一个Character类型注解并通过字符字面量进行赋值,可以建立一个独立的字符常量或变量: let yenSign: Character = "¥" 4.计算字符数量 l

《用户故事与敏捷开发》阅读笔记04

  <用户故事与敏捷开发>阅读笔记04 今天抽出了两个小时读了<用户故事与敏捷开发>的第十二.十三.十四以及十五章并写了这篇阅读笔记.第十二章标题为"故事不是什么".IEEE 830是一本关于如何编写软件需求规格的指南,最突出的特征是使用短语"系统应该.....",但作者认为以这种方式编写系统的所有需求实际是一个不可能的任务.因为用户看到正在开发的软件时总会有有效和重要的反馈循环.他们会改变之前的想法,而且每个需求的成本是不可见的,会造成分析

Effective C++笔记04:设计与声明

条款18:让接口容易被正确使用,不易被误用 1,好的接口很容易被正确使用,不容易被误用.你应该在你的所有接口中努力达成这些性质. 2,"促进正使用"的办法包括接口的一致性,以及与内置类型的行为兼容. 3,"阻止误用"的办法包括建立新类型,限制类型上的操作,束缚对象值,以及消除客户的资源管理责任. 4,shared_ptr支持定制型删除器.这可以防范DLL问题,可以用来自动解除互斥锁. 条款19:设计class犹如设计type 博客地址:http://blog.csd

HTML学习笔记04

HTML学习笔记04 一.HTML样式 1.外部样式表:例如<link rel="stylesheet" type="text/css" href="mystle.css"> 2.内部样式表:在head部分通过<style>定义内部样式表,如<style type="text/css"> p{margin-left:20px}</style> 3.内联样式:在相关的标签中使用样式

《大型网站技术架构:核心原理及案例分析》阅读笔记04

第四章:架构师 1.架构师领导艺术 架构师是软件开发组织中比较特殊的角色,架构设计.软件开发.管理团队都需要架构师的参与.作者给出了一个好的架构师的标准:关注人而非产品.挖掘人才.共享成果蓝图.共同参与软件架构.学会妥协.成就他人.作为团队的技术领导者,在项目中不要企图控制什么,要用一个弹性的计划和蓝图推进.通过自己的努力,打造一个好的团队,这样才能创造出真正的价值,开启完美的明天. 2.网站架构师职场攻略 软件的开发就是为了解决现实问题,网站架构师需要解决开发过程中多方面的事情才能实现软件的设