EL&jsp
JSP 2.0(java server pages):
EL表达式:
EL 算法(Arithmetic)表达式:
| EL Expression | Result |
| ${1} | 1 |
| ${1 + 2} | 3 |
| ${1.2 + 2.3} | 3.5 |
| ${1.2E4 + 1.4} | 12001.4 |
| ${-4 - 2} | -6 |
| ${21 * 2} | 42 |
| ${3/4} | 0.75 |
| ${3 div 4} | 0.75 |
| ${3/0} | Infinity |
| ${10%4} | 2 |
| ${10 mod 4} | 2 |
| ${(1==2) ? 3 : 4} | 4 |
EL 比较(comparions):
- Less-than (< or lt)
- Greater-than (> or gt)
- Less-than-or-equal (<= or le)
- Greater-than-or-equal (>= or ge)
- Equal (== or eq)
- Not Equal (!= or ne)
Numberic:
| EL Expression | Result |
| ${1 < 2} | true |
| ${1 lt 2} | true |
| ${1 > (4/2)} | false |
| ${1 gt (4/2)} | false |
| ${4.0 >= 3} | true |
| ${4.0 ge 3} | true |
| ${4 <= 3} | false |
| ${4 le 3} | false |
| ${100.0 == 100} | true |
| ${100.0 eq 100} | true |
| ${(10*10) != 100} | false |
| ${(10*10) ne 100} | false |
Alphabetic
| EL Expression | Result |
| ${'a' < 'b'} | true |
| ${'hip' > 'hit'} | false |
| ${'4' > 3} | true |
EL implicit object(内置对象):
- pageContext - the PageContext object
- pageScope - a Map that maps page-scoped attribute names to their values
- requestScope - a Map that maps request-scoped attribute names to their values
- sessionScope - a Map that maps session-scoped attribute names to their values
- applicationScope - a Map that maps application-scoped attribute names to their values
- param - a Map that maps parameter names to a single String parameter value
- paramValues - a Map that maps parameter names to a String[] of all values for that parameter
- header - a Map that maps header names to a single String header value
- headerValues - a Map that maps header names to a String[] of all values for that header
- initParam - a Map that maps context initialization parameter names to their String parameter value
- cookie - a Map that maps cookie names to a single Cookie object.
其中application、request、session,pageContext的获取方式都为 ${***}也可使用${***Scope.****}加快访问。
而param为页面参数对象,因此获取方式为 param['****']或者为param.***,多常见jsp页面之间自身传值或刷新时,参数获取。
※因jsp大多放在web-inf下,因此无法直接被访问。因此这种jsp(必须放在web-inf外)直接调用的方式不是很多见。
<input type="text" name="foo" value="${param.foo}" />
<a href="elLearn.jsp?foo=zhangsan">刷新自己</a>
header信息的展示 header['']或者为header.***:
${header.user-name}
${header.host}
cookie的获取方式为: ${cookie.****.name} ${cookie.****.value}
<%
Cookie cok = new Cookie("secondName", "wangliwei");
cok.setDomain("/");
response.addCookie(cok);
%>
${cookie.secondName.name}
${cookie.secondName.value}
JSP(Java Server Pages):
JSP 运行在服务端的语言,以 Java 语言作为脚本语言的,JSP 网页为整个服务器端的 Java 库单元提供了一个接口来服务于HTTP的应用程序。是一种动态网页开发技术。
JSP 基于Java Servlet API,以<% ... %>开头结束。
jsp的九大内置对象和作用域
request 请求对象 类型 javax.servlet.ServletRequest 作用域 Request
response 响应对象 类型 javax.servlet.SrvletResponse 作用域 Page
pageContext 页面上下文对象 类型 javax.servlet.jsp.PageContext 作用域 Page
session 会话对象 类型 javax.servlet.http.HttpSession 作用域 Session
application 应用程序对象 类型 javax.servlet.ServletContext 作用域 Application
out 输出对象 类型 javax.servlet.jsp.JspWriter 作用域 Page
config 配置对象 类型 javax.servlet.ServletConfig 作用域 Page
page 页面对象 类型 javax.lang.Object 作用域 Page
exception 例外对象 类型 javax.lang.Throwable 作用域 page
获取当前访问路径:${pageContext.requext.contextPath}
JSP Directive(指令)
JSP指令用来设置与整个JSP页面相关的属性。
<%@ directive attribute="value" %>
指令有3种:
| 指令 | 描述 | |
|---|---|---|
| <%@ page ... %> |
Page指令为容器提供当前页面的使用说明。一个JSP页面可以包含多个page指令。 定义页面的依赖属性,比如脚本语言、error页面、缓存需求等等 |
|
| <%@ include ... %> |
包含其他文件,这种是静态引入,即引入的jsp的路径必须指定好。jsp在形成时会将此include的jsp页面copy进来, 因此被引入的页面的tag-lib的prefix不能和当前页面重复。<c:important 和 <jsp:include 为动态引入, 即各自编译自己的jsp页面,在展现时再合为一体。适合将一个大的页面切割成几个部分,方便维护。 <%@ include file="./myJstl.jsp" %> |
|
| <%@ taglib ... %> | 引入标签库的定义,可以是自定义标签参见 JSTL-tagLib |
page 指令属性:
| 属性 | 描述 |
|---|---|
| buffer | 指定out对象使用缓冲区的大小 |
| autoFlush | 控制out对象的 缓存区 |
| contentType | 指定当前JSP页面的MIME类型和字符编码 |
| errorPage | 指定当JSP页面发生异常时需要转向的错误处理页面 |
| isErrorPage | 指定当前页面是否可以作为另一个JSP页面的错误处理页面 |
| extends | 指定servlet从哪一个类继承 |
| import |
导入要使用的Java类,作为当前使用类的引用类,注意类之间的使用顺序 <%@ page import="bean.Book" %> |
| info | 定义JSP页面的描述信息 |
| isThreadSafe | 指定对JSP页面的访问是否为线程安全 |
| language | 定义JSP页面所用的脚本语言,默认是Java |
| session | 指定JSP页面是否使用session |
| isELIgnored | 指定是否执行EL表达式 |
| isScriptingEnabled | 确定脚本元素能否被使用 |
写法如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ page errorPage="error.jsp" %>
<%@ page import="bean.Book" %> <% Book book = new Book(1234,"java","Denny","java content");
out.print(book.getBookAuthor());
%>
JSP 语法(Language)
| 名称(Xml格式) | 描述 | 对等 | Example |
<jsp:scriptlet> |
代码片段 | <%****%> |
<% int a=5; %> |
<jsp:declaration> |
声明变量,页面全局用 | <%!****%> |
<%! int i = 0; %> |
<jsp:expression> |
表达式,用于输出内容 | <%=****%> | <%= i %> |
| <%-- 注释 --%> | 注释,在html页面看不到 | <!--注释 --> html注释,页面上可以看到 | |
JSP Action(行为)
所有的动作要素都有两个属性:id属性和scope属性。
- id属性:
id属性是动作元素的唯一标识,可以在JSP页面中引用。动作元素创建的id值可以通过PageContext来调用。
- scope属性:
该属性用于识别动作元素的生命周期。 id属性和scope属性有直接关系,scope属性定义了相关联id对象的寿命。
scope属性有四个可能的值: (a) page, (b)request, (c)session, 和 (d) application
<jsp:action_name attribute="value" />
| 语法 | 描述 | Example |
|---|---|---|
| jsp:include | 在页面被请求的时候引入一个文件。 |
<jsp:include page="date.jsp" flush="true" /> |
| jsp:useBean | 寻找或者实例化一个JavaBean。 | <jsp:useBean id="books" class="bean.Book" /> <% books.setBookDes("java is content"); %> <jsp:setProperty property="bookAuthor" value="DennyZhao" name="books"></jsp:setProperty> <jsp:getProperty property="bookAuthor" name="books" /> <jsp:getProperty property="bookDes" name="books" /> |
| jsp:setProperty | 设置JavaBean的属性。 | |
| jsp:getProperty | 输出某个JavaBean的属性。 | |
| jsp:forward | 把请求转到一个新的页面。 |
<jsp:forward page="**" /> 仅可定向到项目内 相当于 <c:redirect url="***"/> 可定向到项目外链接 |
| jsp:plugin | 根据浏览器类型为Java插件生成OBJECT或EMBED标记。 |
java插件引入java类,Java组件可以是一个applet或一个JavaBeanplugin,动作有多个对应HTML元素的属性用于格式化Java 组件。param元素可用于向Applet 或 Bean 传递参数。 用于java在浏览器嵌入applet。 |
| jsp:element | 定义动态XML元素 | 相当于在html中自定义标签 |
| jsp:attribute | 设置动态定义的XML元素属性。 |
定义元素属性。<jsp:element><jsp:attribute /></jsp:element> 相当于 <input type="text" |
| jsp:body | 设置动态定义的XML元素内容。 |
<jsp:element name="inputX" > |
| jsp:text | 在JSP页面和文档中使用写入文本的模板 |
文本模板,内部只能放文本和el表达式其中el表达式中的<>要使用gt;lt来表示。 在新版本中已经去除了此属性。 |
EL&jsp的更多相关文章
- JSP(8)—EL案例和JSTL案例
1.EL案例 el.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" ...
- jsp中的JSTL与EL表达式用法
JSTL (JSP Standard Tag Library ,JSP标准标签库) JSTL标签库分为5类:JSTL核心标签库.JSTL函数标签库.数据库标签库.I18N格式化标签库.XML标签库. ...
- jsp&el&jstl mvc和三层架构
jsp:java在html中插入java 一.JSP技术 1.jsp脚本和注释 jsp脚本:(翻译成servlet,源码位置apache-tomcat-7.0.52\work\Catalina\loc ...
- 个人整理的jsp、EL表达式、JSTL标签库的笔记,少概念多实用,需要的留下邮箱,会第一时间分享原稿PDF给大家!
jsp 第一章 jsp介绍及对比servlet 作用: 动态网页技术,动态的从数据库获取数据 jsp和servlet的优缺点: jsp优点:页面表现方便,利于写html代码 jsp缺点:业务逻辑处理麻 ...
- JavaWeb——JSP表达式语言(EL)
1.JSP表达式语言(EL)用于在jsp从访问存储在JavaBean中的数据,例如 User ID: ${user.userId}<br /> 这里的${user.userId}就是JSP ...
- javaweb回顾第九篇EL表达式
前言:关于EL表示式开发用的非常多,现在我们回顾一下关于如果去操作EL表达式 1:EL表达式语法 所有EL表达式都是由{开始}结束,表达式中用.和[]操作符来访问数据比喻${user.userName ...
- Deformity JSP Webshell、Webshell Hidden Learning
catalogue . JSP基础语法 . JSP Lexer By Lua . Open Source Code Analyzers in Java . WEBSHELL Samples . she ...
- el和jstl
<%@page import="cn.bdqn.bean.News"%> <%@ page language="java" import=&q ...
- 正则表达式JSP实例
<%@ page language="java" import="java.util.*,cn.com.Person,cn.com.Adddress" p ...
随机推荐
- APP自动化测试各项指标分析
一.内存分析专项 启动App. DDMS->update heap 操作app,点几次GC dump heap hprof-conv转化 MAT分析 二.区分几种内存 VSS- Virtual ...
- 修改oracle系统参数spfile导致数据库无法启动解决
错误示范: SQL> alter system set nls_date_format='yyyy-mm-dd 24hh:mi:ss' scope=spfile;System altered.我 ...
- mysql 聚簇索引、非聚簇索引的区别
索引分为聚簇索引和非聚簇索引. 以一本英文课本为例,要找第8课,直接翻书,若先翻到第5课,则往后翻,再翻到第10课,则又往前翻.这本书本身就是一个索引,即"聚簇索引". 如果要找& ...
- shell教程-002:常见的Shell种类
Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本. Unix/Linux上常见的Shell脚本解释器有bash.sh.csh.ksh等,习惯上把它们称作一种Shell.我们常说有多少种Sh ...
- Ushare共享流媒体
一. 支持USB 参考: http://wenku.baidu.com/link?url=K_uAp4QEa2cX3nPMkbc-colCAHA1yBwo1JCYsZf-qR7AVFPkmpbBVYR ...
- 转 WCF中同步和异步通讯总结
我这样分个类: WCF中, 以同步.异步角度考虑通讯的方式分为四种:跨进程同步.跨进程异步.发送队列端同步.发送队列端异步.之所以造成这样的结果源于两个因素,一个是传统概念上的同异步,一个是对于WCF ...
- 2018年,Java程序猿10本经典好书推荐
1.Java 8实战 本书全面介绍了Java 8 这个里程碑版本的新特性,包括Lambdas.流和函数式编程.有了函数式的编程特性,可以让代码更简洁,同时也能自动化地利用多核硬件.全书分四个部分:基础 ...
- 【pushlet学习】具体实战
业务需求: 1. 前端界面需要实时显示空调.照明等设备的状态, 如:空调电压.空调电流.光照强度等,这些量每一个称作一个测点: 2. 不同的用户登录系统后,用户只能看到自己设备的运行状态,而看不到其他 ...
- 学习笔记之Kubernetes
Kubernetes | Production-Grade Container Orchestration https://kubernetes.io/ Kubernetes is an open-s ...
- 跨域获取json数据
原文地址:http://my.oschina.net/LinBandit/blog/34570 前阵子做了一个前端动态加载json数据的应用,其中使用xmlhttprequest动态加载js,但是 ...