1.JSP指令
作用:配置JSP页面,导入资源文件
格式<%@ 指令名称 属性名 = “属性值” 属性名 = “属性值” %>
分类:
1.1 page
作用:配置JSP页面
1.1.1 contentType :等同于Servlet中request.setContentType(),低端IDE需要另外加pageEncoding属性配置当前jsp文件的字符集;
<%@ page contentType = "text/html;charset=utf-8" pageEncoding="utf-8" %>
1.1.2 import:导包;
<%@ page import = "java.util.*" %>
1.1.3 errorPage 当前页面发生错误时候,会自动跳转到“错误页面”;
<%@ page contentType = "text/html;charset=utf-8" pageEncoding="utf-8" errorPage = "error.jsp" %>
1.1.4 isErrorPage 标识当前页面是否为错误页面 true/false true可以使用exception内置对象
<%@ page contentType = "text/html;charset=utf-8" pageEncoding="utf-8" isErrorPage= "true" %>
1.1.5 isELIgnore = "true" 忽略EL表达式
1.2 include
作用:导入页面文件
<%@include file= "top.jsp" %>
1.3 taglib 导入资源文件标签
<%@taglib prefix= "c" uri= "路径"%>
2.JSP注释
<!-- --> 注释html代码
<%-- --%> 注释所有的代码
3.JSP内置对象
四个域对象:pageContext request session application
其他5个:page、config、out、exception、response
/////////////////域对象///////////////////////////////////////////////////////////////////////
pageContext (PageContext)
一个页面中共享资源数据,可以获取其他8个内置对象
<%
pageContext.setAttribute("msg","test");
%>
<%
out.print(pageContext.getAttribute("msg"));
%>
request (HttpServletRequest)
一次请求访问多个资源(转发)
session (HttpSession)
一个会话的多次请求间
application (ServletContext)
所有服务器用户共享数据、
/////////////////////////////////////////////////////////////////////////////////////////////
response (HttpServletResponse)
响应对象
page (Servlet)
当前Servlet对象
out (JspWriter)
输出对象
config (ServletConfig)
Servlet配置对象
exception (Throwable)
异常对象(只有配置IsErrorPage的时候才能使用)
4. EL表达式
JSP默认支持EL表达式;
格式:${表达式}
例:${ 3 > 4 } 页面输出 false;
注意:禁用EL表达式(2种)
4.1 在page指令中添加isELIgnore属性为true;
4.2 在$前添加转义,${ 3 > 4 }。
用处:1.算术运算符2.逻辑运算符 3.比较运算符 4.空运算符(empty)${empty str} ${not empty str} -不为空且长度大于0
EL表达式获取值:
注:只能从域对象中获取值
四个域对象:pageContext、request、session、appliocation
语法:
1.${域名称.键名} 从指定域中获取指定的键值
四个域名称:pageScope、requestScope、sessionScope、appliocationScope,分别一一对应四个域对象;
<%
request.setAtribute("name","zhangsan");
session.setAtribute("name","lisi");
session.setAtribute("p",people);//对象
session.setAtribute("l",list);//对象
session.setAtribute("m",map);//对象
%>
${requestScope.name}
2.${键名},按域大小,从小到大依次查询,查到为止
${name} -->输出的是zhangsan
3.获取对象、List、Map的值
${sessionScope.p.name} 对象
${sessionScope.l[0]} List
${sessionScope.m["key"]} Map
${sessionScope.m.key} Map
4.EL隐式对象(11个)
pageContext
获取其他8个内置对象
动态获取虚拟地址 ${pageContext.request.getContextPath}
5.JSTL
JavaServer Pages Tab Library
Apache提供的免费jsp标签
引入标签
1.导包
2.taglib指令
3.使用标签