精华内容
下载资源
问答
  • Data URI Scheme介绍及支持的类型
    2022-04-20 11:40:19

    什么是Data URI Scheme?

    Data URI scheme 简称 Data URI,是在RFC2397中定义的,目的是将一些小的数据,直接嵌入到网页中,从而不用再从外部文件载入。

    或许你已经注意到,在有的网页上,图片的 src 或 css 背景图片的 url 并不是我们常见的在线图片链接,而是一大串的字符,比如像这样:

    data:image/gif;base64,base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7ljmRAAAAGElEQVQIW2P4DwcMDAxAfBvMAhEQMYgcACEHG8ELxtbPAAAAAElFTkSuQmCC

    在上面的Data URI中,data表示取得数据的协定名称,image/png 是数据类型名称,base64 是数据的编码方法,逗号后面就是这个image/png文件base64编码后的数据。

    什么是Base64 编码?

    Base64是一种编码方式,这个术语最初是在“MIME内容传输编码规范”中提出的。Base64不是一种加密算法,它实际上是一种“二进制转换到文本”的编码方式,它能够将任意二进制数据转换为ASCII字符串的形式,以便在只支持文本的环境中也能够顺利地传输二进制数据。

    (1)base64编码:把二进制数据转为字符;

    (2)base64解码:把字符转为二进制数据;

    Base64 常用于处理文本数据的场合,表示、传输、存储一些二进制数据。

    Data URI 如何使用?

    (1)可以作为iscript/img/video/iframe等元素的src属性

    var scriptDataURL = `data:text/javascript;base64,YWxlcnQoJ+WcqHNjcmlwdOS4reS9v+eUqERhdGEgVVJMJykK`
    // 对应文本为:alert('在script中使用Data URL')
    $('#setDataURLInScriptBtn').click(function () {
      $('<script>').attr('src', scriptDataURL).appendTo($('body'))
    })

    (2)可以在 CSS 中使用

    body { 
        background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7ljmRAAAAGElEQVQIW2P4DwcMDAxAfBvMAhEQMYgcACEHG8ELxtbPAAAAAElFTkSuQmCC");
    }

    (3)在浏览器地址栏中使用()

    data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7ljmRAAAAGElEQVQIW2P4DwcMDAxAfBvMAhEQMYgcACEHG8ELxtbPAAAAAElFTkSuQmCC

    (4)在<link>标签的href中使用

    var linkDataURL = `data:text/css;base64,I3NldERhdGFVUkxJbkxpbmtCdG57Y29sb3I6IHJlZDt9Cg==`
    //对应内容为:setDataURLInLinkBtn{color: red;}
    $('#setDataURLInLinkBtn').click(function () {
      $('<link rel="stylesheet" type="text/css">').attr('href', linkDataURL).appendTo($('head'))
    })

    Data URI 哪些场景适用?

    (1)图片体积较小,没必要浪费一次http请求

    (2)访问外部资源受限或者很麻烦的情况

    (3)外部图片为动态的

    Data URI 的优点:

    (1)减少HTTP请求数,没有了TCP连接消耗和同一域名下浏览器的并发数限制。

    (2)对于小文件会降低带宽。虽然编码后数据量会增加,但是却减少了http头,当http头的数据量大于文件编码的增量,那么就会降低带宽。

    (3)对于HTTPS站点,HTTPS和HTTP混用会有安全提示,而HTTPS相对于HTTP来讲开销要大更多,所以Data URI在这方面的优势更明显。

    (4)可以把整个多媒体页面保存为一个文件。

    (5)当图片是在服务器端用程序动态生成,每个访问用户显示的都不同时

    Data URI 的缺点:

    (1)在HTML上不能复用,要复用只能放在CSS和JavaScript里

    (2)无法被独自缓存,所以其包含文档重新加载时,它也要重新加载。

    (3)客户端需要重新解码和显示,增加了点消耗。

    (4)不支持数据压缩,base64编码会增加1/3大小,而urlencode后数据量会增加更多。

    (5)不利于安全软件的过滤,同时也存在一定的安全隐患。

    (6)移动端不宜使用 Data URI 技术(解码耗 CPU)。

    (7)不合适 lazy loading,不利于维护

    Data URI Scheme支持的类型

    (1)data:,文本数据

    (2)data:text/plain,文本数据

    (3)data:text/html,HTML代码

    (4)data:text/html;base64,base64编码的HTML代码

    (5)data:text/css,CSS代码

    (6)data:text/css;base64,base64编码的CSS代码

    (7)data:text/javascript,Javascript代码

    (8)data:text/javascript;base64,base64编码的Javascript代码

    (9)data:image/gif;base64,base64编码的gif图片数据

    (10)data:image/png;base64,base64编码的png图片数据

    (11)data:image/jpeg;base64,base64编码的jpeg图片数据

    (12)data:image/x-icon;base64,base64编码的icon图片数据

    更多相关内容
  • 使用香草js生成QR代码(SVG元素,数据URI SVG字符串数据URI PNG字符串,HTML表格元素)。 基于 演示版 修复/新增功能 generateSVG现在可以在Edge 13和IE 11中使用 generateSVG支持同一页面SVG的不同颜色 引入了...
  • 使用香草js(SVG元素,数据URI SVG字符串数据URI PNG字符串,HTML表格元素)生成的qrjs2 QR代码。 基于lifthrasiir / qr.js演示codepen jsfiddle jsbin修复/添加的功能使用香草js(SVG元素,Data URI SVG字符串,...
  • 比如上面那串字符,其实是一张小图片,将这些字符复制黏贴到火狐的地址栏中并转到,就能看到它了,一张1X36的白灰png图片。在上面的Data URI中,data表示取得数据的协定名称,image/png 是数据类型名称,base64 是...
  • 思路很直观:1、读取图片二进制数据 -> 2、转成base64字符串 -> 3、转成datauri。 关于base64的介绍,可以参考阮一峰老师的文章。而 datauri格式如下 [removed] 具体到png图片,大概如下,其中 “xxx” 就是...
  • 生成Base64数据URI的工具。 示例SVG图标。 去做 添加一个选项以生成带有中断JavaScript模板字符串文字 与当前可用于将数据URL粘贴到JS中的“拥抱”选项一起使用。
  • Base64是一种十分流行的编码方式,仅仅使用 64 个字符加等号(=) 就可以以文本的形式表示所有的二进制数据了,因为它能够把二进制格式通过编码转换成可见字符,所有我们就可以通过的把二进制格式比如图片,文件等通过...

    Base64编码

    Base64是一种十分流行的编码方式,仅仅使用 64 个字符加等号(=) 就可以以文本的形式表示所有的二进制数据了,因为它能够把二进制格式通过编码转换成可见字符,所有我们就可以通过的把二进制格式比如图片,文件等通过 base64编码然后通过文本的形式共享出去,是不是很神奇呀。不知道什么是base64编码吗?简单地说它把一些 8-bit 数据翻译成标准 ASCII 字符,往上有很多免费的 base64 编码和解码的工具,你也可以用 PHP 的 base64_encode() 进行编码:

    echo base64_encode(file_get_contents('check.png'));

    编码流程

    1. 把输入的数据转换成 二进制的形式
    2. 每 3 个 8bit 为一组拆分为 4 个 6bit 8*3=6*4=24
    3. 拆分后的 6bit 的高位补两个 0 组成新的 8bit
    4. 把新的 8bit 转化为 10进制,然后查表得到最终的字符串
    5. 如果最后不够 3 个 8bit,分两种情况
      1. 有 2 个 8bit 差 1 个 8bit,由于 8*2=6+6+4=16,可以拆出来 2 个 6bit 和 一个不完整的 4bit,base64 编码规定给不足 6bit 的差几个 bit 补几个0,4bit 低位补 2 个0,组成了 6bit,由于一共需要 4个 6bit,前面一共产生了 3 个,还差 1 个,base64 编码规定 差几个 6bit 补几个 '=',这里差一个,所以在最后补一个 =,这也是为什么有时候能看到 base64 最后以等号结束
      2. 有 1 个 8bit 差 2 个 8bit,由于 8=6+2,可以拆出来 1 个 6bit 和一个不完整的 2bit,先给 2bit 低位补 4 个 0 组成 6bit,然后还差 2 个 6bit 组成 4 个 6bit,因此在最后添两个 =

    编码表

    base64的编码表如下:

    base64编码表
    base64编码表

    下面来举例说明:

    有一个字符串”abcd”

               a         b         c        d
    ASCII:    0x61      0x62      0x63     0x64
    8bit:  01100001   01100010  01100011 0110 0100
    6bit:  011000   010110  001001 100011  011001 000000 = =
    十进制:  24       22      9       35     25      0
    查码表得: Y        W      J       j      Z       A   =  =
    最终结果:YWJjZA==

    看这个动画演示吧:

    bae64编码过程
    bae64编码过程

     

    什么是data URI scheme

         网页优化的一大首要任务是减少HTTP 请求 (http request) 的次数,例如通过合并多个JS文件,合并CSS样式文件。除此之外,还有一个data URL 的密技,让我们直接把图像的内容崁入网页里面,这个密技的官方名称是data URI scheme 。

    data URI scheme如何使用?

    假设你有以下的图像:

    A

    把它在网页上显示出来的标准方法是:

    <img src="http://www.cnccpa.cn/images/A.png"/>
    

    这 种取得资料的方法称为 http URI scheme ,同样的效果使用data URI scheme 可以写成:

    <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA
    7ljmRAAAAGElEQVQIW2P4DwcMDAxAfBvMAhEQMYgcACEHG8ELxtbPAAAAAElFTkSuQmCC" />

    换句话说我们把图像档案的内容内置在 HTML 档案中,节省了一个 HTTP 请求。

    Data URI scheme 的语法

    我们来分析一下这句 img 标签的语法:

    <img src="data:image/png;base64,iVBOR....>

    它包含一下部分:

    • data - 取得数据的协定名称
    • image/png - 数据类型名称
    • base64 - 数据的编码方法
    • iVBOR.... - 编码后的数据

    : , ; - data URI scheme 指定的分隔符号

    在 CSS 中使用 data URL

    Data URI scheme 也可以在 CSS 中使用,例如:

    body { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA
    7ljmRAAAAGElEQVQIW2P4DwcMDAxAfBvMAhEQMYgcACEHG8ELxtbPAAAAAElFTkSuQmCC");}

    浏览器会缓存这种图像吗?

    不会,Data URL 虽然节省 HTTP 请求,但是倘若这个图像要在网页多个地方显示的话,便会加大网页的内容,延长了下载的时间,其中一个解决办法是在一个 CSS class 中加入data URL,在需要显示图像的区块调用这个class,例如:

    .logobg {
      background: url(data:…)
    }
    <div class=”navigation logobg”>..
    helo, hello
    <div class=”footer logobg”>…

    又是IE 来搞破坏(浏览器兼容问题)

    任何精采的技巧都可能受到 IE 的排挤,这次也有这种情况,IE8之前的版本都不支援 data URI scheme。

    解决这个问题的办法有:使用MHTML 解决data URI scheme 的浏览器兼容问题

    具体做法看代码(肯定是用css hack来实现)

    /*
    Content-Type: multipart/related; boundary="_ANY_STRING_WILL_DO_AS_A_SEPARATOR"
    
    --_ANY_STRING_WILL_DO_AS_A_SEPARATOR
    Content-Location:the9
    Content-Transfer-Encoding:base64
    
    /9j/4AA....+b0//2Q== (这里是base64编码)
    */
    
    #the9{
      background-image: url("data:image/png;base64/9j/4AA....+b0//2Q=="); /* normal */
      *background-image: url(mhtml:http://www.zhangjingwei.com/demo/scheme/style.css!the9);
      width:300px;
      height:300px;
      color:#F00;
      font-weight:900;
    }

     

     

    展开全文
  • Data URI 详解

    千次阅读 2019-06-27 09:50:28
    Data URI scheme在前端开发中是个常用的技术,通常会在 CSS 设置背景图中用到。比如在 Google 的首页就...Data URI scheme 简称 Data URI,经常会被错误地写成 data URLs。笔者认为通常用于将图片 base64 编码的 D...

    原文:https://www.cnblogs.com/zhengxingpeng/p/6678808.html

    Data URI scheme 在前端开发中是个常用的技术,通常会在 CSS 设置背景图中用到。比如在 Google 的首页就有用到:

    Data URI scheme 简称 Data URI,经常会被错误地写成 data URLs。笔者认为通常用于将图片 base64 编码的 Data URI 可以称为 data URLs,理由是这个地址(通过 base64 编码的 URL)可以在浏览器地址栏打开,而且 chrome 面板下也用了 "data URLs" 这个名称,但是广义的 Data URI 绝对不可以用 data URLs 来代替,毕竟 URL 只是 URI 的子集。

    如果你是第一次接触,可能会诧异于这一堆 "乱七八糟" 的编码是如何生成,打开 http://www.pjhome.net/web/html5/encodeDataUrl.htm,将任意一张图拖进去,便能自动帮你生成这串 "base64:URL",接着便可以在任何需要用到图片 src 属性的地方,用这个字符串代替。

    Data URI 的格式十分简单,如下所示:

    复制代码data:[<mime type>][;charset=<charset>][;base64],<encoded data>
    • 第一部分是 data: 协议头,它标识这个内容为一个 data URI 资源。
    • 第二部分是 MIME 类型,表示这串内容的展现方式,比如:text/plain(默认),则以文本类型展示,image/jpeg,以 jpeg 图片形式展示,同样,客户端也会以这个 MIME 类型来解析数据。
    • 第三部分是编码设置,默认编码是 charset=US-ASCII, 即数据部分的每个字符都会自动编码为 %xx
    • 第四部分是 base64 编码设定,这是一个可选项,base64 编码中仅包含 0-9,a-z,A-Z,+,/,=,其中 = 是用来编码补白的。
    • 最后一部分为这个 Data URI 承载的内容,它可以是纯文本编写的内容,也可以是经过 base64编码 的内容。

    我们先不管它的编码过程,可能你要问了,这么费尽周折是为了啥?这里就要说到 Data URI 最大的好处,减少 HTTP 请求。通常情况下我们在 HTML 页面中表示一张图片,会用一个 img 标签,然后将其 src 属性指向服务端的一个地址,每个 img 标签都会是一次请求;但是用了 Data URI 技术,将图片编码成字符串 "内嵌" 入 HTML 代码中(inline),然后在客户端完成解码工作,就不用进行 HTTP 请求了。但是这样做也有个明显的缺点,Data URI 无法进行缓存,于是聪明的工程师一般会把 Data URI 用在 CSS 中,因为 CSS 中的 URL 操作符是用来指定网页元素的背景图片的,而浏览器并不在意 URL 里写的是什么——只要能通过它获取需要的数据。所以,我们就有了可以将 Data URL 形式的图片存储在 CSS 样式表中的可能,而所有浏览器都会积极的缓存 CSS 文件来提高页面加载效率。

    在开发过程中,其实我们不常用到 Data URI 来表示图片,在此我将其利弊进行了下汇总。

    利:


    • 减少 HTTP 请求
    • 当访问外部资源很麻烦或受限时(比如服务器 ip 被墙)
    • 当图片是在服务器端用程序动态生成,每个访问用户显示的都不同时
    • 当图片的体积太小,占用一个 HTTP 会话不是很值得时
    • 没有图片更新要重新上传,还要清理缓存的问题

    弊:


    • Base64 编码的数据体积通常是原数据的体积 4/3,也就是 Data URL 形式的图片会比二进制格式的图片体积大 1/3(好在服务端有 gzip 压缩,压缩后和编码前图片大小差不多)
    • Data URL 形式的图片不会被浏览器缓存,这意味着每次访问页面时都被下载一次。(这点可以通过应用在 CSS 中,缓存 CSS 文件解决)
    • 增加了 CSS 文件的尺寸
    • IE678兼容性,比如 Google 首页的语音搜索提示图在 IE8 下直接舍去了(http://www.phpied.com/mhtml-when-you-need-data-uris-in-ie7-and-under/>)
    • 不适合 lazy loading
    • 不利于维护
    • 移动端不宜使用 Data URI 技术(解码耗 CPU)

    那么,究竟什么时候该用 Data URI 技术呢?

    • 这类图片不能与其他图片以 CSS Sprite 的形式存在,只能独行
    • 这类图片从诞生之日起,基本上很少被更新
    • 这类图片的实际尺寸很小
    • 这类图片在网站中大规模使用

    最后推荐几个在线网址(image -> base64 URL):

    Read More:

    展开全文
  • 即将图片资源转换为 base64 字符串格式嵌到页面或样式中。这样连图片的请求链接都省了。如:使用方式 CSS Code复制内容到剪贴板 /** 数据格式 **/  [removed]iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3...
  • DataURI2Image-crx插件

    2021-04-04 09:42:04
    它是可以生成和确认可以从诸如数据字符串查看和查看图像的扩展,例如数据:图像/ png; base64,xxx,无论图像如何。 选择以下数据URI方案,例如,在Web上,例如GIST或Blog,以及从上下文菜单中单击“数据URI到...
  • ImgUri:图片到数据URI

    2021-05-17 17:11:21
    我们可以仅使用ASCII文本字符串在HTML或CSS中表示图像(实际上是任何二进制数据)。 这减少了总体HTTP请求,该技术称为DATA URI方案。 使用数据URI的主要优点是性能增强。 您的浏览器会使用HTTP请求获取您网站中...
  • EL表达式处理字符串

    千次阅读 2018-07-23 20:16:10
    头部加入标签库 &lt;%@ taglib prefix="...截取字符串长多 ${fn:substring(wjcd.lrsj, 0, 16)} 使用functions函数来获取list的长度 ${fn:length(list)}   函数名 函数说明 使用举例  fn:con...


     头部加入标签库

    <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> 

    使用:

    截取字符串长多

    ${fn:substring(wjcd.lrsj, 0, 16)}

    使用functions函数来获取list的长度

    ${fn:length(list)}

     

    函数名 函数说明 使用举例 
    fn:contains 判断字符串是否包含另外一个字符串 <c:if test="${fn:contains(name, searchString)}"> 
    fn:containsIgnoreCase 判断字符串是否包含另外一个字符串(大小写无关) <c:if test="${fn:containsIgnoreCase(name, searchString)}"> 
    fn:endsWith 判断字符串是否以另外字符串结束 <c:if test="${fn:endsWith(filename, ".txt")}"> 
    fn:escapeXml 把一些字符转成XML表示,例如 <字符应该转为&lt; ${fn:escapeXml(param:info)} 
    fn:indexOf 子字符串在母字符串中出现的位置 ${fn:indexOf(name, "-")} 
    fn:join 将数组中的数据联合成一个新字符串,并使用指定字符格开 ${fn:join(array, ";")} 
    fn:length 获取字符串的长度,或者数组的大小 ${fn:length(shoppingCart.products)} 
    fn:replace 替换字符串中指定的字符 ${fn:replace(text, "-", "&#149;")} 
    fn:split 把字符串按照指定字符切分 ${fn:split(customerNames, ";")} 
    fn:startsWith 判断字符串是否以某个子串开始 <c:if test="${fn:startsWith(product.id, "100-")}"> 
    fn:substring 获取子串 ${fn:substring(zip, 6, -1)} 
    fn:substringAfter 获取从某个字符所在位置开始的子串 ${fn:substringAfter(zip, "-")} 
    fn:substringBefore 获取从开始到某个字符所在位置的子串 ${fn:substringBefore(zip, "-")} 
    fn:toLowerCase 转为小写 ${fn.toLowerCase(product.name)} 
    fn:toUpperCase 转为大写字符 ${fn.UpperCase(product.name)} 
    fn:trim 去除字符串前后的空格 ${fn.trim(name)} 

    例如我把字符串中的“(”前面换行

    <td colspan="${colomnVo.colspan}" rowspan="${colomnVo.rowspan}" style="border-color:#bbb !important;">
    ${fn:replace(colomnVo.name, "(", "</br>(")}
    </td>

    这样就可以输入替换后的原字符串

     


    函数描述 

    ?fn:contains(string, substring) 如果参数string中包含参数substring,返回true 
    ?fn:containsIgnoreCase(string, substring) 如果参数string中包含参数substring(忽略大小写),返回true 
    ?fn:endsWith(string, suffix) 如果参数 string 以参数suffix结尾,返回true 
    ?fn:escapeXml(string) 将有特殊意义的XML (和HTML)转换为对应的XML character entity code,并返回 
    ?fn:indexOf(string, substring) 返回参数substring在参数string中第一次出现的位置 
    ?fn:join(array, separator) 将一个给定的数组array用给定的间隔符separator串在一起,组成一个新的字符串并返回。 
    ?fn:length(item) 返回参数item中包含元素的数量。参数Item类型是数组、collection或者String。如果是String类型,返回值是String中的字符数。 
    ?fn:replace(string, before, after) 返回一个String对象。用参数after字符串替换参数string中所有出现参数before字符串的地方,并返回替换后的结果 
    ?fn:split(string, separator) 返回一个数组,以参数separator 为分割符分割参数string,分割后的每一部分就是数组的一个元素 
    ?fn:startsWith(string, prefix) 如果参数string以参数prefix开头,返回true 
    ?fn:substring(string, begin, end) 返回参数string部分字符串, 从参数begin开始到参数end位置,包括end位置的字符 
    ?fn:substringAfter(string, substring) 返回参数substring在参数string中后面的那一部分字符串 
    ?fn:substringBefore(string, substring) 返回参数substring在参数string中前面的那一部分字符串 
    ?fn:toLowerCase(string) 将参数string所有的字符变为小写,并将其返回 
    ?fn:toUpperCase(string) 将参数string所有的字符变为大写,并将其返回 
    ?fn:trim(string) 去除参数string 首尾的空格,并将其返回
     二、JSP EL简介
    1、语法结构 ${expression} 2、[ ]与.运算符 EL 提供“.“和“[ ]“两种运算符来存取数据。 当要存取的属性名称中包含一些特殊字符,如.或?等并非字母或数字的符号,就一定要使用“[ ]“。例如: ${user.My-Name}应当改为${user["My-Name"] } 如果要动态取值时,就可以用“[ ]“来做,而“.“无法做到动态取值。例如: ${sessionScope.user[data]}中data 是一个变量 3、变量 EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为username的变量。 因为我们并没有指定哪一个范围的username,所以它会依序从Page、Request、Session、Application范围查找。 假如途中找到username,就直接回传,不再继续找下去,但是假如全部的范围都没有找到时,就回传null。 属性范围在EL中的名称 Page PageScope Request RequestScope Session SessionScope Application ApplicationScope

    二、JSP EL 中的有效表达式
      有效表达式可以包含文字、操作符、变量(对象引用)和函数调用。我们将分别了解这些有效表达式中的每一种:

    1、文字  
    JSP 表达式语言定义可在表达式中使用的以下文字:  

     
    文字 文字的值  
    Boolean
     true 和 false
     
    Integer
     与 Java 类似。可以包含任何正数或负数,例如 24、-45、567
     
    Floating Point
     与 Java 类似。可以包含任何正的或负的浮点数,例如 -1.8E-45、4.567
     
    String
     任何由单引号或双引号限定的字符串。对于单引号、双引号和反斜杠,使用反斜杠字符作为转义序列。必须注意,如果在字符串两端使用双引号,则单引号不需要转义。
     
    Null null  


    2、操作符
    JSP 表达式语言提供以下操作符,其中大部分是 Java 中常用的操作符:

     
    术语 定义  
    算术型
     +、-(二元)、*、/、div、%、mod、-(一元)
     
    逻辑型
     and、&&、or、||、!、not
     
    关系型
     ==、eq、!=、ne、、gt、<=、le、>=、ge。可以与其他值进行比较,或与布尔型、字符串型、整型或浮点型文字进行比较。
     

     空操作符是前缀操作,可用于确定值是否为空。
     
    条件型 A ?B :C。根据 A 赋值的结果来赋值 B 或 C。   


    3、隐式对象
    JSP 表达式语言定义了一组隐式对象,其中许多对象在 JSP scriplet 和表达式中可用:

    术语 定义  
    pageContext
     JSP 页的上下文。它可以用于访问 JSP 隐式对象,如请求、响应、会话、输出、servletContext 等。例如,${pageContext.response} 为页面的响应对象赋值。
     


    此外,还提供几个隐式对象,允许对以下对象进行简易访问:  

     
    术语 定义  
    param
     将请求参数名称映射到单个字符串参数值(通过调用 ServletRequest.getParameter (String name) 获得)。getParameter (String) 方法返回带有特定名称的参数。表达式 $(param.name) 相当于 request.getParameter (name)。
     
    paramValues
     将请求参数名称映射到一个数值数组(通过调用 ServletRequest.getParameter (String name) 获得)。它与 param 隐式对象非常类似,但它检索一个字符串数组而不是单个值。表达式 ${paramvalues.name) 相当于 request.getParamterValues(name)。
     
    header
     将请求头名称映射到单个字符串头值(通过调用 ServletRequest.getHeader(String name) 获得)。表达式 ${header.name} 相当于 request.getHeader(name)。
     
    headerValues
     将请求头名称映射到一个数值数组(通过调用 ServletRequest.getHeaders(String) 获得)。它与头隐式对象非常类似。表达式 ${headerValues.name} 相当于 request.getHeaderValues(name)。
     
    cookie 将 cookie 名称映射到单个 cookie 对象。向服务器发出的客户端请求可以获得一个或多个 cookie。表达式 ${cookie.name.value} 返回带有特定名称的第一个 cookie 值。如果请求包含多个同名的 cookie,则应该使用 ${headerValues.name} 表达式。  
    initParam 将上下文初始化参数名称映射到单个值(通过调用 ServletContext.getInitparameter(String name) 获得)。   


    除了上述两种类型的隐式对象之外,还有些对象允许访问多种范围的变量,如 Web 上下文、会话、请求、页面:

     
    术语 定义  
    pageScope
     将页面范围的变量名称映射到其值。例如,EL 表达式可以使用 ${pageScope.objectName} 访问一个 JSP 中页面范围的对象,还可以使用 ${pageScope.objectName.attributeName} 访问对象的属性。
     
    requestScope
     将请求范围的变量名称映射到其值。该对象允许访问请求对象的属性。例如,EL 表达式可以使用 ${requestScope.objectName} 访问一个 JSP 请求范围的对象,还可以使用 ${requestScope.objectName.attributeName} 访问对象的属性。
     
    sessionScope
     将会话范围的变量名称映射到其值。该对象允许访问会话对象的属性。例如:

    $sessionScope.name}  
     
    applicationScope
     将应用程序范围的变量名称映射到其值。该隐式对象允许访问应用程序范围的对象。
     


    三、特别强调:
    1、注意当表达式根据名称引用这些对象之一时,返回的是相应的对象而不是相应的属性。例如:即使现有的 pageContext 属性包含某些其他值,${pageContext} 也返回 PageContext 对象。  

    2、 注意 <%@ page isELIgnored="true" %> 表示是否禁用EL语言,TRUE表示禁止.FALSE表示不禁止.JSP2.0中默认的启用EL语言。

    展开全文
  • 图片编码 Base64 与 DataURI

    千次阅读 2017-04-02 11:25:24
    1、DataURI,通常就被叫做DataURL,是因为图片被base64编码之后,这码可以用浏览器直接打开,类似于一个网站URL 2、DataURI格式:  data:[] ( [;charset=] ) [;base64],码内容   标识头, 展现方式 
  • Data URI scheme--数据URI方案

    千次阅读 2013-04-17 12:58:46
    大家可能注意到了,网页上有些图片的src或css背景图片的url后面跟了一大串字符,比如:data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAYAAABIdFAMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5...
  • public static List<result> PostData(SectionDto detail) { var uri = "http://xx.xx.xxx.xxx:xxxx/api/Truck?pageSize=100&pageIndex=1&sectionId=1&equipmentId="; ...
  • 头部加入标签库 &lt;%@ taglib prefix="...截取字符串长多 ${fn:substring(wjcd.lrsj, 0, 16)} 使用functions函数来获取list的长度 ${fn:length(list)}   函数名 函数说明 使用举例  f...
  • 以前觉得数据库连接字符串配置是很简单的(有没有同感的小伙伴),地址、数据库名称、用户、密码就可以了,也没有对连接字符串配置了解地那么透彻,但是,最近一次的数据库错误(超时时间已到,但是尚未从池中获取...
  • 今天爬取今日头条的街拍时,需要将里面的一个字符串变为json格式,结果直接转换就出现了 json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1) 查看发现...
  • $.get("()%>/searchAll", function(data){ $.each(data.tasklist ,function(i,obj){ /* 获取数据,添加给模板表格 */ $("#tem
  • DataURI

    千次阅读 2016-12-27 00:37:21
    Data URI 协议
  • data URI scheme及其应用

    千次阅读 2014-05-09 10:59:42
    data URI scheme通俗的来讲就是将一张图片直接塞到HTML中而不是通过HTTP请求去获取。这样从表面上看会减少一次HTTP的请求,实现了对于网页的优化(不过看了其他一些文章data URI因为将图片采用了base 64的编码方式...
  • 比如上面那串字符,其实是一张小图片,将这些字符复制黏贴到浏览器的地址栏中并转到,就能看到它了。 在上面的Data URI中,data表示取得数据的协定名称,image/png 是数据类型名称,base64 是数据的编码方法,逗号...
  • Java增量写入字符串到hdfs

    千次阅读 2019-05-04 22:43:38
    String hdfs_path = "hdfs://192.168.124.114:9000/movie/data/ratings/ratings.txt"; Configuration conf = new Configuration(); conf.setBoolean("dfs.support.append", true); FileSystem fs = null; try {...
  • WebService 接收JSON字符串

    千次阅读 2019-10-04 19:46:22
    网上找了半天解决方法,我们可以使用上下文,获取JSON数据流,然后在将流还原回JSON字符串即可 1 Stream s = HttpContext.Current.Request.InputStream; // 获得json 字符流 2 // 还原数据流 3 byte [] ...
  • springMVC数据格式转换的三种实现

    千次阅读 2017-07-19 14:11:46
    在Java的开发中,经常需要进行数据类型的转换,最常见的就是字符型转成Date类型存入数据库。以下介绍三种数据类型转换的方法。 一,使用ConversionService转换数据 二,使用自定义编辑器转换数据 三,注册全局...
  • 这几天开发项目遇到个问题,需要对信息在jsp展示页面进行脱敏处理,...${data.userInfo.realName eq ''}"&gt; &lt;span class="span-fun dcolor"&gt;开通存管&lt;/span&gt; ...
  • 公共无效SaveFile(字符串名称,ArrayList 消息){ path = "C:\\Users\\Paulo Brito\\Desktop\\" + name + ".txt"; File file1 = new File(path); try { if (!file1.exists()) { file1.createNewFile(); ...
  • 一、识别字符串中的人名或特定名词 笔者所用的是百度智能云提供的词法分析接口,它可以对字符串分词,并且能够识别句子中的人名,地名,等等。好,接下来教你们如何使用这个接口。 官网:...
  • 问题:将图片转成datauri今天,在QQ群有个群友问了个问题:“nodejs读取图片,转成base64,怎么读取呢?” 想了一下,他想问的应该是 怎么样...思路很直观:1、读取图片二进制数据 -> 2、转成base64字符串 -> 3、转成da
  • data.php(服务端通过一个大的索引数组拼装多个JSON数据成一个大的JSON字符串,只能返回这一个大的JSON字符串): header("content-type:text/html;charset=utf-8"); //实现传统分页效果 //连接数据库、获得...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 71,095
精华内容 28,438
关键字:

datauri()格式的字符串数据