用户在浏览器地址栏上输入http://localhost:8080/dage/index.jsp,web服务器判断用户请求的资源是dage应用中的index.jsp页面,web服务器在dage应用中找到index.jsp,启动JSP翻译引擎,将index.jsp翻译成index_jsp.java文件,并且将index_jsp.java文件编译生成index_jsp.class字节码文件,将其存储在Tomcat服务器work目录中。index_jsp.class类继承了HttpJspBase,HttpJspBase继承了HttpServlet,所以JSP本质上就是Servlet,和Servlet完全相同。只有用户第一次访问这个JSP或者JSP页面被修改了,才会重新翻译。JSP有三个阶段:翻译(一次),编译(一次),运行(多次)。JSP更改,不需要重启服务器,也不需要重新部署项目。Jsp和Servlet本质上没有区别,但是JSP和Servlet它们的主要职责是有区别的:JSP主要是提取数据做页面展示,而Servlet主要完成业务逻辑处理以及资源跳转。Servlet是Controller(控制层),JSP是View(展示层)。项目开发中只使用JSP也可以完成开发,因为JSP最终也是一个java类,可以在JSP中编写JDBC等其他程序,但是这样做就违背了设计原则,我们要把的主要职责凸显出来,它的弱点我们还是要尽量避让的。(JSP和Servlet都是单实例多线程的环境下运行的,JSP和Servlet中出现的实例变量、静态变量都会存在线程安全问题。)
JSP的运行原理及本质
最新推荐文章于 2022-04-26 22:03:50 发布