您的位置:首页 > Web前端 > JavaScript

jsp编译原理

2016-04-27 15:46 519 查看
首先我们了解几个知识点

(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类方法service(request,response)

6:在service方法里面调用jspService(request,reponse)方法,渲染html返回给客户端。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: