前段时间决定转战JavaWeb的我,现在终于可以修炼JSP了.从决定开始走JavaWeb方向,就先去重温了Html CSS JavaScript,然后学习Servlet编程,昨天进入了JSP的学习.接近两天的JSP学习,灌输了很多技术点,难免有点消化不良.所以还是决定慢下来一点,整理整理一些常用的知识点,消化一下.消化的最好方式,当然就是写博客了.好了,进入正题.
1)JSP作用
jsp是用Java语言(结合html等)开发动态网页的技术,而实际上,jsp就是servlet(后面提).
2)JSP特点
a,jsp的运行必须交给tomcat服务器.tomcat的work目录存放jsp运行时的临时文件.
b,jsp页面既可以写html代码,也可以写Java代码,只需满足一定语法即可.
通过服务器访问一个jsp页面(比如:http://localhost:8080/day13_jsp/index.jsp),这个jsp页面是怎样显示出来的呢?
第一步:访问这个index.jsp页面,tomcat扫描的这个jsp文件,在%tomcat%work把jsp文件翻译成java源文件,即index.jsp-->index_jsp.java,这个过程就是翻译.(翻译过程)
第二步:tomcat服务器把刚刚翻译得到的java源文件编译成class字节码文件,即index_jsp.java-->index_jsp.class.(编译过程)
第三步:tomcat构造index_jsp类对象.(构造对象)
第四步:tomcat服务器调用index_jsp类里面的方法,输出内容到浏览器.(显示内容)
当我们第一次访问一个jsp时,会走这四个步骤;当我们是第n次(n>=2)访问同一个jsp时,只走第四个步骤.另外需要注意的是,jsp文件修改了或是jsp的临时文件删除了,就要重新走翻译和编译的过程.
去tomcat/work目录的相应项目目录下,找到翻译的index_jsp.java文件,发现它继承了org.apache.jasper.runtime.HttpJspBase,HttpJspBase是tomcat的lib目录下jar包中的一个类.
public final class index_jsp extends org.apache.jasper.runtime.HttpJspBase
implements org.apache.jasper.runtime.JspSourceDependent
去tomcat找到HttpJspBase,发现它继承了HttpServlet.
public abstract class org.apache.jasper.runtime.HttpJspBase extends javax.servlet.http.HttpServlet implements javax.servlet.jsp.HttpJspPage
Servlet的生命周期:
1)构造方法(第1次访问)
2)init方法(第1次访问)
3)service方法
4)destroy方法
Jsp的生命周期(翻看源码就可以发现jsp的方法和servlet很像,这不废话吗,呵呵)
1)翻译: jsp->java文件
2)编译: java文件->class文件(servlet程序)
3)构造方法(第1次访问)
4)init方法(第1次访问):_jspInit()
5)service方法:_jspService()
6)destroy方法:_jspDestroy()
其实没什么好总结的,就想告诉自己,下一篇博客要写jsp的基本语法及9大内置对象相关用途.