以前学的太乱没有头绪,今天来缕一缕。
jsp 用于展示数据 可以操作所有的数据 <% %>
el 操作作用域中的属性 不能操作局部变量 ${ }
jstl 用于使用标签代替简化 jsp中的<% %> 含有 if 循环 判断语句等等
1、jsp
jsp就是 java servlet page,和servlet一样,是sun公司定义的一种用于开发动态网页的技术。允许在页面中嵌入java代码,为用户提供动态数据。
jsp实际上就是servlet,它由容器翻译成servlet源文件,再编译,用户看到的是servlet的响应结果。
内置对象 | 内容 | 作用范围 |
request | 请求 | request |
response | 对请求的响应 | page |
out | 用于向客户端发送文本数据 | page |
session | 为请求的客户创建session对象 | session |
application | 从servlet配置对象获得servlet上下文 | application |
pageContext | 包含了本页面的所有信息 | page |
config | 本jsp的ServletConfig | page |
page | 实现处理本页当前请求的类的实例 | page |
exception | 表示运行时产生的异常 | page |
上面表格第三列的作用范围,即内置对象的作用域,顾名思义就是“在多大范围内有效”。四个作用域分别为:page---request---session---application:
page——在当前页面有效
request——在当前请求中有效
session——在当前会话中有效
application——在所有应用程序中有效
———————————————————————————————————————————————————————————
2、EL表达式
简介:EL 全名为Expression Language。EL表达式一般操作的是作用域(application,session,request,pageContext)中的属性,EL变量指某一个作用域中的属性。
注:el表达式操作不了局部变量!
用法:
使用EL表达式获取数据语法:“${标识符}”
EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、request、session、application四个域中查找相应的对象,找到则返回相应对象,找不到则返回”” (注意,不是null,而是空字符串)。
示例:${user}
EL表达式也可以很轻松获取JavaBean的属性,或获取数组、Collection、Map类型集合的数据,例如:
${user.address.city}
${user.list[0]}:访问有序集合某个位置的元素
${map.key} : 获得map集合中指定key的值
获得web开发常用对象
1、pageContext:代表pageContext对象 例如:${pageScope.name1}
2、pageScope:代表page域
3、requestScope:代表request域
4、sessionScope
5、applicationScoope
6、param:Map对象,保存了所有的请求参数
7、paramValues:Map对象(value对应一个数组).
8、header:Map对象。获取一个请求头的值 注意:如果头里面有“-” ,例Accept-Encoding,则要headerValues[“Accept-Encoding”]
9、headerValues:Map对象(value对应一个数组)
10、cookie:Map对象。(value对应一个cookie对象)
11、initParam:Map对象。(key=参数名value=参数值,此参数是在web.xml中配置的) 例如 ${initParam.encode }
———————————————————————————————————————————————————————————
3、JSTL
JSP Standard Tag Library ,JSP标准标签库,核心标签库:http://java.sun.com/jsp/jstl/core 包含 Web 应用的常见工作,比如:循环、表达式赋值、基本输入输出等。
引用 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
常用标签如下
- <c:out> 用于在 JSP 中显示数据 例:<c:out value="${anyValue}" default="value" escapeXml="false"/>
- <c:set>将值存储到作用域或为 JavaBean 中的变量属性赋值 例: <c:set var=“name“ value=“chen“ scope=“page”/>
- <c:remove>删除存在于 scope 中的变量 例:<c:remove var="sampleValue" scope="session"/>
- 条件控制标签 :<c:if> 和 <c:choose> <c:when> <c:otherwise> 用法同if()else{}
- 循环控制标签:<c:forEach>
- URL 相关标签:
<c:import>包含另一个 JSP 页面到本页面,作用类似<jsp:include>,但作用范围广,不仅可以包含本项目下资源,也可以包含外部的资源!
<c:redirect>用于页面重定向 <c:redirect url=“fortoken.jsp“ />
<c:param>用于包含传递参数 <c:param name="a" value="33"></c:param>