jsp编译原理

首先我们了解几个知识点

(1)html与jsp区别?

 HTML是文本标记语言,它是静态页面,和JavaScript一样解释性语言,只要有浏览器那么它就可以正常显示出来,而不需要指定的编译工具,只需在TXT文档中写上HTML标记就OK。

 JSP(Java Server Page)是Java服务端的页面,它是动态的,需要经过JDK编译后把内容发给客户端去显示,JSP不止要编译,它还得要转译,首先把JSP转译成一个Servlet文件,然后在编译成class文件。当用户访问JSP时就执行了class文件。在jsp中用<%%>就可以写Java代码了,而html没有<%%>


(2)jsp与servlet区别?

 Servlet以Java程序为主, 输出HTML代码时需要使用out.println函数,也就是说Java中内嵌HTML; 而JSP则以HTML页面为主,需要写Java代码时则在页面中直接插入Java代码,即HTML中内嵌Java。其实JSP就是Servlet,JSP侧重视图,Sevlet主要用于控制逻辑。


(3)jsp运行时都要先转换成servlet,使用tomcat时会在tomcat安装目录下的work生成一系列的运行的项目文件夹,文件下面含有.java文件和编译后的.class文件。jsp最终转化为servlet,work的作用就是加快速度,如果jsp没有变化就不重新编译了。


运行过程

1:首先web客户端发送URL请求给Tomcat。服务器获得请求,对请求字符串分析,如果后缀名是.jsp文件的,则Tomcat把调用JspServlet处理。

2:如果JSP文件第一次被调用,则会把jsp编译成servlet,如果jsp不是第一次调用则不会被编译。Jsp文件在没有修改的情况下,只会编译一次。

3:Tomcat调用service()方法编译jsp文件,创建一个.java.class文件。该java文件继承自父类HttpJspBas类。

4:创建HttpServletRequest类和HttpServletResponse

5:调用.java继承父类的HttpJspBase类方法servicerequestresponse

6:service方法里面调用jspService(request,reponse)方法,渲染html返回给客户端。 


你可能感兴趣的:(jsp编译原理)