网站建设公司哪家好?该如何选择,平面设计教程网站,东营中移动网站建设,个人域名可以建公司网站吗文章目录 一、什么是EL表达式1、命令格式#xff1a;${作用域对象别名.共享数据} 二、EL表达式与作用域对象别名1、JSP文件可以使用的作用域对象2、EL表达式提供作用域对象别名3、EL表达式将引用对象属性写入到响应体4、EL表达式简化版 三、EL表达式与运算表达式四、EL表达式提… 文章目录 一、什么是EL表达式1、命令格式${作用域对象别名.共享数据} 二、EL表达式与作用域对象别名1、JSP文件可以使用的作用域对象2、EL表达式提供作用域对象别名3、EL表达式将引用对象属性写入到响应体4、EL表达式简化版 三、EL表达式与运算表达式四、EL表达式提供内置对象1、命令格式${param.请求参数名}2、命令格式${paramvalue.请求参数名[下标]} 一、什么是EL表达式 EL表达式全称为Expression Language意为表达式语言。它是Servlet规范中的一部分也是JSP2.0规范加入的内容。EL表达式的主要作用是用于在Java Web应用中访问和操作数据使得JSP页面能够摆脱Java代码块和JSP表达式实现代码的简化。 EL表达式的语法格式使用${}包裹其中${}内部可以是一个表达式或者变量名。其主要用于在页面中获取和展示数据执行算术运算访问JavaBean属性以及调用JavaBean方法等。此外EL表达式定义了一些隐式对象使得web开发人员可以轻松地获取对web常用对象的引用并获取这些对象中的数据。
EL表达式为Java Web开发提供了一种更为简洁、高效的方式来处理数据和逻辑使得开发过程更加便捷。
1、命令格式${作用域对象别名.共享数据}
EL表达式是式工具包提供一种特殊命令格式表达式命令格式。EL表达式在JSP文件上使用。负责在JSP文件上从作用域对象读取指定的共享数据并输出到响应体。
二、EL表达式与作用域对象别名
1、JSP文件可以使用的作用域对象
ServletContext application全局作用域对象HttpSession session会话作用域对象HttpServletRequest request请求作用域对象PageContext pageContext当前页作用域对象
这是JSP文件独有作用域对象。Servlet中不存在在当前页作用域对象存放的共享数据。仅能在当前JSP文件中使用不能共享给其他servlet或则其他JSP文件。
真实开发过程主要用于JSTL标签与JSP文件之间数据共享数据。 JSTL ------ pageContext ---- JSP 2、EL表达式提供作用域对象别名
JSP------------------------------EL表达式application---------------------${applicationscope.共享数据名}session-------------------------${sessionscope.共享数据名}request-------------------------${requestscope.共享数据名}pageContext------------------${pagescope.共享数据名}
3、EL表达式将引用对象属性写入到响应体
命令格式${作用域对象别名.共享数据名.属性名}。命令作用从作用域对象读取指定共享数据关联的引用对象的属性值并自动将属性的结果写入到响应体。属性名一定要去引用类型属性名完全一致(大小写)。EL表达式没有提供遍历集合方法因此无法从作用域对象读取集合内容输出。
4、EL表达式简化版
1、命令格式${共享数据名}
2、命令作用EL表达式允许开发人员开发时省略作用域对象别名
3、工作原理
EL表达式简化版由于没有指定作用域对象所以在执行时采用猜算法。首先到pageContext定位共享数据如果存在直接读取输出并结束执行。如果在pageContext没有定位成功到request定位共享数据如果存在直接读取输出并结束执行。如果在request没有定位成功到session定位共享数据如果存在直接读取输出并结束执行。如果在session没有定位成功到application定位共享数据如果存在直接读取输出并结束执行。如果在application没有定位成功,返回null pageContext—request—session—applicationl 4、存在隐患 容易降低程序执行速度容易导致数据定位错误。
5、设计目的就是简化从pageContext读取共享数据并输出难度。
6、EL表达式简化版尽管存在很多隐患但是在实际开发过程中开发人员为了节省时间一般都使用简化版拒绝使用标准版。
三、EL表达式与运算表达式
1、前提在JSP文件有时需要将读取共享数据进行一番运算之后将运算结果写入到响应体
2、运算表达式
数学运算。关系运算 !gt ge eq lt le !逻辑运算 ll !
四、EL表达式提供内置对象
EL表达式提供了一系列内置对象这些对象在无需创建的情况下即可直接使用它们与Map相似。
pageScope这是一个MapString,Object类型的对象。通过${pageScope.xxx}可以获取在pageContext中保存的数据。与pageContext.getAttribute(“xxx”)功能相同但在数据不存在时前者返回空字符串而后者返回null。header此对象用于获取请求头中的值。例如使用${header[User-Agent]}可以获取User-Agent请求头的值。initParam这个对象可以获得在web.xml中配置的context-param中的值。例如如果在web.xml中配置了一个名为name的context-param其值为tom那么通过${initParam.name}就可以得到tom。cookie这个对象用于获取cookie的值。例如通过${cookie.JSESSIONID.value}可以获取名为JSESSIONID的cookie的值。同时也可以通过${cookie.username.maxAge}获取cookie的生存时间。、fnfn对象提供了一些常用的函数可以方便地进行字符串处理、类型转换、日期处理等。pageContext在EL表达式中pageContext与JSP内置对象中的pageContext是同一个对象。通过这个对象可以获取到request、response、session、servletContext、servletConfig等对象。在EL中这些对象不是内置对象但可以通过pageContext获取。例如${pageContext.request}可以获取request对象。
除了上述对象外还有requestScope、sessionScope和applicationScope等对象它们分别对应不同的域(scope)可以用来获取不同域中的属性值。
EL表达式的内置对象提供了丰富的功能使得在JSP页面中可以方便地访问和操作各种数据。
1、命令格式${param.请求参数名}
从通过请求对象读取当前请求包中请求参数内容并将请求参数内容写入到响应体。
代替命令index.jsp
发送请求Http://localhost:8080/myweb/index.jsp?userNamemikepassword123
%string userName request.getParameter ( userName ) string password request.getParameter ( password)%%userName%%password%2、命令格式${paramvalue.请求参数名[下标]}
如果浏览器发送的请求参数是一个请求参数关联多个值此时可以通过paramvaues读取请求参数下指定位置的值并写入到响应体。
代替命令http://localhost:8080/myweb/index2.jsp?pageNo1pageNo2pagNo3此时pageNo请求参数在请求包以数组形式存在pageNo: [1,2,3]。
%string array[] request.getParametervalues ( pageNo)%第一个值%array [0]%第二个值%array [1]%