Javaweb
- 1.作用域
- 1.1使用
- 2.EL表达式
- 3.JSTL
- 3.1使用步骤
- 3.2使用
1.作用域
四大作用域:page(当前jsp有效) request(一次请求) session(一次会话) application(整个web应用)
page域指的是pageContext.
request域指的是HttpServletRequest
session 域指的是HTTPSession
application 域指的是ServletContext,他们都是域对象,原因就是他们都内置了map集合,都有setAttribute getAttribute方法。而且他们的name都是String类型,而value都是Object类型。
他们都有自己固定的生命周期和作用域
page:jsp页面被执行,生命周期开始,jsp页面执行完毕,生命周期结束。
request:用户发送一个请求,开始,服务器返回响应,请求结束,生命周期结束。
session:用户打开浏览器访问,创建session(开始),session超时或被声明失效,该对象生命周期结束。
application:web应用加载的时候创建。Web应用被移除或服务器关闭,对象销毁
1.1使用
存值
pageContext.setAttribute("aa", "张三");
request.setAttribute("aa", "李四");
session.setAttribute("aa", "王五");
application.setAttribute("aa", "麻子");
取值
<h3>使用jsp表达式取值</h3>
取值如下:<br>
1.<%=pageContext.getAttribute("aa")%><br>
2.<%=request.getAttribute("aa")%><br>
3.<%=session.getAttribute("aa")%><br>
4.<%=application.getAttribute("aa")%>
2.EL表达式
- 概念
- EL 表达式的全称:Expression Language 表达式语言。
- EL 是 JSP 内置的表达式语言,用以访问页面的上下文以及不同作用域中的对象,取得对象属性的值,或执行简单的运算或判断操作。
- 作用
- EL表达式主要是替换和简化 jsp 页面中表达式脚本在jsp页面中进行数据的输出。
- EL 表达式仅仅用来读取数据,而不能第数据进行修改。
- 特点
- EL 在得到某个数据时,会自动进行数据类型的转换
- EL 表达式输出数据时,如果有则输出数据,如果为 null 则什么也不输出。
- EL 表达式与 JSP 表达式的区别
① 如果数据为 null,jsp 显示 null,EL 则什么也不显示;
② EL 显示的数据,必须存放在域对象或上下文对象中;
③ EL 可以自带数据类型转换的功能; - 语法格式
${表达式} - 注意事项
- jsp 默认是支持 el 表达式的。
- 如果要忽略 el 表达式,有两种方式
(1)设置 jsp 中 page 指令中:isELIgnored=“true” 忽略当前jsp页面中所有的el表达式
(2)${表达式}:这种方式忽略当前这个 el 表达式,会在当前页面呈现原有格式。
<h2>二、EL表达式</h2>
<h3>使用EL表达式取域对象的值</h3>
1.${pageScope.aa }<br>
2.${requestScope.aa }<br>
3.${sessionScope.aa }<br>
4.${applicationScope.aa }
<h3>EL运算符</h3>
${1+2 }____${1>2 }____${3==5 }____${empty myls }
<h3>使用EL表达式取对象的值</h3>
${对象 }
<body>
<%
request.setAttribute("key","值");
%>
<!-- 表达式脚本输出 key 的值是: -->
<%=request.getAttribute("key1")==null?"":request.getAttribute("key1")%><br/>
<!-- EL 表达式输出 key 的值是: ${key1} -->
</body>
注意:
- EL 在表达式在输出 null 值的时候,输出的空串。
- 而 jsp 表达式脚本在输出 null 值的时候,输出的是 null 字符串。
3.JSTL
- 概念
- JSTL标签库,全称是 JSP Standard Tag Library JSP标准标签库。
- 是由 Apache 组织提供的开源的、免费的、不断完善的 JSP 标签。
- 作用
- JSTL 标签库是用来简化和替换 JSP 页面上的 java 代码(代码脚本),这样使得整个 JSP 页面变得更佳简洁。
JSTL的
优点:
- 提供一组标准标签
- 可用于编写各种jsp页面
在使用JSTL之前我们需要导包
在jsp页面添加taglib指令
3.1使用步骤
- 导入 jstl 相关的jar包
- 引入标签库
<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>
- 使用标签
- 使用 taglib 指令引入标签库,就可以使用标签了,其中 prefix 用来指定前缀名,可以改变,但是建议使用约定俗成的比较好。
- URI 相当于库的唯一标识,因为 JSTL 由多个不同的库组成,使用该属性指定要导入哪个库。
<%@taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c” %>
使用标签
使用 taglib 指令引入标签库,就可以使用标签了,其中 prefix 用来指定前缀名,可以改变,但是建议使用约定俗成的比较好。
URI 相当于库的唯一标识,因为 JSTL 由多个不同的库组成,使用该属性指定要导入哪个库
3.2使用
三、JSTL(jsp标准标签库)
通用标签:set out remove
<c:set var=“sb” value=“ {sb }”></c:out>
移除前: {sb }条件标签:if
<c:if test=“ {not empty uname}”>
欢迎 {empty uname }“>
用户名:
密码:
</c:if>迭代标签:foreach
打印1-10
<c:forEach var=“i” begin=“1” end=“10” step=“2”>
{myls}” var=“g”>
${g.gname }
</c:forEach>
<c:forEach items=“aa,bb,cc,dd” delims=“,” var=“a”>
${a}
</c:forEach>