1. 概述

  1. 概念:一个特殊的页面,其中既可以定义html标签,又可以定义Java代码。用于简化书写。
  2. 原理:jsp本质上就是一个Servlet

2.jsp的脚本

jsp的脚本:jsp定义Java代码的方式.可以参考生成的index_jsp.java文件

  1. 方式1<% 代码 %>:定义的Java代码在Servlet中的service方法中
  2. 方式2<%! 代码 %>:定义的Java代码在jsp转换后的Java类中的成员位置(可以是成员变量和成员方法)
  3. 方式3<%= 代码 %>:定义的Java代码,执行输出会输出到页面上
例如在页面上输出value的值 
<%= value %> 

3.jsp中的指令

  1. 作用:用于配置jsp页面,导入资源文件
  2. 格式<%@ 指令名称 属性名1 = 属性值2 属性名2 = 属性值2.... %>
指令示例:
<% -- contentType用于设置MIME类型以及字符集--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
  1. 指令分类
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的内置对象

  1. 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注释

<%-- 注释内容 --%>