目录
8. JSP
8.1 概念
8.2 原理
8.3 JSP脚本
8.4 JSP的内置对象
8.5 JSP指令
8.5.1 概述
8.5.2 page指令
8.5.3 include命令
8.5.4 taglib指令
8.6 JSP注释
9. EL
9.1 概念
9.2 作用
9.3 语法
9.4 注意
9.5 使用
9.5.1 运算
9.5.2 获取值
9.5.3 获取对象、List集合、Map集合的值
10. JSTL
10.1 概念
10.2 使用步骤
10.3 常用的JSTL标签
10.3.1 if标签
10.3.2 choose标签
10.3.3 foreach标签
10.4 综合示例
11. Filter:过滤器
11.1 概念
11.2 快速入门
11.3 过滤器细节
11.3.1 web.xml配置与注解配置
11.3.2 过滤器的执行流程
11.3.3 过滤器生命周期的方法
11.3.4 过滤器配置详解
11.3.5 过滤器链(即配置多个过滤器)
11.4 案例之登录验证
11.5 案例之敏感词过滤
12. Listener:监听器
12.1 概念
12.2 ServletContextListener例子
注:JSP&Servlet学习笔记(上)
JSP全称是 Java Server Pages: java服务器端页面。
可以理解为:一个特殊的页面,其中既可以指定定义html标签,又可以定义java代码,用于简化书写。
JSP本质上就是一个Servlet。
运行tomcat,复制如下图的路径,到资源管理器打开
然后到\work\Catalina\localhost\ROOT\org\apache\jsp目录下
这就是tomcat运行index.jsp生成的文件,打开查看
发现该类继承了HttpJspBase,该类需要去tomcat的源码中查找
打开查看文件源码
发现该类继承了HttpServlet,所以本质上JSP就是Servlet,实现了service()方法
JSP的脚本:JSP定义Java代码的方式
内置对象:就是在jsp页面中不需要获取和创建,可以直接使用的对象。
jsp一共有9个内置对象。
内置对象名 | 真实类 | 作用 |
---|---|---|
pageContext | PageContext | 也是域对象,当前JSP页面共享数据,还可以获取其他八个内置对象 |
request | HttpServletRequest | 也是域对象,一次请求中共享数据,在转发中可以使用request域共享数据 |
session | HttpSession | 也是域对象,一次会话中多个请求间都能共享数据 |
application | ServletContext | 也是域对象,在所有用户间共享数据 |
response | HttpServletResponse | 响应对象 |
page | Object | 当前页面(Servlet)的对象 |
out | JspWriter | 输出对象,数据输出到页面上。字符输出流对象。可以将数据输出到页面上。和response.getWriter()类似 |
config | ServletConfig | Servlet的配置对象 |
exception | Throwable | 异常对象 |
JSP指令就是用来配置JSP页面,导入资源文件的。
使用格式如下:
<%@ 指令名称 属性名1=属性值1 属性名2=属性值2 ... %>
JSP指令分为三类:
page命令主要用于配置JSP页面的。
常见的属性有contentType、import、errorPage、isErrorPage等。
contentType属性的配置等同于response.setContentType()。
可以设置响应体的MIME类型以及字符集,同时可以设置当前jsp页面的编码(只有是高级的IDE如IDEA才能生效,如果是低级工具如记事本需要设置pageEncoding属性设置当前页面的字符集)
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="utf-8" %>
Index
可以导入java的各种类,如List等。
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="utf-8" %>
Index
<%
List list = new ArrayList<>();
%>
设置后,指如果当前页面发生异常后,会自动跳转到指定的错误页面。
isErrorPage可以标识当前JSP页面是否是错误页面,属性值是一个布尔值,如果是true表示可以使用内置对象exception,如果是false表示不可以使用内置对象exception。
使用include命令可以导入其他的JSP页面。
比如说导入jstl标签库。
不过要使用jstl标签库,需要导入相关的依赖包
然后再使用taglib命令引用
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="utf-8" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
Index