EL :为了消除jsp中的Java代码
语法:
 ${EL表达式}
 a.EL不需要导包
 b.在el中调用属性,其实是调用的getXxx()方法${范围.对象.属性.属性的属性 }
操作符:操作:属性,不是对象
 . : 使用方便
 [] : 如果是常量属性,需要使用双引号/单引号 引起来;比点操作符更加强大[]强大之处:
 a.可以容纳一些 特殊符号 (. ? -)
 b.[]可以容纳 变量属性 (可以动态赋值)
 String x = “a”;
{requestScope[“a”]}等价于KaTeX parse error: Expected '}', got 'EOF' at end of input: {{requestScope[x]}c.可以处理数组
 ${requestScope.arr[0] }普通对象、map中的变量
通过EL获取JSP 九大内置对象
${pageContext }
 ${pageContext.request }
 ${pageContext.sessoin }JSTL:比EL更加强大
 需要引入2个jar :jstl.jar standard.jar
 引入tablib :
 <%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
 其中prefix=“c” :前缀核心标签库: 通用标签库、条件标签库 迭代标签库
a.通用标签库
 <c:set>赋值
 i:
 在某个作用域之中(4个范围对象),给某个变量赋值
 <%–
 request.setAttribute(“name”, “zhangsan”) ;
 –%>
 <c:set var=“name” value=“zhangsan” scope=“request”/>
 ${requestScope.name }<c:set var=“变量名” value=“变量值” scope=“4个范围对象的作用域”/>
ii:
 给普通对象赋值
 在某个作用域之中(4个范围对象),给某个对象的属性复制 (此种写法,不能指定scope属性)<c:set target="${requestScope.student}" property="sname"  value="zxs" />给map对象赋值
 <c:set target="${requestScope.countries}" property=“cn” value=“中国” /><c:set target=“对象” property=“对象的属性” value=“赋值” />
注意 <c:set>可以给不存在的变量赋值 (但不能给不存在的对象赋值)
<c:out> :显示
 true:<c:out value=‘百度’ default=“当value为空的,显示的默认值” escapeXml=“true” />
 false: <c:out value=‘百度’ escapeXml=“false” /><c:remove >:删除属性
 <c:remove var=“a” scope=“request”/>选择:
 if(boolean)
 单重选择
 <c:if test="" >if else if… esle if… else /switch
<c:choose>
 <c:when test="…"> </c:when>
 <c:when test="…"> </c:when>
 <c:when test="…"> </c:when>
 <c:otherwise> </c:otherwise>
 </c:choose>在使用 test="" 一定要注意后面是否有空格
 例如:test="{10>2 } " 非true循环(迭代标签库)
 for(int i=0;i<5;i++)
 <c:forEach var=“name” items="{name }-
 </c:forEach>for(String str:names)
 <c:forEach var=“student” items="${requestScope.students }" >
{student.sno }</c:forEach>过滤器:
 实现一个Filter接口
 init()、destroy() 原理、执行时机 同Servlet
 配置过滤器,类似servlet
 通过doFilter()处理拦截,并且通过chain.doFilter(request, response);放行filter映射
只拦截 访问MyServlet的请求
 /MyServlet
 拦截一切请求(每一次访问 都会被拦截)
 /*通配符
dispatcher请求方式:
 REQUEST:拦截HTTP请求 get post
 FORWARD:只拦截 通过 请求转发方式的请求INCLUDE:只拦截拦截通过 request.getRequestDispatcher("").include() 、通过<jsp:include page="…" />此种方式发出的请求
 ERROR:只拦截发出的请求过滤器中doFilter方法参数:ServletRequest
 在Servlet中的方法参数:HttpServletRequest过滤器链
 可以配置多个过滤器,过滤器的先后顺序 是由 的位置 决定