Web服务器需要JSP引擎,即用于处理JSP页面的容器。JSP容器负责拦截对JSP页面的请求。本教程利用Apache内置的JSP容器来支持JSP页面开发。
JSP容器与Web服务器一起使用,以提供JSP所需的运行时环境和其他服务。它知道如何理解JSP的组成部分。
下图显示了Web应用程序中JSP容器和JSP文件的位置。
以下步骤说明了Web服务器如何使用JSP创建网页-
与普通页面一样,您的浏览器将HTTP请求发送到Web服务器。
Web服务器识别出HTTP请求是针对JSP页面的,并将其转发到JSP引擎。这是通过使用以.jsp而不是.html结尾的URL或JSP页面完成的。
JSP引擎从磁盘加载JSP页面,并将其转换为servlet内容。这种转换非常简单,其中所有模板文本都转换为println()语句,所有JSP元素均转换为Java代码。这段代码实现了页面的相应动态行为。
JSP引擎将servlet编译为可执行类,并将原始请求转发到servlet引擎。
Web服务器的一部分称为servlet引擎,它会加载Servlet类并执行它。在执行期间,该servlet产生HTML格式的输出。输出进一步由Servlet引擎在HTTP响应内传递到Web服务器。
Web服务器根据静态HTML内容将HTTP响应转发到浏览器。
最后,Web浏览器将HTTP响应内的动态生成的HTML页面完全当作静态页面来处理。
下图中可以看到上述所有步骤-
通常,JSP引擎会检查JSP文件的servlet是否已经存在,以及JSP上的修改日期是否早于servlet。如果JSP早于其生成的Servlet,则JSP容器将假定JSP尚未更改,并且生成的Servlet仍与JSP的内容匹配。这使该过程比其他脚本语言(例如PHP)更有效,因此速度更快。
因此,从某种意义上说,JSP页面实际上是编写servlet的另一种方式,而不必成为Java编程向导。除了翻译阶段外,JSP页面的处理方式与常规servlet完全相同。
本文向大家介绍有人可以在JSP上下文中用更简单的术语解释HTTP标头吗?,包括了有人可以在JSP上下文中用更简单的术语解释HTTP标头吗?的使用技巧和注意事项,需要的朋友参考一下 当Web服务器响应HTTP请求时,响应通常包括状态行,某些响应标头,空白行和文档。一个典型的响应看起来像这样- 状态行由HTTP版本(示例中为HTTP / 1.1),状态代码(示例中为200)和与状态代码相对应的非常短的
本文向大家介绍jsp简单实现页面之间共享信息的方法,包括了jsp简单实现页面之间共享信息的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jsp简单实现页面之间共享信息的方法。分享给大家供大家参考。具体如下: 这里演示jsp父页面得到在子页面的配置信息,减少代码重复。 1. 父页面: 2. 子页面: 希望本文所述对大家的JSP程序设计有所帮助。
本文向大家介绍什么是JSP声明?我们可以用几种方式编写JSP声明?,包括了什么是JSP声明?我们可以用几种方式编写JSP声明?的使用技巧和注意事项,需要的朋友参考一下 声明声明了一个或多个变量或方法,您可以稍后在JSP文件中的Java代码中使用它们。在JSP文件中使用变量或方法之前,必须先声明该变量或方法。 以下是JSP声明的语法- 您可以编写与上述语法等效的XML,如下所示- 以下是JSP声明的
本文向大家介绍简单实现jsp分页,包括了简单实现jsp分页的使用技巧和注意事项,需要的朋友参考一下 数据分页,在开发中必不可少,由于数据量太大,不得不进行处理。但是对于分页,又有很多种方式,比如使用sql语句的limit,或者使用jquery的插件。但是底层的逻辑,都是需要的。 在这里贴出bean对象的代码,以及一个辅助类。我做的这个项目是一个个人博客,算是个人网站吧。 (只贴部分底层逻辑代码)
问题内容: 我已经阅读了很多有关Java同步以及可能发生的所有问题的文章。但是,我仍然有些困惑的是JIT如何重新排序写入。 例如,简单的双重检查锁对我来说很有意义: 我们在第1行使用volatile来强制发生事前关系。没有它,JIT完全有可能整理我们的代码。例如: 线程1位于第6行,并且已分配内存,但是构造函数尚未运行,因为JIT可能会重新排序我们的代码。 线程2进入第2行,并获取一个尚未完全创建
本文向大家介绍jsp登录页面的简单实例 雏形,包括了jsp登录页面的简单实例 雏形的使用技巧和注意事项,需要的朋友参考一下 jsp登录页面的简单实例 雏形 欢迎界面: 尚未注册,直接登录的时候: 进入注册界面: 注册成功,跳转登录界面: 登录时,密码出错:5秒后重新登录 账号密码输入正确,进入主页面: 以上就是小编为大家带来的js