目录
一、JSP介绍
JSP实际上是一个Servlet+HTML的结合体。我们可以在JSP上面编写html代码也可以编写java代码。
JSP只负责页面内容的展示,Servlet只负责后台的业务处理。
实际上,JSP也是一个Servlet类。当浏览器第一次访问JSP的时候,JVM会把JSP翻译成一个Java文件,文件的名称就是“JSP文件名_后缀名.java”。这个Java文件实际上就是一个Servlet文件。它也继承了HttpServlet类。我们在浏览器上所看到的内容,实际上就是该Servlet文件的service方法的out.write()方法的输出。
二、 JSP基本用法
2.1 JSP文件的组成
一个JSP文件可以包含代码区、HTML标签、JSP指令、脚本表达式、注释等等。
2.2 代码区
定义格式:
<% java代码... %>
一个JSP文件可以有多个代码区。多个代码区之间可以互相访问。
2.3 JSP指令
- page指令:指定当前JSP页面的参数信息。
<%@page language="java" import="包名,包名,..." pageEncoding="jsp页面使用的字符集"
isErrorPage="true|false" errorPage="异常处理页面的路径"%>
一个JSP页面至少有一个page指令,而且一般page指令放在jsp文件的开始位置
- include指令:包含其他jsp页面
<%@include file="JSP文件路径"%>
注意: 使用include指令包含其他页面,那么被包含页面会与包含的JSP页面会被编译成一个Servlet类。因此,为了避免相同处理指令引起的冲突,被包含页面中不能够出现与包含页面中相同的处理指令。
taglib指令:引入标签库文件。
<%@taglib uri="标签库文件地址" prefix="前缀名"%>
2.4 注释
JSP文件支持两个注释:
HTML:<!-- html注释 -->
JSP:<%-- JSP注释内容 --%>
因为HTML注释可以通过浏览器查看源代码看到,而JSP注释不可以在浏览器的源代码中查看,所有JSP注释的安全性较高。在实际开发中,尽量使用JSP注释。
2.5 脚本表达式
作用:替代out.write(输出内容)方法。
定义格式:
<%=输出内容 %>
三、JSP内置对象
JSP九大内置对象:
pageContext:相当于Servlet的pageContext;
request:相当于Servlet的HttpServletRequest对象
session:相当于Servlet的HttpSession对象
application:相当于Servlet的ServletContext对象
config:相当于Servlet的ServletConfig对象
out:带缓存的PrintWriter对象
page:当前当前的JSP页面
response:相当Servlet的HttpServletResponse对象
exception:异常对象。只有jsp是一个异常处理页面的时候才有该对象的。
pageContext的作用:1)作为域对象;2)可以获取其他对象;
四、EL表达式
使用EL表达式前,记得引入一下内容:
<%@page isELIgnored="false" %>
4.1 EL介绍
EL: 表达式语言。使用EL表达式可以替换脚本表达式,使得JSP页面的代码更加简洁。
语法格式:
${内置对象.属性名}
4.2 EL内置对象
JSP内置对象 EL内置对象
pageContext pageScope
request requestScope
session sessionScope
application applicationScope
EL表达式的内置对象名可以不写。如果不写,默认就是从pageScope > requestScope > sessionScope > applicationScope查找域对象中的属性,直到找到为止。
4.3 EL运算符
算术运算符:+ - * / %
逻辑运算符:and or not
比较运算符:> < >= <= == !=
empty运算符:在字符串中使用empty,那么如果字符串为空,那么empty返回true,否则返回false。在集合中使用empty,如果集合没有元素,那么empty返回true,否则返回false。
三目运算符:${EL条件表达式 ? ‘内容1’:‘内容2’}