JSP 工作原理

JSP 简介

JSP全称Java Server Pages,是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。标签通常以<%开头以%>结束。

JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。它会由JSP文件解析引擎(就是解析JSP文件的软件)在使用的时候变成
JAVA类并生成对象,有请求到来的时候就运行里面的一个方法(_jspService)生成一个HTML文件,之后服务器回应这个HTML文件内容给浏览器显示。

就是在HTML页面的基础上引入JSP的元素,服务器接收到这个JSP文件的请求时,交给JSP文件解析引擎(就是解析JSP文件的软件),JSP文件解析引擎
解析HTML文件里面的内容,并把JSP标签定义的内容变为JAVA逻辑代码,其他HTML内容可能就是直接为JAVA的Print代码进行.java类文件的输出,并
编译这个类文件,编译后再后成这个类的一个对象(只生成一个,注意线程安全问题)。这人对象里有一个方法(_jspService),每当有请求过来
时就会调用这个方法生面HTML内容返回给WEB服务器,再由服务器返回给浏览器。

参考原文: http://www.runoob.com/jsp/jsp-architecture.html


JSP 生命周期
编译阶段:
servlet容器编译servlet源文件,生成servlet类
初始化阶段:
加载与JSP对应的servlet类,创建其实例,并调用它的初始化方法
执行阶段:
调用与JSP对应的servlet实例的服务方法
销毁阶段:
调用与JSP对应的servlet实例的销毁方法,然后销毁servlet实例

请求处理方法
void _jspService(HttpServletRequest request,
                 HttpServletResponse response)
{
   // 服务端处理代码
}
有两个参数,HttpServletRequest 和 HttpServletResponse

参考原文: http://www.runoob.com/jsp/jsp-life-cycle.html


JSP处理流程
以下步骤表明了Web服务器是如何使用JSP来创建网页的:
就像其他普通的网页一样,您的浏览器发送一个HTTP请求给服务器。
Web服务器识别出这是一个对JSP网页的请求,并且将该请求传递给JSP引擎。通过使用URL或者.jsp文件来完成。
JSP引擎从磁盘中载入JSP文件,然后将它们转化为servlet。这种转化只是简单地将所有模板文本改用println()语句,并且将所有的JSP元素转化成Java代码。
JSP引擎将servlet编译成可执行类,并且将原始请求传递给servlet引擎。
Web服务器的某组件将会调用servlet引擎,然后载入并执行servlet类。在执行过程中,servlet产生HTML格式的输出并将其内嵌于HTTP response中上交给Web服务器。
Web服务器以静态HTML网页的形式将HTTP response返回到您的浏览器中。
最终,Web浏览器处理HTTP response中动态产生的HTML网页,就好像在处理静态网页一样。
以上提及到的步骤可以用下图来表示:






一般情况下,JSP引擎会检查JSP文件对应的servlet是否已经存在,并且检查JSP文件的修改日期是否早于servlet。如果JSP文件的修改日期早于对应的servlet,那么容器就可以确定JSP文件没有被修改过并且servlet有效。这使得整个流程与其他脚本语言(比如PHP)相比要高效快捷一些。
总的来说,JSP网页就是用另一种方式来编写servlet而不用成为Java编程高手。除了解释阶段外,JSP网页几乎可以被当成一个普通的servlet来对待。

参考原文: http://www.runoob.com/jsp/jsp-architecture.html


猜你喜欢

转载自huangyongxing310.iteye.com/blog/2319755