JavaWeb域对象&EL表达式&JSTL库

目录

1.四大域对象 

 2.EL表达式的使用

EL表达式中的隐式对象(域对象)

3.JSTL标准标签库的使用步骤

标签的基本使用:


1.四大域对象 

JavaWeb域对象&EL表达式&JSTL库_第1张图片

    page域(pageContext):只能作用于当前页面,既不能用来做做转发的数据分享,也不能做重定向的数据分享。
    
    request域:只能作用于同一个请求的数据共享,所以只能在请求的转发中使用。
    
    session域:只能作用于一次对话中共享数据(一次对话:用户打开浏览器,浏览多个web站点后,关闭该浏览器),转发和重定向都可以使用
    
    application域:只能在同一个web应用中使用。(全局的)

代码展示:

<%
		pageContext.setAttribute("杨过", "小笼包");
		request.setAttribute("张无忌", "赵敏");
		session.setAttribute("风清扬", "海飞丝");
		application.setAttribute("黄回", "坤坤");
	%>
	<%
		out.println(pageContext.getAttribute("杨过") + "
"); out.println(request.getAttribute("张无忌") + "
"); out.println(session.getAttribute("风清扬") + "
"); out.println(application.getAttribute("黄回") + "
"); %> <% //request.getRequestDispatcher("demo2.jsp").forward(request, response); %>

获取域对象的值:

<%=pageContext.getAttribute("杨过") %>
<%=request.getAttribute("张无忌") %>
<%=session.getAttribute("风清扬") %>
<%=application.getAttribute("黄回") %>

运行结果:

JavaWeb域对象&EL表达式&JSTL库_第2张图片

 2.EL表达式的使用

2.1 概述
          EL 是 JSP 表达式语言,全称是 ExpressionLanguage,使用 EL 的目的是简化在 JSP 中访问变量的方式,简单静态 HTML 与 Java 代码的耦合。
          

2.2 基本语法格式
        ${ EL Expression}

2.3 示例代码
        ${ "Helloworld" }   // 输出字符串常量
        ${  str  }           // 输出字符串变量 str 的值
        ${ 3 + 2 }           // 输出 3+2 的结果
        ${ user.name}          // 输出 user 对象的 name 属性
        ${user["name"] }    // 同上
        ${  sessionScope ["user"].name }  // 同上
        ${user.name}        //访问对象 user 的 getName () 方法以得到 name 成员的值。
        ${list[1]}            //访问 list 对象的第二项。
        ${map["key"]}         //访问 map 指定键的值。
        
 2.4 EL表达式中的操作符
        (1)算术操作符 (+,-,*,/,%)
        
        (2)逻辑操作符 (&&,||,! 或 and,or,not )
        
        (3)比较操作符 (>,>=,<,<=,==,!==)  可以自动转换数据类型
        
        (4)空操作符 (empty)    当值为 null 时返回 true

代码展示:

<%
pageContext.setAttribute("值1", "键1");
request.setAttribute("值2", "键2");
session.setAttribute("值3", "键3");
application.setAttribute("值4", "键4");

%>

通过EL表达式的方式去获取域对象所保存的值

${值1} <%=pageContext.getAttribute("值1") %> ${"值1"}

通过EL表达式获取数组,集合所保存的值

<% String[] names = {"黄回","胡庆邦","谢文建","廖加俊"}; session.setAttribute("names",names); List list = new ArrayList(); list.add("张无忌"); session.setAttribute("list",list); Map maps=new HashMap(); maps.put("刘亦菲", "小老婆"); session.setAttribute("maps",maps); List list2 = new ArrayList(); list2.add(new Student("东方不败",18)); session.setAttribute("list2",list2); %> ${names[0]}; ${list[0]}; ${maps.刘亦菲}; ${list2[0].name};

运行结果:

JavaWeb域对象&EL表达式&JSTL库_第3张图片

EL表达式中的隐式对象(域对象)

目的:根据指定隐式对象拿到键获取值

JavaWeb域对象&EL表达式&JSTL库_第4张图片

 代码展示:

pageScope/requestScope/sessionScope/applicationScope



param 对象 paramValues也可获取指定值 <% pageContext.setAttribute("zkingzz", "小笼包"); request.setAttribute("zkingzz", "赵敏"); session.setAttribute("zkingzz", "海飞丝"); application.setAttribute("zkingzz", "坤坤"); %>

${zkingzz }

${sessionScope.zkingzz }

 这两者获取的值是一样的


${zkingzz }<%=request.getParameter("zkingzz") %>

3.JSTL标准标签库的使用步骤

1.导入jar  2个
2.利用taglib指令引入JSTL核心标签库依赖
       prefix="c"  给JSTL命名为c标签
       uri  核心标签库    依赖路径

    --通用标签:set out remove
    --条件标签:if  if...else
    --迭代标签:forEach   for循环

3.out,set,remove,if,foreach

标签的基本使用

out标签的使用

<% session.setAttribute("username", "admin"); %> ${username }

set标签的使用

remove标签的使用

移除前:
移除后:

if标签的使用(JSTL中有if没有else) if(){}

这是OK的 这是不OK的

foreach标签

${i }-----${sb.index }----${sb.count }

 forEach案例



<%
	List listStudents = new ArrayList();
	listStudents.add(new Student("aa",12));
	listStudents.add(new Student("bb",12));
	listStudents.add(new Student("cc",12));
	listStudents.add(new Student("ee",12));
	listStudents.add(new Student("dd",12));
	listStudents.add(new Student("ff",12));
	session.setAttribute("listStudents", listStudents);
%>

	${stu.name }-----${stu.age }

你可能感兴趣的:(eclipse,jar)