(25)JSP的基本语法、JSP的九大内置对象、JSP的常用标签(标记)全记录、Listener 监听器

本文详细介绍了JSP的基础概念,包括JSP的翻译过程、常用的六种语句类型、三种语法结构,特别是page指令和表达式脚本。还探讨了JSP的九大内置对象,如四大域对象,并比较了response.getWriter和out输出的区别。此外,文章还讲解了JSP的静态和动态包含以及转发标签的使用,最后提到了Listener监听器,特别是ServletContextListener的使用方法。
摘要由CSDN通过智能技术生成

一、JSP的概念

1.什么是JSP,它有什么作用?
JSP的全程是Java Server Pages。即Java的服务器页面。
JSP的主要作用是代替Servlet程序回传html页面的数据。
因为Servlet程序回传html页面数据是一件非常繁琐的事情。开发成本和维护成本都极高。
2、jsp 如何访问:
jsp页面和 html页面一样,都是存放在web目录下。访问也跟访问html页面一样。 比如:在web目录下有如下的文件:
web目录a.html页面访问地址是 =======>>>>>> http://ip:port/工程路径/a.html
b.jsp 页面 访问地址是 =======>>>>>> http://ip:port/工程路径/b.jsp
3.JSP页面的本质:
jsp 页面本质上是一个 Servlet 程序。
当我们第一次访问 jsp 页面的时候。Tomcat 服务器会帮我们把 jsp 页面翻译成为一个 java 源文件。并且对它进行编译成 为.class 字节码程序。我们打开 java 源文件不难发现其里面的内容是:
在这里插入图片描述
我们跟踪原代码发现,HttpJspBase类。它直接地继承了HttpServlet 类。也就是说。jsp 翻译出来的 java 类,它间接了继 承了HttpServlet 类。也就是说,翻译出来的是一个Servlet 程序
总结:通过翻译的 java 源代码我们就可以得到结果:jsp 就是 Servlet 程序。 大家也可以去观察翻译出来的 Servlet 程序的源代码,不难发现。其底层实现,也是通过输出流。把 html 页面数据回传 给客户端。

二、JSP常用的6种语句类型

1.注释:<%-- 注释内容 --%>。
2.声明:<%! 预定义内容 %>。
3.表达式:<%= 表达式 %>。
4.代码片段:<% 代码 %>。
5.指令:<%@ 指令 %>。
6.动作:<jsp:动作>。

三、JSP的三种语法

1.jsp 头部的 page 指令:

jsp 的 page 指令可以修改 jsp 页面中一些重要的属性,或者行为。

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

常用的属性

language 属性 表示 jsp 翻译后是什么语言文件。暂时只支持 java。
contentType 属性 表示 jsp 返回的数据类型是什么。也是源码中 response.setContentType()参数值
pageEncoding 属性 表示当前 jsp 页面文件本身的字符集。
import 属性 跟 java 源代码中一样。用于导包,导类。
autoFlush 属性 设置当 out 输出流缓冲区满了之后,是否自动刷新冲级区。默认值是 true。
buffer 属性 设置 out 缓冲区的大小。默认是 8kb
errorPage 属性 设置当 jsp 页面运行时出错,自动跳转去的错误页面路径。
isErrorPage 属性 设置当前 jsp 页面是否是错误信息页面。默认是 false。如果是 true 可以 获取异常信息。
session 属性 设置访问当前 jsp 页面,是否会创建 HttpSession 对象。默认是 true。
extends 属性 设置 jsp 翻译出来的 java 类默认继承谁。

out缓冲区满了之后不能自动刷新,就会报错:

<!-- errorPage 表示错误后自动跳转去的路径 <br/> 这个路径一般都是以斜杠打头,它表示请求地址为 http://ip:port/工程路径/映射到代码的 Web 目录 -->

2.jsp 中的常用脚本<%! 预定义内容 %>:

(1)声明脚本(极少使用):
作用:可以给 jsp 翻译出来的 java 类定义属性和方法甚至是静态代码块。内部类等。

<%-- 声明类属性--%>
   <%! private Integer id;
   private String name;
   private static
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值