JSP
概念:Java Server Pages,Java服务器端页面。
服务器解析过程:
- 服务器解析浏览器请求,找到
xx.jsp
页面 - 将
xx.jsp
转换成xx.java
文件 - 生成
xx.class
字节码文件 - 由字节码文件响应。(只有servlet才可以被外界访问)
- 因此jsp本质上是一个servlet
- 该字节码文件(servlet)将页面内容响应给浏览器
jsp脚本
jsp的脚本:jsp定义Java代码的方式
<% 代码 %>
定义的Java代码,在jsp转换后的Java类的service方法中;<%! 代码 %>
定义的Java代码,在jsp转换后的Java类的成员位置;<%= 代码 %>
定义的Java代码,会输出到页面。
jsp指令
作用:用于配置jsp页面,导入资源文件
格式:<%@ 指令名称 属性名1=属性值1 属性名2=属性值2 ... %>
分类:
-
page:配置jsp页面
contentType="text/html;charset=UTF-8"
:设置响应体的mime类型;设置当前页面的编码language="java"
语言,虽然只能使用java语言buffer="16kb"
字符输出流 缓冲区,默认8kb<%@ page import="java.util.ArrayList" %>
导包errorPage=
"xxx.jsp" 当前页面发生异常后,会自动跳转到指定的错误页面iserrorPage=
"true" 默认是false,在错误页面设置为true,可以使用exception对象
-
include:页面包含,如一样的页面头,页面尾
<%@ include file="top.jsp" %>
-
taglib 导入资源
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
jsp注释
- html注释:
<!--注释-->
,只能注释html代码 - jsp注释:
<%--注释--%>
, 可以注释所有
jsp内置对象
jsp本质是一个servlet,因此许多对象如 requst, response不需要定义,可以直接使用。
jsp一共有9个内置对象:
- request:和servlet使用一样
- response
- out:JspWriter类型,字符输出流对象,可以将数据输出到页面上
- pageContext:PageContent类型,当前页面共享数据
- session:HttpServletRequest类型
- application:ServletContext类型,所有用户共享数据
- page:Object类型,当前页面(Servlet)的对象 this
- config:ServletConfig类型,Servlet的配置对象
- exception:Throwable类型,异常对象
out
和resp.getWriter().write()
类似。
区别:resp.getWriter().write(String)
不管定义在什么位置,都会优先于out输出。
建议:多使用out.write(String)
pageContext
可以获取其他8个对象,如pageContext.getOut()
exception
需要声明<%@ page iserrorPage="true" %>