1.jsp脚本:
1)<%java代码%> – java代码翻译到servlet中的service方法内部 局部内容
2)<%=java变量或表达式>—被翻译成 out.print(java变量或表达式)
3)<%!java代码%>---- 被翻译到成员的位置
2.jsp注释:
1)Html注释:
jsp源码可见
翻译后servlet可见
客户端的html源码可见
2)java注释://单行注释 /多行注释/
jsp源码
翻译后servlet可见
3)jsp注释:<%–注释内容–%>
jsp源码可见
3.jsp运行原理
jsp在第一次被访问时会被Web容器翻译成servlet,在执行
过程:
客户端访问demo.jsp---->找对应翻译后的demo_jsp.class
找到:分析该jsp是否修改过
没修改过:直接执行demo_jsp.class输出结果
修改过:翻译—>编译---->运行输出结果
找不到:翻译—>编译---->运行输出结果
4. jsp指令(3个)
指令的结构: <%@ 指令 属性=“属性值” 属性=“属性值”…%>
jsp的指令是指导jsp翻译和运行的命令,jsp包括三大指令:
1)page指令
属性最多的一个指令,根据不同的属性,指导整个页面特性
格式:<%@ page 属性名1= “属性值1” 属性名2= “属性值2” …%>
常用属性如下:
pageEncoding:代表jsp文件的编码
contentType:相当于response.setContentType()
如果省略contetType 那么就使用pageEncoding的编码
import:页面导入的jar到 相当于java 的import
errorPage:该jsp页面出错后跳转到页面
isErrorPage:该页面是否是一个处理错误的页面
session:true/false true代表在翻译成servlet时会自动创建session对象
2)include指令
页面包含(静态包含)指令,可以将一个jsp页面包含到另一个jsp页面中
格式:<%@ include file=“被包含的文件地址”%>
3)taglib指令
在jsp页面中引入标签库
格式:<%@ taglib uri=“标签库地址” prefix=“前缀”%>
5.jsp内置/隐式对象(9个)
jsp被翻译成servlet之后,service方法中有9个对象定义并初始化完毕,我们在jsp 脚本中可以直接使用这9个对象
名称 类型 描述
out javax.servlet.jsp.JspWriter 用于页面输出
request javax.servlet.http.HttpServletRequest 得到用户请求信息,
response javax.servlet.http.HttpServletResponse 服务器向客户端的回应信息
config javax.servlet.ServletConfig 服务器配置,可以取得初始化参数
session javax.servlet.http.HttpSession 用来保存用户的信息
application javax.servlet.ServletContext 所有用户的共享信息
page java.lang.Object 指当前页面转换后的Servlet类的实例
pageContext javax.servlet.jsp.PageContext JSP的页面容器
exception java.lang.Throwable 表示JSP页面所发生的异常,在错误页中才起作用
九大内置对象:
request response
session application
config
out:输出内容
page
pageContext:jsp页面的上下文对象
exception:封装着报错页面的错误信息