JavaWEB(域对象&EL表达式&JSTL库)

1.域对象的作用:
临时的存储有效的数据,四个作用域保存的值,范围不同,存储的方式是一样

2.实现方式:
都是通过setAttribute和getAttribute

3.域对象的范围:
pageContext<request<session<application

pageContext:只在当前JSP页面中有效,其它页面访问无效
request:只在同一个请求当中访问有效,其它无效
session:只在同一个会话(打开浏览器与关闭浏览器的过程)中访问有效,其它无效(浏览器关闭或者session失效)
application:只要服务器没有关闭,期间访问都有效。
 

案例
  <ul>
		<li>pageContext:只在当前JSP页面中有效,其它页面访问无效</li>
		<li>request:只在同一个请求当中访问有效,其它无效</li>
		<li>session:只在同一个会话(打开浏览器与关闭浏览器的过程)中访问有效,其它无效(浏览器关闭或者session失效)</li>
		<li>application:只要服务器没有关闭,期间访问都有效。</li>
	</ul>
    
    <%
		pageContext.setAttribute("小涛", "凡凡");
		request.setAttribute("老夫子", "元歌");
		session.setAttribute("许仙", "白素贞");
		application.setAttribute("居易", "李白");
	%>
	<hr/>
	
	
	
	<%=pageContext.getAttribute("小涛") %>
	<br/>
	<%=request.getAttribute("老夫子") %>
	<br/>
	<%=session.getAttribute("许仙") %>
	<br/>
	<%=application.getAttribute("居易") %>
	
	
	
	<hr/>
	<!-- 
		EL表达式
			属于JSP的一个基础语法,作用:让数据调用的更简单。
			$ {  }
	 -->
	 <h2>EL表达式获取域对象所保存的值</h2>
	<!-- 通过EL表达式的方式进行输出域对象所保存的值 -->
	<%=pageContext.getAttribute("小涛") %> ==== ${小涛 }
	<br/>
	${居易 }
	${许仙 }
	${老夫子 }
	
	
	 <!-- 通过EL表达式获取四个域对象分别保存的值 -->
	 <!-- EL表达式中提供了四个隐式域对象 -->
	 <hr/>
	 ${pageScope.小涛 }
	 <br/>
	 ${requestScope.老夫子 }
	 <br/>
	 ${sessionScope.许仙 }
	 <br/>
	 ${applicationScope.居易 }
	
	
	 <!-- EL表达式获取的值可以有哪些? -->
	 ${小涛 } 
	  ${"小涛" }
	  

1.EL表达式
 属于JSP的一个基础语法,作用:让数据调用的更简单。       ——语法:  $ {  }

通过EL表达式获取四个域对象分别保存的值

EL表达式中提供了四个隐式域对象 (先后顺序:从小范围到大范围)

empty 判断EL表达式中的变量是否存在 
${empty list }

JSTL库
1.由JSP内部提供的一套标签库
问题:纯JSP页面中不允许Java代码  需要使用JSTL提供的标签去替代。



2.JSTL标签    out,set,if,foreach
通过JSTL库中的out标签进行值的输出 

 <!-- default 当value值访问的结果不存在时 会输出默认结果  -->
     <c:out value="${username }" default="sb"></c:out>
 通过JSTL库中的set标签进行对值的设置 
  

  <!-- 
         属性:
             var  存储的变量名
             value 存储的值
             scope 作用域(pageContext request session application)
      -->
通过JSTL库中提供的if标签来实现对数据进行有效的判断 

     <c:if test="${1==12 }">
         <c:out value="你的条件是OK的"></c:out>
     </c:if> 
remove标签   移除 

  <c:set var="bb" value="123456"></c:set>
    移除前: <c:out value="${bb }"></c:out>
    <!-- 移除 -->
    <hr/>
    <c:remove var="bb" />
    移除后:<c:out value="${bb }"></c:out>
 foreach循环标签 
 

   <hr/>
    <!-- 
        sb  变量
        begin 起始值
        end  终值
        step 每次增长2
        varStatus 获取数据对应的行号(Y1阶段 J2EE  自定义JSP标签)
    -->
    <c:forEach  var="sb" begin="1" end="100" step="2" varStatus="demo" >
        ${sb }----${demo.index }----${demo.count } <br/>
    </c:forEach>



3.使用步骤:
 (1)导入依赖库     lib

 

 (2)在指定的页面中通过taglib指令来引

案例:去除掉商城首页的java代码

<body>
    <!-- 所有的JSP页面中直接通过biz层实例化调用的数据显示 -->
    <!-- 将这些数据显示的java代码存放到一个预处理的do处理页面中去实现,跳转过来 -->
 
 
    <!-- 
    
        如果存在do处理页面去获取biz层的数据
            是不直接执行do处理的,需要在显示页面中通过if标签进行判断跳转
     -->
 
  

案例
 <!-- 显示数据时,判断非空 -->
    <c:if test="${empty listGoods }">
        <jsp:forward page="doLoad.jsp"></jsp:forward>
    </c:if>
 
 
 
    <h3 align = "center">zkingzz购物商城首页</h3>
    <hr/>
    <table border = "1" width = "100%" align = "center">
        <tr>
            <th>编号</th>
            <th>名称</th>
            <th>类型</th>
            <th>图片</th>
            <th>价格</th>
            <th>库存</th>
            <th>描述</th>
            <th>操作</th>
        </tr>
        <!-- 
            需求:显示goods表中所有的记录  
        -->
        <c:forEach items="${listGoods }" var="goods">
            <tr>
                <td>${goods.gid }</td>
                <td>${goods.gname }</td>
                <td>${goods.gtype }</td>
                <td><img style = "width:80px;height:50px;" src = "${goods.gimage }"/></td>
                <td>${goods.gprice }</td>
                <td>${goods.gkc }</td>
                <td>${goods.ginfo }</td>
                <td>
                    <button onclick="addCart(${goods.gid})">加入购物车</button>
                </td>
            </tr>
        </c:forEach>
    </table>
 
 
 
</body>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值