JAVA-EE使用EL表达式在list和数组以及set等集合中获取值返回浏览器------计算机网络经典

发布于:2023-10-25 ⋅ 阅读:(139) ⋅ 点赞:(0)
EL表达式
EL表达式是为了代替JSP的java代码,让JSP看起来更加整洁美观,JSP中夹杂着各种java代码就会让文件混乱不好维护
第一功效:从某个域中取数据,将取出的数据转成字符串,将字符串输出到浏览器
EL表达式是属于JSP语法的一种
在没有指定范围的情况下,EL表达式优先从最小的范围中取值
EL表达式有四个隐式的范围对象pageScope,applicationScope,requestScope,sessionScope
这四个隐式的范围对象可以指定我们取值的域
EL表达式表示取值还可以使用[]包括的方式来实现
[]这个主要是为了解决我们的参数内有.的情况下使用的,针对特殊字符设计
<%@ page contentType="text/html;charset=UTF-8" isELIgnored="false" %>
忽略EL表达式,设置后就无法使用EL表达式取值
如果是针对某一个标签禁用EL表达式,就直接用\就可以了
JSTL标签库,Filter过滤器,Listener监听器
EL表达式
EL表达式是为了代替JSP的java代码,让JSP看起来更加整洁美观,JSP中夹杂着各种java代码就会让文件混乱不好维护
第一功效:从某个域中取数据,将取出的数据转成字符串,将字符串输出到浏览器
EL表达式是属于JSP语法的一种
在没有指定范围的情况下,EL表达式优先从最小的范围中取值
EL表达式有四个隐式的范围对象pageScope,applicationScope,requestScope,sessionScope
这四个隐式的范围对象可以指定我们取值的域
EL表达式表示取值还可以使用[]包括的方式来实现
[]这个主要是为了解决我们的参数内有.的情况下使用的,针对特殊字符设计
<%@ page contentType="text/html;charset=UTF-8" isELIgnored="false" %>
忽略EL表达式,设置后就无法使用EL表达式取值
如果是针对某一个标签禁用EL表达式,就直接用\就可以了
JSTL标签库,Filter过滤器,Listener监听器
<%@ page import="com.bjpowernode.oa.web.Pojo.Dept" %>
<%@ page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" isELIgnored="false" language="java" %>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>欢迎页</title>
</head>
<body>
    <h1>用户登录</h1>
    <hr>
    <form action="<%=request.getContextPath()%>/user/login" method="post">
        username:<input type="text" name="username"><br>
        password:<input type="password" name="password"><br>
        10天免登录:<input type="checkbox" name="flag" value="1"><br>
        <input type="submit" value="login">
    </form>
    <h1>
        <a href="<%=request.getContextPath()%>/cookie/generate">
            服务器生成Cookie,然后把Cookie传给浏览器,浏览器收到,再放到客户端上
        </a>
    </h1>
    <h1>
        <a href="<%=request.getContextPath()%>/sendCookie">
            浏览器发送Cookie给服务器
        </a>
    </h1>
    <%
        Map<String, Object> userMap = new HashMap<>();
        userMap.put("username","zhangRui");
        userMap.put("password","123");
        userMap.put("dept",new Dept("1","2","3"));
        request.setAttribute("userMap",userMap);
        String[] nameArray = {"zhangSan","WangWu"};
        request.setAttribute("nameArray",nameArray);
        Dept[] depts = {new Dept("123","321","456"),new Dept("456","123","321")};
        request.setAttribute("depts",depts);
        List<String> list = new ArrayList<>();
        list.add("123");
        list.add("456");
        request.setAttribute("list",list);
        Set set = new HashSet();
        set.add("a");
        set.add("b");
        request.setAttribute("set",set);
    %>
    ${requestScope.userMap.username}
    ${requestScope.userMap["password"]}
    ${requestScope.userMap.dept.loc}
    ${requestScope.nameArray}
    ${requestScope.nameArray[1]}
<%--    EL表达式取不出数据直接进行空处理,不会报错--%>
<%--    取出数组的第二个的loc属性--%>
    ${requestScope.depts[1].loc}
<%--    取出list的元素--%>
    ${requestScope.list}
    ${requestScope.list[0]}
<%--    取出set内容--%>
    ${requestScope.set}
<%--    set[0]取不出值,因为她是无序集合,没法取值--%>
<%--    ${requestScope.set[0]}--%>
<%--如果是针对某一个标签禁用EL表达式,就直接用\就可以了--%>
    \${requestScope.set}
</body>
</html>
<%@ page import="com.bjpowernode.oa.web.Pojo.Dept" %>
<%@ page import="java.util.*" %>
<%@ page contentType="text/html;charset=UTF-8" isELIgnored="false" language="java" %>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>欢迎页</title>
</head>
<body>
    <h1>用户登录</h1>
    <hr>
    <form action="<%=request.getContextPath()%>/user/login" method="post">
        username:<input type="text" name="username"><br>
        password:<input type="password" name="password"><br>
        10天免登录:<input type="checkbox" name="flag" value="1"><br>
        <input type="submit" value="login">
    </form>
    <h1>
        <a href="<%=request.getContextPath()%>/cookie/generate">
            服务器生成Cookie,然后把Cookie传给浏览器,浏览器收到,再放到客户端上
        </a>
    </h1>
    <h1>
        <a href="<%=request.getContextPath()%>/sendCookie">
            浏览器发送Cookie给服务器
        </a>
    </h1>
    <%
        Map<String, Object> userMap = new HashMap<>();
        userMap.put("username","zhangRui");
        userMap.put("password","123");
        userMap.put("dept",new Dept("1","2","3"));
        request.setAttribute("userMap",userMap);
        String[] nameArray = {"zhangSan","WangWu"};
        request.setAttribute("nameArray",nameArray);
        Dept[] depts = {new Dept("123","321","456"),new Dept("456","123","321")};
        request.setAttribute("depts",depts);
        List<String> list = new ArrayList<>();
        list.add("123");
        list.add("456");
        request.setAttribute("list",list);
        Set set = new HashSet();
        set.add("a");
        set.add("b");
        request.setAttribute("set",set);
    %>
    ${requestScope.userMap.username}
    ${requestScope.userMap["password"]}
    ${requestScope.userMap.dept.loc}
    ${requestScope.nameArray}
    ${requestScope.nameArray[1]}
<%--    EL表达式取不出数据直接进行空处理,不会报错--%>
<%--    取出数组的第二个的loc属性--%>
    ${requestScope.depts[1].loc}
<%--    取出list的元素--%>
    ${requestScope.list}
    ${requestScope.list[0]}
<%--    取出set内容--%>
    ${requestScope.set}
<%--    set[0]取不出值,因为她是无序集合,没法取值--%>
<%--    ${requestScope.set[0]}--%>
<%--如果是针对某一个标签禁用EL表达式,就直接用\就可以了--%>
    \${requestScope.set}
</body>
</html>