EL :EL表达式主要用于获取数据、执行运算、获取对象、调用java方法;

获取数据

语法:"${标识符}"

会调用pageContext.findAttribute方法,从page、request、session、application四个域中获取对象,若找不到会返回"",是空字符串而不是null;

执行运算

语法:${运算表达式}

获取对象

<body>
${pageContext}
<% pageContext.setAttribute("name","lzj01"); %>
${pageScope.name}
<% request.setAttribute("name", "lzj02");%>
${requestScope.name}
<% session.setAttribute("name","lzj03");%>
${sessionScope.name}
<% application.setAttribute("name","lzj04");%>
${applicationScope.name}
<%--请求时增加参数name = lzj--%>
${param.name}
<%--请求时增加参数name = lzj&name = --%>
${paramValues.name[]}
${paramValues.name[]}
<%--获取所有信息头信息--%>
${header.Accept} ${header["Accept-Encoding"]}
${headerValues.Accept[]}
<%--获取cookie对象的值,还需.value--%>
${cookie.JSESSIONID.value}
<%--其中xxx是在web.xml配置参数时的<param-name>所设置的名字--%>
${initParam.xxx}
<form
action="${pageContext.request.contextPath}/servlet/Servlet"
method="post">
<input type="text" name="username" value="${param.username}">
<input type="submit" value="注册">
</form>

再去配置下Servlet的代码文件即可;

调用java方法

语法:${prefix:method(params)}

这个调用类似于自定义标签,其中prefix为jsp页面引用taglib指令时prefix属性所设置的名称,method是在WEB-INF目录下.tld文件里<function>元素里的子元素<name>所定义的,params是调用该java方法时输入的参数;

也可自己开发函数后通过EL调用;

首先编写方法,java类;后编写标签库tld文件,这里需要知道的元素是:

<uri> 元素用指定该TLD文件的URI,在JSP文件中需要通过这个URI来引入该标签库描述文件;

<function>元素用于描述一个EL自定义函数,其中包含<name>、<function-class>、<function-signture>子元素;

<name>子元素用于指定EL自定义函数的名称。

<function-class>子元素用于指定完整的Java类名,
<function-signature>子元素用于指定Java类中的静态方法的签名,方法签名必须指明方法的返回值类型及各个参数的类型,各个参数之间用逗号分隔。

最后再痛JSP页面引用EL表达式进行调用就可以了;

写到这,相信大家会立马知道一定存在跟核心标签库一样,EL也有开发了一套自己的函数库,下面就来介绍EL函数库把o(╥﹏╥)o

同样地,MyEclipse自带JSTL开发包,该包下有对应的tld描述文件;

在JSP页面中使用JSTL定义的EL函数:<%@taglib uri = "htttp//java.sun.com/jsp/jstl/functions" prefix = "fn" %>

常使用的函数:

<body>
<%--toLowerCase函数:转小写形式--%>
${fn:toLowerCase("Www.BAIdu.COM")}
<%--toUpperCase函数:转大写形式--%>
${fn:toUpperCase("Www.BAIdu.COM")}
<%--trim函数:删除字符串的首尾空格--%>
${fn:trim( "Www.BAIdu.COM" )}
<%--length函数:计算集合、数组、字符串的字符个数--%>
${fn:length("Www.BAIdu.COM")}
<%--split函数:以某个分隔符分割字符串,并已字符串数组的形式返回,第一个参数是要分割的字符串,第二个参数是分隔符--%>
${fn:split("Www.BAIdu.COM",".")}
<%--join函数:以指定一个分隔符,将一个字符串数组中的字符串连接起来,第一个参数是要合并的数组,第二个参数是分隔符--%>
<% String[] Lzj = {"Www","BAIdu","COM"};
pageContext.setAttribute("lzj",lzj);
%>
${fn:join(lzj,".")}
<%--indexOf函数:表示指定字符串在一个字符串中第一次出现的索引,如不包含,返回-,第一参数表示在哪个字符串,第二参数表示指定哪个字符串--%>
${fn:indexOf("Www.BAIdu.COM","BAI")}
<%--contains/containsIgnoreCase函数:是否对大小写敏感,检测第一参数穿进去的字符串是否包含第二参数传进去的字符串,返回值是true或false,若第二参数传一个空字符串,则返回true--%>
${fn:contains("Www.BAIdu.COM","BAI")}
<%--startsWith/endsWith函数:是否以某个字符串为开始/结尾,返回值是true或false--%>
${fn:startsWith("Www.BAIdu.COM","BAI")}
${fn:endsWith("Www.BAIdu.COM","COM")}
<%--replace函数:3个参数,第一参数:指定操作字符串;第二参数:指定被替换字符串;第三参数:指定替换字符串--%>
${fn:replace("Www.BAIdu.COM",".",",")}
<%--substring函数:截取字符串的子字符串,3个参数,第一参数:指定操作字符串;第二参数:指定截取开始点(包含);第三参数:指定截取结束点(不包含)--%>
${fn:substring("Www.BAIdu.COM","","")}
<%--substringAfter/substringBefore函数:截取某个字符串之后的子字符串/之前的子字符串--%>
${fn:substringAfter("Www.BAIdu.COM",".")}
${fn:substringBefore("Www.BAIdu.COM",".")}

java_第一年_JavaWeb(14)的更多相关文章

  1. java_第一年_JavaWeb(13)

    JSTL标签库——核心标签库 为了弥补html标签的不足,为了更加方便地在jsp页面中使用java逻辑代码,JSTL标签库因运而生,而其中的佼佼者,被恩宠最多的就是核心标签库了: 核心标签库从功能上可 ...

  2. java_第一年_JavaWeb(11)

    自定义标签:主要是用来移除JSP页面中的java代码. 先从一个简单的案例了解其怎么移除代码: 一个正常的jsp页面: <%@ page language="java" pa ...

  3. java_第一年_JavaWeb(15)

    Filter过滤器,Servlet API 中提供了一个Filter接口,用于实现用户在访问某个目标资源前对其进行拦截: 拦截原理:web服务器通过Filter接口调用doFilter方法,会传递一个 ...

  4. java_第一年_JavaWeb(12)

    SimpleTag标签 定义了五个方法:setJspContext.setJspBody.setParent和getParent以及最重要的doTag方法(完成了所有的业务逻辑): setJspCon ...

  5. java_第一年_JavaWeb(10)

    JavaWeb的两种开发模式 JSP+JavaBean框架:JavaBean负责封装数据.提供方法,JSP负责处理用户请求和显示数据:只能开发较为简单的业务: JSP+JavaBean+Servlet ...

  6. java_第一年_JavaWeb(9)

    JavaBean是一个遵循某种特定写法的Java类,有以下特点: 必需具有一个无参的构造函数 属性必需私有化 私有化的属性必需通过public类型的方法暴露给其它程序,其方法命名也有一定的规范 范例: ...

  7. java_第一年_JavaWeb(8)

    前面说到,JSP在运行时会被编译成Servlet源代码,通过_jspServlet方法处理请求,此时该方法会传递和提供9个与web开发相关的对象进行使用,开发人员在JSP页面通过对这些变量即可引用这9 ...

  8. java_第一年_JavaWeb(7)

    JSP执行过程 客户端发出请求访问JSP文件 JSP Container将要访问的JSP文件转译为Servlet的源代码(转译时期),并将其编译成.class文件(编译时期): 执行编译后的.clas ...

  9. java_第一年_JavaWeb(6)

    会话 会话:浏览器从打开一个进程访问服务器到该浏览器关闭,我们称之为一个会话: 在浏览器和服务器交互期间,会不可避免地产生一些数据,而为了为每个用户保存其对应的数据,可使用两种技术:Cookie和Se ...

随机推荐

  1. DevExpress ASP.NET Core Controls 2019发展蓝图(No.5)

    本文主要为大家介绍DevExpress ASP.NET Core Controls 2019年的官方发展蓝图,更多精彩内容欢迎持续收藏关注哦~ [DevExpress ASP.NET Controls ...

  2. SSM常用配置文件头模板

    web.xml文件头 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=&q ...

  3. PHP环境安全性能检查

    PHP环境安全性能检查 PHP在Linux环境下安全配置是一个复杂的过程,其中涉及到很多的细节设置,在这里发出来一个脚本,通过这个脚本来检测你的PHP环境是否存在安全隐患,从而针对这些对你的PHP环境 ...

  4. [bzoj]2705: [SDOI2012]Longge的问题[数论][数学][欧拉函数][gcd]

    [bzoj]P2705 OR [luogu]P2303 Longge的问题 Description Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题.现在问题来了:给定一个整数N,你需 ...

  5. qbzt day2 上午

    内容提要 贪心 分治 分块 搜索 接着昨天的讲 过河问题 考虑AB是最快的人,CD是最慢的人,要把CD两个人送过河,只有两种方案,牵扯到四个人,并且n个规模的原问题化成了n-2个规模的子问题 那么最后 ...

  6. 用Vue来实现音乐播放器(十八):右侧快速入口点击高亮

    问题一:当我们点击右侧快速入口的时候  被点击的地方高亮 首先我们要知道右侧快速入口是为什么高亮??因为当watch()监控到scrollY的变化了的时候  将scrollY的值和listHeight ...

  7. python生成requirements.txt 导出项目依赖

    使用pip freeze $ pip freeze > requirements.txt 这种方式是把整个环境中的包都列出来了,如果是虚拟环境可以使用. 通常情况下我们只需要导出当前项目的req ...

  8. VMware vMotion 配置要求

    目录 目录 vCenter 支持 vMotion 的前提 条件 vMotion 的主机配置 vMotion 共享存储器要求 vMotion 网络要求 最后 vCenter 支持 vMotion 的前提 ...

  9. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_01 File类_5_File类获取功能的方法

    获取的方法 GetAbsolutepath 传递一个相对路径进去,查看输出的结果 输出的还是绝对的路径 getPath 获取的就是构造方法中传递的路径,可以传递绝对路径也可以传递相对路径 实际上toS ...

  10. 多进程---multiprocessing/threading/

    一.多进程:multiprocessing模块 多用于处理CPU密集型任务 多线程 多用于IO密集型任务 Input Ouput 举例: import multiprocessing,threadin ...