我们知道,JSP是一种动态网页技术,并且它是服务器端技术,浏览器不能直接显示。我们还是从传统认识一个新事物的三个步骤来讲:
1.What?
JSP是SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。它是Java Server Pages的简称。JSP技术有点类似ASP技术,它在传统的网页HTML文件中插入了Java程序段和JSP标记,从而形成了JSP文件。看到这里我们可以有个初步的了解,JSP=HTML+Java+标签,说白了就是在HTML代码中嵌入java代码的这么一个东东,看到这里想到了什么?我们.NET学习时候的MVC中有个Rezor视图,感觉很相似的样子,瞬间很有亲切感。
2.Why?
这么说吧,JSP的产生一定是有原因的,由于jsp本身也是一个Servlet,而且又包含了HTML标签,所以jsp可以说是结合了Servlet和HTML的优点。相对于HTML来说,Servlet是动态资源,可以编程;由于浏览器可以直接显示,不用为输出HTML标签发愁;
3.How?
一开始一定会纳闷,为什么是动态网页技术,不能再浏览器直接显示呢?这就需要我们了解一下JSP的实现原理了,首先来看一幅图:
图1-1 JSP的创建流程
从JSP的创建流程可以看出,JSP的实现步骤共有一下几步:
1.当浏览器第一次访问jsp页面时,服务器会把jsp翻译成一个Java文件,该Java类是一个Servlet类;
2.然后服务器再把Java文件编译成class文件;
3.接着创建该类对象;
4.最后调用该类的service()方法;
5.当第二次再访问该jsp页面时,直接调用jsp页面对应Java类的service()方法。
经过上面几个步骤,就创建出我们的JSP类了。在这里想说的是,JSP类在创建的过程中,继承了HttpJspBase类,这个类是Tomcat定义的类。该类实现了Servlet接口,因此JSP类也是Servlet类。JSP类重写了Servlet的service接口,将request、response是做为参数传递给了service()方法,在service()方法中,定义了6个变量,分别是session,application,config,out,page,pageContext,在加上service()方法自身截获异常的exception,共9大对象,这就是传说中的JSP中的9大内置对象。
总的来讲,我对JSP的理解是这样的:
图1-2 JSP初步印象
在这里,我们就不再对这9大内置对象做详细介绍了,我在导图里将他们分为三类:
1.和Http协议相关的:HttpServletRequest、HttpServletResponse、HttpSession
2.和Servlet相关的:ServletContext、ServletConfig、PageContext
3.和全局对象相关的:JspWriter,Object,Throwable
以上就是小编对JSP的初步认识,有什么需要补充的地方,还请您多多提出宝贵意见!