jsp>jsp__page__0">1.jsp>jsp 头部的 page 指令
jsp>jsp 的 page 指令可以修改 jsp>jsp 页面中一些重要的属性,或者行为。
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>
i. language 属性表示 jsp>jsp 翻译后是什么语言文件。暂时只支持 java。
ii. contentType 属性 表示 jsp>jsp 返回的数据类型是什么。也是源码中 response.setContentType()参数值
iii. pageEncoding 属性 表示当前 jsp>jsp 页面文件本身的字符集。
iv. import 属性 跟 java 源代码中一样。用于导包,导类。
两个属性是给 out 输出流使用
v. autoFlush 属性 设置当 out 输出流缓冲区满了之后,是否自动刷新冲级区。默认值是 true。
vi. buffer 属性 设置 out 缓冲区的大小。默认是 8k
vii. errorPage 属性 设置当 jsp>jsp 页面运行时出错,自动跳转去的错误页面路径。
viii. isErrorPage 属性 设置当前 jsp>jsp 页面是否是错误信息页面。默认是 false。如果是 true 可以
获取异常信息。
ix. session 属性 设置访问当前 jsp>jsp 页面,是否会创建 HttpSession 对象。默认是 true。
x. extends 属性 设置 jsp>jsp 翻译出来的 java 类默认继承谁
jsp>jsp__19">2.jsp>jsp 中的常用脚本
2.i. 声明脚本(极少使用)
声明脚本的格式是: <%! 声明 java 代码 %>
作用:可以给 jsp>jsp 翻译出来的 java 类定义属性和方法甚至是静态代码块。内部类
2.ii. 表达式脚本(常用)
表达式脚本的格式是:<%=表达式%>
表达式脚本的作用是:的 jsp>jsp 页面上输出数据。
表达式脚本的特点:
1、所有的表达式脚本都会被翻译到_jsp>jspService() 方法中
2、表达式脚本都会被翻译成为 out.print()输出到页面上
3、由于表达式脚本翻译的内容都在_jsp>jspService() 方法中,所以_jsp>jspService()方法中的对象都可以直接使用。
4、表达式脚本中的表达式不能以分号结束
2.iii. 代码脚本
代码脚本的格式是: <%java 语句%>
代码脚本的作用是:可以在 jsp>jsp 页面中,编写我们自己需要的功能(写的是 java 语句)。
代码脚本的特点是:
1、代码脚本翻译之后都在_jsp>jspService 方法中
2、代码脚本由于翻译到_jsp>jspService()方法中,所以在_jsp>jspService()方法中的现有对象都可以直接使用。
3、还可以由多个代码脚本块组合完成一个完整的 java 语句。
4、代码脚本还可以和表达式脚本一起组合使用,在 jsp>jsp
jsp>jsp__47">3.jsp>jsp 中的三种注释
.3i. html 注释
java"><!-- 这是 html 注释 -->
html 注释会被翻译到 java 源代码中。在_jsp>jspService 方法里,以 out.writer 输出到客户端。
java__58">3.ii. java 注释
<%
// 单行 java 注释
/* 多行 java 注释 */
%>
jsp>jsp__66">3.iii. jsp>jsp 注释
jsp>jsp__69">4.jsp>jsp 四大域对象
四个域对象分别是:
pageContext (PageContextImpl 类) 当前 jsp>jsp 页面范围内有效
request (HttpServletRequest 类)、 一次请求内有效
session (HttpSession 类)、 一个会话范围内有效(打开浏览器访问服务器,直到关闭浏览器)
application (ServletContext 类) 整个 web 工程范围内都有效(只要 web 工程不停止,数据都在)
域对象是可以像 Map 一样存取数据的对象。四个域对象功能一样。不同的是它们对数据的存取范围。
虽然四个域对象都可以存取数据。在使用上它们是有优先顺序的。
四个域在使用的时候,优先顺序分别是,他们从小到大的范围的顺序。
pageContext ====>>> request ====>>> session ====>>> applicatio