开发工具与关键技术:IDEA 与 Java Web
作者:蔡杰明
撰写时间:2021 年 10 月 07 日
JSP
jsp是什么?
Jsp是一种建立在Servlet规范提供的功能之上的动态网页技术,允许在网页文件中嵌入java代码和jsp标记。【通俗来说就是能别用户用肉眼可看到的就是jsp】
Java 服务器页面 (Java Server Page ,JSP) ;扩展名 .jsp
jsp的执行过程
(1)Jsp文件在用户第一次请求时,会被编译成Servlet,然后由这个Servlet处理用户的请求,所以jsp可以看成是运行时的Servlet
(2)Jsp容器(也就是Servlet容器)管理jsp页面声明周期分为两个阶段.即转换阶段和执行阶段
(3)当有一个对jsp页面的请求到来时,jsp容器检查jsp页面的语法是否正确,将jsp页面转换为Servlet
源文件,然后调用javac命令编译Servlet源文件生成字节码文件.这是转换阶段
(4)Servlet容器加载转换后的Servlet类,这是执行阶段
客户端向JSP请求,JSP则通过转译来进行编译,再通过编译后向servlet来输出,在servlet层中进行执行,执行的东西输出到JSP和响应到客户端
JSP 页面的元素
静态内容 ------------→ HTML、js、css静态文本
指令 ------------→ 以 <%@ 开始,以 %> 结束
表达式 ------------→ <%=Java表达式 %>
代码块 ------------→ <% Java 代码(变量:_jspService方法的局部变量) %>
声明 ------------→ <%! 函数或方法、变量(成员变量) %>
动作 ------------→以 <jsp: 动作名 开始,以 </jsp:动作名> 结束
注释 ------------→ <%-- 这也是注释,但客户端不能查看到 --%>
JSP 指令:
用来设置与整个 JSP 页面相关的属性。
<%@ page … %> 定义页面的依赖属性,比如脚本语言、error 页面、缓存需求等等
<%@ include … %> 包含其他文件
<%@ taglib … %>引入标签库的定义,可以自定义标签<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
jsp的九大内置对象:
- request HttpServletRequest 类的实例
- response HttpServletResponse 类的实例
- out PrintWriter 类的实例,用于把结果输出至网页上
- session HttpSession 类的实例
- application ServletContext 类的实例,与应用上下文有关
- config ServletConfig 类的实例
- pageContext PageContext 类的实例,提供对 JSP 页面所有对象以及命名空间的访问
- page 类似于 Java 类中的 this 关键字
- Exception Exception 类的对象,代表发生错误的 JSP 页面中对应的异常对象
JSP 作用域包括 page、request、session 和 application