java代码094

虾米大王
• 阅读 586

code094.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>EL表达式</title>
</head>
<body>
<%-- JSP页面java代码方式 --%>
<%
if(session.getAttribute("userName") != null)
{
    out.println(session.getAttribute("userName").toString());    
}
%>

<br>
<%-- EL表达式,更简洁 --%>
${userName}

<br>
<%-- 由于EL表达式的语法以$开头,所以如果在JSP页面中要显示$开头字符串,请在前面加上反斜杠 --%>
\${userName}

<br>
<%-- 在EL表达式中,要输出一个字符串,可以将字符串放在一对单引号或双引号内 --%>
${'虾米大王'}
${"虾米大王"}

<br>
<%-- 如果想通过EL输入两个字符串数值的和,可以直接通过+号连接 --%>
${number1 + number2}

<br>
<%-- 在低版本的环境兼容,需要禁用EL --%>
<%-- 方式一,使用反斜杠 --%>
\${expression}
\${number}

<%-- 方式二,使用page指令,ture为忽略EL --%>
<%@ page isELIgnored="false" %>

<%-- 方式三,在tomcat服务器的web.xml中配置 ignored 元素 --%>
<%--
    以下为模拟代码,去除了尖括号
    jsp-config
        jsp-property-group
            url-pattern *.jsp /url-pattern
            el-ignored true /el-ignored
        /jsp-property-group
    /jsp-config

 --%>

<%--
    EL的保留关键

    and
    eq
    gt
    instanceof
    div
    or
    le
    false
    empty
    not
    It
    ge
 --%>

 <%--
     一下是在EL中运算符号的优先级 ,由高到低
     [] .
     ()
     -(负号) not ! empey
     * / div % mod
     < > <= >= lt gt le ge
     == != eq ne
     && and
     || or 
     ? :
--%>

<br>  
<%--
通过EL提供的 [] 和 . 运算符可以访问数据
--%>
  ${userInfo.id}
  ${userInfo[id]}

<%--
通过 [] 运算符可以获取数组的指定元素 .运算符不能
获取request范围中的数组arrBook的第一个元素
--%>
${arrBook[0]}

<%--
在EL中进行算术运算
+ 加 ${19+1} 20
- 减 ${66-30} 36
* 乘 ${52.1*10} 521.0
/ 除 ${5/2} 2.5
div 除 ${9 div 0} Infinity
% 求余 ${17%3} 2
mod 求余 ${15 mod 0} 抛出异常
--%>

<%--
在EL中判断对象是否为空
${empty expression}
--%>
<% request.setAttribute("user02", " "); %>
<% request.setAttribute("user03", null); %>
${empty user02}<br>
${empty user03}<br>

<%--
在EL中,提供了6种关系运算符。
== 等于 ${10 == 10} true
eq 等于 ${10 eq 10} true
!= 不等 ${10 != 10} false
ne 不等 ${10 ne 10} false
<  小于 ${7 < 6} false
lt 小于 ${7 lt 6} false
>  大于 ${7 > 6} true
gt 大于 ${7 gt 6} true
<= 小于等于 ${7 <= 6} false
le 小于等于 ${7 le 6} false
>= 大于等于 ${7 >= 6} true
ge 大于等于 ${7 ge 6} true

--%>

<%--
在EL中,提供的逻辑运算符
&& 与 ${true && false} false
and 与 ${true and false} false
|| 或 ${true || false} true
or 或 ${true or false} true
! 非 ${!true} false
not 非 ${not true} false


--%>

<%--
EL的隐含对象
提供了11个隐含对象,这些对象类似于JSP内置对象,
除PageContext是javaBean对象,对应于javax.servlet.jsp.PageContext类型外,
其他的隐含对象都对应于java.util.Map类型。


页面上下文对象pageContext
${pageContext.request}
${pageContext.request.serverPort}  //返回8080
${pageContext.response}
${pageContext.response.contentType} //返回 text/html;charset=utf-8
${pageContext.out}
${pageContext.out.bufferSize} //返回8192
${pageContext.session}
${pageContext.session.maxInactiveInterval} //返回 1800秒
${pageContext.exception}
${pageContext.exception.message} // 返回异常信息
${pageContext.page}
${pageContext.page.class} // 返回 class org.apache.jsp.index_jsp
${pageContext.servletContext}
${pageContext.servletContext.contextPath} // 返回 路径

--%>

<%--
访问作用域范围的隐含对象
即pageScope、requestScope、sessionScope、applicationScope。

--%>

<%--
在EL中,提供了6个访问环境信息的隐含对象。
param对象
在JSP页面中放置一个文本框
<input type="text" name="name">
提交表单后
${param.name}
如果文本框中输入中文,请在使用EL前,
request.setCharacterEncoding("uft-8");

paramValues对象
在JSP页面中,放置一个复选框组
<input type="checkbox" name="affect" value="游泳">
<input type="checkbox" name="affect" value="跑步">
表单提交后,
request.setCharacterEncoding("utf-8");
${paramValues.affect[0]}
${paramValues.affect[1]}
在应用param和paramValues时,如果指定参数不存在,返回空串,不是null

header对象
用于获取HTTP请求的header的值,有多个不同的值时,就使用
headerValues对象。
${header.connection}
${header["connection"]}
${header["user-agent"]}

initParam对象
用于获取web应用初始化参数的值
在tomcat服务器的web.xml文件中设置一个初始参数
<context-param>
    <param-name>author</param-name>
    <param-value>lucy</param-value>
</context-param>
${initParam.author}


cookie对象
在EL中,没有提供cookie保存值的方法,但是提供了访问由请求
设置的cookie的方法,
如果cookie中已经设定了一个username的值,可以通过
${cookie.username}来获取cookie对象。
要获取cookie的值,可以通过cookie对象的value属性。

定义和使用EL函数
一共3步骤
1、编写一个java类,并在该类中编写公用的静态方法,用于
实现自定义EL函数的功能。
2、编写标签库描述文件,对函数声明。文件扩展名为.tld,
保存在web应用的WEB-INF文件夹下。
3、在JSP页面中引用标签库,并调用自定义的EL函数,实现功能。

在定义和使用EL函数时常见的错误有3种:

1、没有指定完整的类型名而异常
解决方法是:在扩展名为.tld的文件中指定完整的类型名,如java.lang.String
2、在标签库的描述文件中输入了错误的标记而异常
如,<function-signature>错写为<function-signatrue>。
3、定义的方法不是静态方法而异常
解决方法是:修改方法为static。



--%>
</body>
</html>
点赞
收藏
评论区
推荐文章
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
java线程优先级
java中的线程优先级的范围是1~10,默认的优先级是5。10最高。MIN\_PRIORITY 1MAX\_PRIORITY10NORM\_PRIORITY5优先级高的获得cpu的几率更大些,不是优先级高的就先执行完,线程优先级随机特性在java中,线程的优先级具有继承性,例如A线程启动B线程,则A和B的优先级是一样的线程创建
Wesley13 Wesley13
3年前
java web中session简单的使用
1.jsp中操作session(String)request.getSession().getAttribute("username"); // 获取request.getSession().setAttribute("username", "xxx");  // 设置2.java中操作session//servlet中
Wesley13 Wesley13
3年前
SSH 阿里云服务器
1.在服务机上操作创建要远程登录的用户和密码sudoadduserusername正在添加用户“username”...正在添加新组“username”(1001)...正在添加新用户“username”(1001)到组“username”...创建主目录“/home/username”...
虾米大王 虾米大王
2年前
java代码097
code097.jspEL逻辑运算userName$userNamepwd$pwd\$userName!""&&(userName"大王")$userName!""&&(userName"大王")\$userName"tom"&&pwd"123"$userName"tom"&&pwd"123"
虾米大王 虾米大王
2年前
java代码006
code006.jsp隐藏注释的应用用户名:虾米大王部门:Javaweb部门权限:系统管理员
Stella981 Stella981
3年前
20180109Java位运算
一,Java位运算1.表示方法:  在Java语言中,二进制数使用补码表示,最高位为符号位,正数的符号位为0,负数为1。补码的表示需要满足如下要求。 (1)正数的最高位为0,其余各位代表数值本身(二进制数)。 (2)对于负数,通过对该数绝对值的补码按位取反,再对整个数加1。 2.位运算符位运算表达式由
可莉 可莉
3年前
20180109Java位运算
一,Java位运算1.表示方法:  在Java语言中,二进制数使用补码表示,最高位为符号位,正数的符号位为0,负数为1。补码的表示需要满足如下要求。 (1)正数的最高位为0,其余各位代表数值本身(二进制数)。 (2)对于负数,通过对该数绝对值的补码按位取反,再对整个数加1。 2.位运算符位运算表达式由
Wesley13 Wesley13
3年前
JSP中EL表达式的应用以及常用的方法
EL表达式   1、EL简介 1)语法结构    ${expression} 2)\\与.运算符   EL提供.和\\两种运算符来存取数据。   当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用\\。 例如:     ${us
虾米大王
虾米大王
Lv1
男 · java工程师
梦里相思,故国王孙路。
文章
100
粉丝
1
获赞
100