Jsp的执行过程
刚刚接触jsp啥也不懂,先从最基础的开始。学习jsp的执行过程
如图所示,大概分为4步
1客户端发送请求
2jsp container将jsp转换成servlet
3编译servlet程序
4返回请求
这个步骤分解图解释了现实中的一个现象。就是在具体的jsp执行中,jsp先慢后快。
其实就是因为第一次执行的时候需要把jsp变成servlet,重复调用执行时操作的都是相同的一个servlet,因此速度快了很多。
下面通过一个简单的小例子来观察第一步和第二步,帮助我们理解。
首先写一个非常简单的jsp页面
1. <html>
2. <head>
3. <title> HelloWorld </title>
4. </head>
5. <body>
6. <%
7. out.println("HelloWorld");
8. %>
9. </body>
10. </html>
然后找到jsp转译成的servlet也就是hello_jsp.java和编译成功的hello_jsp.class
根据安装路径的不同,大家的servlet的存放位置可能都有些不同。但有些则是一致比如说都存放在work\Catalina\localhost里,后面就是自己新建的项目名称了。
因为这个文件内容很庞大,就不全部展开了,只截图下最具代表性的部分。
可以看到jsp相对应的servlet是怎么写的。
当jsp被转译成servlet时,继承了HttpJspBase类,实现了JspSourceDependent
主要有三个方法
_jspInit( ) : 当 JSP网页一开始执行时,最先执行此方法。因此,我们通常会把初始化的工作写在
此方法中。
_jspDestroy( ):JSP 网页最后执行的方法。
_jspService( ):JSP 网页最主要的程序都是在此方法中
jsp和servlet的比较
1编码更简单
1程序更简洁
3执行过程稍显复杂
4不需要自己配制xml文件
总结
Jsp也是servlet,是在servlet基础上的改进。