1、JSP执行原理

JSP是什么?
  • JavaServer Pages
  • 基于java语言实现的服务器端页面
  • JSP是JavaEE规范之一
JSP文件通常存放在什么位置?
  • JSP可以放到WEB-INF目录外
  • 在实际开发中,有很多项目是将JSP放到WEB-INF目录中,保护JSP
  • WEB-INF目录中数据相对安全
JSP文件后缀是什么?
  • 默认是.jsp
  • 但是jsp文件的后缀也可以修改的,通过修改CATALNA_HOME/conf/web.xml文件
JS和JSP区别?
  • JS:JavaScript,运行在浏览器中,和服务器没有关系,和java也没有关系
  • JSP:JavaServer Pages,运行在服务器中,JSP底层就是java程序,运行在JVM中
JSP执行原理
  • 浏览器中访问路径虽然是以.jsp结尾,访问某个jsp文件,其实底层执行的是jsp对应的java程序
  • Tomcat服务器负责将.jsp文件翻译生成.java源文件,并且将源文件编译生成.class字节码文件
  • 访问jsp,其实底层还是执行了.class文件中的程序
  • Tomcat服务器内置了一个jsp翻译引擎,专门负责翻译jsp文件,翻译java文件
  • index.jsp会被翻译生成index_jsp.java,编译生成index_jsp.class
  • index_jsp这个类继承了HttpJspBase,而HttpJspBase继承了HttpServlet
  • jsp就是Servlet,只不过是职责不同,JSP的强项做页面展示

在JSP文件中编写的所有HTML、CSS、JavaScript,对于JSP来说,只是普通的字符串。被翻译到:out.write(“翻译到这里”)

JSP文件修改后,不需要重新部署,也不需要重新启动Tomcat服务器

JSP文件第一次访问的时候为什么非常慢?
  • 启动JSP翻译引擎
  • 需要一个翻译过程
  • 需要一个编译过程
  • 需要Servlet对象创建过程
  • init方法调用
  • service方法调用
为什么第2+N次访问jsp的时候非常快?
  • 不需要重新翻译
  • 不需要重新编译
  • 不需要创建Servlet对象
  • 直接调用Servlet对象的service方法

JSP也是单实例多线程环境下运行的一个Servlet对象

JSP文件会在什么时候会被重新翻译?
  • jsp文件被修改时会被重新翻译
  • 怎么确定jsp文件修改了呢?Tomcat服务器会记录jsp文件的最后修改时间
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值