整理总结-jsp与servlet的基本关系
1、jsp-->web容器-->servlet-->加载进容器的虚拟机执行-->输出执行结果给浏览器端
在这个过程,所有位于<%%>之外的值,都被认为是out.println()中的内容进行直接输出。详细理解看代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<html> <% //例子说明:servlet和jsp的关系 boolean b = false ; if (b){ %> 这里是内容一 <% } else { %> 这里是内容二 <% } %> <body> jsp_servlet. <br> </body> </html> |
上面的代码和下面的代码一个意思
<html> <% //例子说明:servlet和jsp的关系 boolean b = false; if(b){ out.println("这里是内容一"); }else{ out.println("这里是内容二"); } %> <body> This is my JSP page. <br> </body> </html>
<%%>标签外的一切字符,jsp的web容器不会特殊处理,只是单纯地放进输出流out(printWriter)中输出给浏览器
标签中的内容,是java代码,web容器处理完后,返回结果给浏览器
标签外和标签内的所有字符经过web容器处理后,得出一个html文件,这是浏览器所接收到的最终文件
2、执行说明
顺序:浏览器请求-->jsp文件-->web服务器-->解析jsp为java文件-->容器j的re检查java文件是否有编译错误-->编译java文件,得到.class文件-->jvm加载执行-->响应浏览器
web容器解析jsp时,一般先检查是否已经存在了最新(表明jsp文件并没有被改变)编译的文件某某servet.class,如果是,则不重新编译jsp文件,否则重新编译jsp文件。