JSP的执行原理
当服务器上的一个JSP 页面被首次请求执行时,服务器上的JSP 引擎会将JSP页面文件转译成一个Servlet.java文件,再将这个java 文件编译生成字节码文件,然后通过执行字节码文件响应客户的请求,而当这个JSP 页面再次被请求执行时,JSP 引擎将直接执行这个字节码文件来响应客户。
JSP页面中的几种代码类型
1、JSP Java脚本:<% java code … %>
2、JSP页面中(当前位置)显示一个变量/表达式的值:<%=sum %>
3、JSP注释:
注意:jsp注释不会被响应到客户端
4、声明在JSP整个生命周期内有效的变量或方法(会被生成为servlet的成员变量或成员方法):
<%! 声明部分 %>
Jsp页面中的三个编译指令
1、Page 将页面相关的有用的信息通知jsp引擎
2、Include 此处为静态引入,意思是将另外一个页面全部包含进来
3、Taglib 用于引入外部标签库
Jsp的动作指令
只介绍经常用到几个动作指令
1、jsp:param 用于传递参数
2、Jsp:forward 用于页面跳转,可以用第一种指令携带参数
3、Jsp:include 动态引入一个页面。与静态引入不同的是,当被引入页面的动态部分发生变化时,改页面也会改变。
因为jsp指令都可以用更简单的方式(jstl+el)替代,所以用的并不太频繁。
Jsp脚本中的九大内置对象
1、pageContext
表示页面作用域,通常用不到。
2、Session
表示会话作用域,该作用域中map结构中的值会被保存于整个会话中。
3、Application
表示应用作用域,该作用域中map结构中的值会被保存于整个应用中,服务器关掉之后才会消失,通常也用不到。
4、Request
有两个用处,首先可以表示本次请求,可以获取请求参数或请求头部。其次可以表示请求作用域,该作用域中map结构中的值会被保存于整个请求中,是最有可能被用到的。
5、Response
表示本次响应。它有一个重要的作用就是,用于输出非字符内容。还可以重定向页面。还可以增加cookie。
6、Page
Page就是this,完全可以替换,所以用不到。
7、Config
用来配置参数,一般用不到。
8、Exception
Jsp页面中不用处理异常,通常交由错误处理界面处理,所以用处不大。
9、Out
代表页面输出流,使用<%= %>其本质就是输出流。
体会:最大的体会就是在jsp中想要达到一个目的有好多好多办法,但是,恰恰因为办法多,感觉会很乱。这样重新整理了一次,就清晰很多。比如out对象,从来没有在jsp中用到过,整理之前也不太懂什么意思,整理之后就明白了。