jsp
JSP中内置了9个隐藏对象,使得JSP比Servlet使用起来更简单,更方便,
page、config、application、request、response、session、out、exception、pageContext
page:page对象代表当前JSP页面,是当前JSP编译后的Servlet类的对象。相当于this。
config:标识Servlet配置,类型:ServletConfig,api跟Servlet中的ServletConfig对象是一样的,能获取该servlet的一些配置信息,能够获取ServletContext
application:标识web应用上下文,类型:ServletContext,详情就看Servlet中的ServletContext的使用
request:请求对象, 类型:httpServletRequest
response:响应对象 类型:httpServletResponse
session:表示一次会话,在服务器端记录用户状信息的技术
out:输出响应体 类型:JspWriter
exception 表示发生异常对象,类型 Throwable
pageContext:表示 jsp页面上下文(jsp管理者) 类型:PageContext
由jsp转换为servlet的文件中,只能看到8个内置对象,少了exception对象,因为我们在将page指令时,说过一个isErrorPage属性,默认是false,被关闭了,所以其中并没有exception对象。
jsp组成
- 静态代码块 --浏览器执行
- 动态代码块 --服务器执行
-
- 由HTML Java程序段和jsp标记的组合体 以Java作为其内置的脚本语言
jsp执行流程
服务器 翻译为xx.java --编译xx.class --执行字节码文件
- 客户端调用jsp页面
- 服务器读取jsp文件
- 执行上述步骤
- 将动态编译结果嵌入到静态页面
- 因此 页面中jsp变量可以通过“XX”赋值给HTML和js部分,反之则不行
- 比如jsp中定义变量
name
由语句value="<%=name%>"
完成赋值
- 通过HTTP协议将页面返回至客户端
- 客户端浏览器解析静态页面并显示
- 因此jsp中换行等 不可以通过
\n
方式,应当使用<%="<br"+"xxxx"%>
类似方式完成
jsp注释
- 静态注释 Java HTML
- 动态注释 特有<%-- --%>
jsp语法
<%! %> --jsp声明语句
- 用于声明类成员方法 成员变量 静态方法以及静态变量代码块等
- 不可以进行输出语句 仅仅作为声明
- 所声明的都属于类本身属性 而不是变量属性 故每次刷新或者新打开页面就会加载一次
<% %>
- 可以进行属性的定义 也可以进行输出 但是不可以进行方法的定义
<%= %> --jsp表达式
- 输出变量或者函数返回值的值 (里面无;号,加了会出现500错误)