1. 概述
- 概念:一个特殊的页面,其中既可以定义html标签,又可以定义Java代码。用于简化书写。
- 原理:jsp本质上就是一个Servlet
2.jsp的脚本
jsp的脚本:jsp定义Java代码的方式.可以参考生成的index_jsp.java文件
- 方式1
<% 代码 %>
:定义的Java代码在Servlet中的service方法中 - 方式2
<%! 代码 %>
:定义的Java代码在jsp转换后的Java类中的成员位置(可以是成员变量和成员方法) - 方式3
<%= 代码 %>
:定义的Java代码,执行输出会输出到页面上
例如在页面上输出value的值
<%= value %>
3.jsp中的指令
- 作用:用于配置jsp页面,导入资源文件
- 格式
<%@ 指令名称 属性名1 = 属性值2 属性名2 = 属性值2.... %>
指令示例:
<% -- contentType用于设置MIME类型以及字符集--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
- 指令分类
1. page:配置jsp页面的
content-type属性:等同于response的setContentType方法
设置响应体的MIME类型以及字符集;
设置当前jsp页面的编码(只能高级开发工具IDEA才能生效,如果使用低级的工具需要设置pageEncoding属性的值)
pageEncoding属性:设置当前jsp页面的字符集
buffer属性:指定缓冲区大小,有默认值
import属性:导包
errorPage:当前页面发生异常后,会自动跳转到指定的错误页面
isErrorPage:标识当前页面是否为错误页面。其值为true就可以使用内置的exception对象,false就不可以使用内置对象exception。
2. include:页面包含的,导入页面的资源文件
例如:<%@ include file = "top.jsp" %>
3. taglib:导入资源
4.jsp的内置对象
- jsp的内置对象:在jsp页面中不需要获取和创建,可以直接使用的对象。jsp中一共有9个内置对象
1.request
HttpServletRequest类型的变量,在一次请求访问的多个资源(转发)内共享数据
2.response
HttpServletResponse类型的变量,响应对象
3.out
JspWriter类型的变量
out:字符输出流对象,可以将数据输出到页面上。和response.getWriter()对象类似,两者有区别的。
在Tomcat服务器真正给客户端做响应时之前,会先找response
缓冲区数据,再找out缓冲区数据。所以使用response.getWriter对象的
数据输出永远在out.write之前
4.pageContext
PageContext类型的变量,在当前页面内共享数据。还可以获取其他8个内置对象
5.session
HttpSession类型的变量,一次会话的多个请求间共享数据
6.application
ServletContext类型的变量,所有用户间共享数据
7.page
Object类型的变量,当前页面(Servlet)的对象,相当于this
8.config
ServletConfig类型的变量,Servlet的配置对象
9.exception:只有指定isErrorPage这个属性为true后才能使用
Throwable类型的变量,异常对象
1456为jsp中的四个域对象
5.jsp注释
<%-- 注释内容 --%>