pageContext.setAttribute("aa", "小炮");//作用域仅限于当前的jsp页面
request.setAttribute("aa", "中炮");//作用域仅限于当前请求(转发有效)
session.setAttribute("aa", "大炮");//作用域仅限于当前会话(浏览器的打开和关闭之间称为一次会话)
application.setAttribute("aa", "开炮");//作用域仅限于当前web应用(服务器的打开和关闭之间有效)
---域对象的作用范围
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!-- 引入jstl的标签库 -->
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<center>
<!-- 下拉框的模糊查询 提示
<select name="1m">
<option value="gname">商品名称</option>
<option value="ginfo">商品描述</option>
</select>
-->
<form action="myload.jsp" method="post">
商品名:<input type="text" name="str" value="${str}">
<input type="submit" value="查询">
</form>
<br>
<table border="1px">
<tr>
<td>商品序号</td>
<td>商品名称</td>
<td>商品价格</td>
<td>操作</td>
</tr>
<!-- 判断集合是否为空 如果为空 就转发到加载数据的页面 -->
<c:if test="${empty myls}">
<jsp:forward page="myload.jsp"></jsp:forward>
</c:if>
<!-- 循环遍历 for(goods g:ls ) -->
<c:forEach items="${myls}" var="g">
<tr>
<td>${g.gid}</td>
<td>${g.gname}</td>
<td>${g.gprice}</td>
<td><a href="preupdate.jsp?gid=${g.gid}">修改</a></td>
</tr>
</c:forEach>
</table>
<div>
【${pageIndex}/${max}】
<a href="myload.jsp?pid=1&str=${str}">首页</a>
<a href="myload.jsp?pid=${pageIndex>1?pageIndex-1:1}&str=${str}">上一页</a>
<a href="myload.jsp?pid=${pageIndex<max?pageIndex+1:max}&str=${str}">下一页</a>
<a href="myload.jsp?pid=${max}&str=${str}">末页</a>
</div>
</center>
</body>
</html>
-----EL表达式运用于分页
把pageIndex存到request中 后期取值${pageIndex}
运用EL表达式取值
<%@page import="com.zking.entity.goods"%>
<%@page import="java.util.List"%>
<%@page import="com.zking.biz.GoodsBiz"%>
<%@page import="com.zking.biz.IGoodsBiz"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//做数据到加载
//表示层 调用 业务逻辑层 biz
IGoodsBiz igb=new GoodsBiz();
int pageIndex=1;
int pageSize=2;
//接收str关键字
String str=request.getParameter("str");
if(str==null){
str="";//相当于查询全部
}
//把str存到request中
request.setAttribute("str", str);
//接收pid
String pid=request.getParameter("pid");
if(pid!=null){//点了x页
pageIndex=Integer.parseInt(pid);
}
//把pageIndex存到request中 后期取值${pageIndex}
request.setAttribute("pageIndex", pageIndex);
//调用查询全部的方法
List<goods> ls=igb.getAllByPage(pageIndex, pageSize,str);
//调用biz层的求最大页码的方法
int max=igb.getMax("goods where gname like '%"+str+"%'", pageSize);
//把max存到request中
request.setAttribute("max", max);
//做判断
if(ls.size()!=0){//说明有数据
//把集合存到request中
request.setAttribute("myls", ls);//键 值${myls}
//只能转发 因为存在request里的数据仅转发有效
request.getRequestDispatcher("index.jsp").forward(request, response);
}
else{
System.out.print("集合为空—检查DbHelper,数据库里是否有数据,是否提交,dao/biz");
}
%>
---调用方法并赋值 并且保存到request中 后期取值用EL表达式
表达式取域对象的值:举例
//实例化一个商品对象
goods g=new goods();
g.setGname("尽快");
g.setGprice(5);
List<goods> ls=new ArrayList<goods>();
//把对象放进集合中
ls.add(g);
//实例化一个商品对象
goods g1=new goods();
g.setGname("即可");
g.setGprice(9);
//把对象放进集合中
ls.add(g1);
//先集合存起来
request.setAttribute("myls", ls);
<h3>EL表达式取域对象的值</h3>
1.${pageScope.aa}<br>
2.${requestScope.aa}<br>
3.${sessionScope.aa}<br>
4.${applicationScope.aa}<br>
<h3>EL运算符</h3>
${1+2}_${5>2}_
${empty myls}<!--判断是否为空 -->
<h3>EL表达式取对象的属性值</h3>
<!--能够点出来的一定是在实体类存在的属性名 切记 -->
<%-- ${goods.gname} --%>
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@page import="com.zking.entity.goods"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!--引入jstl标签库 -->
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>3.JSTL(jsp标准标签库)</h2>
<h3>通用标签:set out remove</h3>
<c:set var="sb" value="${665+1}" scope="session"></c:set>
<c:out value="${sb}"></c:out><br>
移除前:${sb}<br>
<c:remove var="sb" scope="request"/>
移除后:${sb }
<h3>条件标签:if</h3>
<c:if test="${empty myls}">
就是哈哈哈
</c:if>
<h3>迭代标签:forEach</h3>
打印1-10的奇数:<br>
<c:forEach begin="1" end="10" var="i" step="2">
${i}
</c:forEach>
<!-- 遍历对象集合for(goods g:ls){} -->
<c:forEach items="${myls}" var="g">
${g.gname}
</c:forEach>
<!-- split 用逗号分割 -->
<c:forTokens items="aa,bb,cc,dd" delims="," var="i">
${i }
</c:forTokens>
<pre>
<pre>
</body>
</html>
JSTL例子
<c:if test="${empty myls}">
<jsp:forward page="myload.jsp"></jsp:forward>
</c:if>
<!-- 循环遍历 for(goods g:ls ) -->
<c:forEach items="${myls}" var="g">
<tr>
<td>${g.gid}</td>
<td>${g.gname}</td>
<td>${g.gprice}</td>
<td><a href="preupdate.jsp?gid=${g.gid}">修改</a></td>
</tr>
</c:forEach>
<!-- 判断集合是否为空 如果为空 就转发到加载数据的页面 -->
//运用JSTL判断是否为空