jsp页面可嵌入JAVA代码,为用户提供动态数据。
原理
浏览器想服务器发送请求,不管访问什么资源,其实都是在访问Servlet(jsp本质上就是一个Servlet)。
jsp最终也会被转化为一个java类。
一个index.jsp文件,最后会编译成index_jsp.java 文件,源码中 index_jsp 会继承自 HttpJsBase这个类, 而HttpJsBase 最后继承自Servlet这个类,所以说jsp本质上就是一个Servlet:
顺着源码再往去下看,大致能看懂一些的,下边这个方法首先是判断请求方法:
全局的一些常量和变量,在try中会设置一些编码格式,响应类型等等:
接下来设置一些属性之后,就是输出标签了,所以,我们在jsp中写的那些html标签,实际上都会使用out.write() 给我们输出出来!
原理图解:
注意:只有访问对应的页面时,才会执行如下步骤,也就是说,我们平时写的jsp的文件,只有用户访问的时候,它才会去进行编译。
结论:
(1)只要是java代码,它会原封不动的输出;
(2)如果是html代码,会使用out.write() 方法输出;
out.write("<!DOCTYPE html>\r\n");