El表达式

EL表达式

读取requestScope的对象

  1. 编写一个servlet,转发到显示页面
  2. 在requestScope里面存现一个Person对象
  3. 在显示页面使用el表达式将对象去取


public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        response.setContentType("text/html");
        //设置request和response编码格式
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        PrintWriter out = response.getWriter();
        Person person = new Person("王二",99,"男");

        request.setAttribute("person", person);

        request.getRequestDispatcher("/el/getElTest01.jsp").forward(request, response);

        out.flush();
        out.close();
    }

显示页面

  1. 可以通过“ . ”直接获取person的属性值
  2. person.age 相当于调用person的age的get方法
    ----获取requestScope里面的person对象-------
        ${requestScope.person.name }<br>   
        <!-- 
            直接获取person.xxx,没有指定从哪个域对象开始取值
            从pageScope, requestScope,sessionScope,applicationScope开始取值

         -->
        ${person.age +1 }<br> 
--------------------Boolean表达式---------------------------------<br> 
        ${person1 == null } &nbsp; person1在所有域里面都为null <br>
        ${person != null }   person不为null<br> 
        ${empty person.age}  判断age是否为null<br> 
        ${person != null ? "正确" : "错误"}  <br>

结果:


三目运算符的使用

    <input type="radio" name="gender" ${person.sex=="男"? "checked":" "}>男 
    <input type="radio" name="gender" ${person.sex=="女"? "checked":" "}>女

结果:


获取Map集合里面的值

    <%
            //创建一个map集合
            Map<String,String> map = new HashMap<String,String>();
            //向map集合添加元素
            map.put("k1", "v1");
            map.put("k2", "v2");
            map.put("k2", "v2");

            //将map集合放到requestScope域里面
            request.setAttribute("map", map);

         %>

        <!-- 去取map的k1的值 -->

        map集合里面k1的值为:${map.k1 };


获取请求头

    <h3>获取请求头</h3>
        获取请求头${header}<br><br><br>
        获取请求头的Accept:${header.Accept}<br>
        <%-- 当获取Accept-Encoding,"${header.Accept-Encoding}"这样写会报错,其中的“-”是特殊符号  --%>
        获取请求头的Accept-Encoding:${header["Accept-Encoding"]} <br>
        获取请cookie对象:${cookie }<br>
        获取cookie.JSESSIONID的值:${cookie.JSESSIONID.value }<br>
        获取请求方式:${pageContext.request.method }


web.xml文件中配置初始化参数

web.xml文件
<context-param>
    <param-name>name</param-name>
    <param-value>张三</param-value>
</context-param>
获取初始化参数
取web.xml的初始化参数:${initParam.name }

  • 域对象重小到大的排序
    pageScope , requestScope,sessionScope,applicationScope

pageScope在当前页有效,相当于this,不管是转发还是重定向都会丢失属性和参数。

  • ${param.name}
      name: "${param.name }"<br>
    //相当于
    <%
        out.println(request.getParameter("name"));
     %>
  • age: ${param.age2 + 10}可以进行类型转换,将String装换成Int
 age: ${param.age2 + 10}<br>
     <%

      String age = request.getParameter("age2");

        Integer.parseInt(age);
     %>
  • ${paramValues.color } 接收数组类型
  color: "${paramValues.color }"<br>

    <%
        String[] color = request.getParameterValues("color");
     %>
  • ${applicationScope.time } 获取 applicationScope里面的time对象
    ${applicationScope.time }

    <%
        application.getAttribute("time");
     %>
  • ${sessionScope.person.name }接收实体对像可以采用联级的方式来获取属性值

    Person对像用于测试


重域对象里面取值的问题

            Person personSession = new Person();

            personSession.setAge(25);
            //这里是sessionScope里面的
            session.setAttribute("perScope", personSession);

            Person personRequesr = new Person();

            personRequesr.setAge(20);

            request.setAttribute("perScope", personRequesr);


  • ${perScope.age }先重小范围属性小的开始查找当小的范围查找到就取出(key,value)
    所以age = 25

//指定重session域对象,里面取出person在取出name
sessionAttrtubite: ${sessionScope.person.name }<br>
    <!-- 对于key有特殊符号的要使用[] -->
    sessionAttrtubite: ${sessionScope["com.zx.entity.Person"].name }<br>
  • ${sessionScope.person.name }解析

    1. sessionScope进入session的域对象里面
    2. seesionScope.person调用getAttribute(String s)
    3. sessionScope.person.name调用Person的getName方法
  • “${paramValues.color[0]}获取第一个数组

  • ${pageContext.request.contextPath }获取web Application的名称
    pageContext即为pageContext类型,但只能是只读属性,就可以一直的.下去

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值