JSP: Java服务器页面

JSP

概念:Java Server Pages,Java服务器端页面。

服务器解析过程:

  1. 服务器解析浏览器请求,找到xx.jsp页面
  2. xx.jsp转换成xx.java文件
  3. 生成xx.class字节码文件
  4. 由字节码文件响应。(只有servlet才可以被外界访问)
    • 因此jsp本质上是一个servlet
    • 该字节码文件(servlet)将页面内容响应给浏览器

jsp脚本

jsp的脚本:jsp定义Java代码的方式

  1. <% 代码 %> 定义的Java代码,在jsp转换后的Java类的service方法中;
  2. <%! 代码 %> 定义的Java代码,在jsp转换后的Java类的成员位置;
  3. <%= 代码 %> 定义的Java代码,会输出到页面。

jsp指令

作用:用于配置jsp页面,导入资源文件

格式:<%@ 指令名称 属性名1=属性值1 属性名2=属性值2 ... %>

分类:

  1. 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对象
  2. include:页面包含,如一样的页面头,页面尾

    <%@ include file="top.jsp" %>

  3. taglib 导入资源

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

jsp注释

  1. html注释:<!--注释--> ,只能注释html代码
  2. jsp注释:<%--注释--%>, 可以注释所有

jsp内置对象

jsp本质是一个servlet,因此许多对象如 requst, response不需要定义,可以直接使用。

jsp一共有9个内置对象:

  1. request:和servlet使用一样
  2. response
  3. out:JspWriter类型,字符输出流对象,可以将数据输出到页面上
  4. pageContext:PageContent类型,当前页面共享数据
  5. session:HttpServletRequest类型
  6. application:ServletContext类型,所有用户共享数据
  7. page:Object类型,当前页面(Servlet)的对象 this
  8. config:ServletConfig类型,Servlet的配置对象
  9. exception:Throwable类型,异常对象

out

resp.getWriter().write()类似。

区别:resp.getWriter().write(String)不管定义在什么位置,都会优先于out输出。

建议:多使用out.write(String)

pageContext

可以获取其他8个对象,如pageContext.getOut()

exception

需要声明<%@ page iserrorPage="true" %>

原文地址:https://www.cnblogs.com/mingriyingying/p/13497585.html