JSTL简介:

标准标签库JSTL的全名为:Java Server Pages Standard Tag Library.

JSTL主要提供了5大类标签库:

1.       核心标签库: 为日常任务提供通用支持,如显示和设置变量,重复使用一组项目,测试条件以及其他操作(如导入和重定向web页面等).

2.       国际化(I18N)标签库: 支持多种语言的引用程序.

3.       SQL标签库: 对访问和修改数据库提供标准化支持.

4.       XML标签库: 对XML文件处理和操作提供支持,包括XML节点的解析,迭代,基于XML数据的条件评估以及可扩展样式语言转换(Extensible Style Language Transformations , XSLT)的执行.

5.       函数标签库: 通过在EL表达式中调用函数标签库中的函数来实现特定的操作,例如: ${fn:contains(sring,substring)},其功能是判断string字符串中是否包含substring字符串.

JSTL标签库使用方法:

标签库                         URI                                           前缀      使用模式

核心标签库                  http://java.sun.com/jstl/core         c             <c:tagname…>

国际化标签(I18N)        http://java.sun.com/jstl/fmt           fmt         <fmt:tagname…>

SQL标签库                 http://java.sun.com/jstl/sql            sql          <sql:tagname…>

XML标签库                http://java.sun.com/jstl/xml          x            <x:tagname…>

函数标签库                  http://java.sun.com/jstl/functions   fn           <fn:tagname…>

核心标签库

核心标签库包括:out , set , remove , catch , if , choose , when 和 URL 等.

表达式操作标签:  包括:out , set , remove , catch.

out标签:

核心标签库中最为基本的标签就是<c:out>,他可以在页面中显示一个字符串或者一个EL表达式的值,其功能与JSP中的<%= 表达式%>类似

使用格式如下:

<c: out value=”object” [escapeXml=”true|false”] />

这个标签还可以有一个体,如下:

<c: out value=”object” [escapeXml=”true|false”] >defalut value</c:out>

这表示当value属性指定的object值为null时,就会显示体中指定的值,也就是default value的值,体中也可以是jsp代码.

<c:out>中各属性的说明如下:

1.       value : 可以指定一个字符串作为输出内容,也可以指定为EL表达式,例如:${3+5}.

2.       escapeXml : 类型为boolean , 确定 , < , > , & , ‘ , “ 等字符在结构的字符串中是否被转换成字符串实体代码,默认值是true(就是是否按html中的样式进行输出,设置true就是按照字符串原样进行输出,false就是按照html标识符进行输出)

3.       default value : 可以是字符串,也可以是一个EL表达式或者jsp表达式,如果属性(value)指定的表达式或者对象为null,那么将输出这个defalut value部分的值.

set标签:

set标签用来在某个范围(request,session或者application)内设置值,或者设置某个对象的属性值.

Set标签使用格式如下:

1. 使用value 属性在一个特定的范围内指定某个变量的值,其使用格式如下:
       <c:set var=”varName”
value=”varValue”
[scope=”page|request|session|application”]/>

2. 当使用value属性在一个特定范围内指定某各变量的值时,也可以包括一个体,他的作用与out标签体的作用一样,即value指定的值为null时,默认使用体中指定的值,使用的格式如下:
       <c:set var=”varName”
value=”varValue”
[scope=”page|request|session|application”]>
              default
value
       </c:set>

3. 设置某一个特定对象属性的使用格式如下:
<c:set property=”propertyName”
target=”target” value=”value”/>

4. 在设置某个特定对象的一个属性时,也可以使用一个体,并且指定默认的值,使用格式如下:
      <c:set property=”propertyName” target=”target”
value=”value”>

default
value

</c:set>

该标签中的各属性说明如下:

1. value : 该属性指定变量或者对象中某个属性的值,并且可以是一个表达式.

2. var : 变量名称,value属性指定的值就保存在这个变量中.

3. scope : 设定变量的有效范围,如果不设置,默认为page.

4. target : 设置属性的一个对象,它必须是JavaBean 或者java.util.Map对象.

5. property : 设置对象中的一个属性.

remove标签

remove标签一般和set标签配套使用,两者是相对应的,remove标签用于删除某个变量或者属性,使用格式如下:

<c:remove var=”varName”
[scope=”page|request|session|application”] />

Remove标签中使用的各属性说明如下:

1.       scope : 设定这个需要删除的变量的所在范围.

2.       var : 需要删除的变量或者对象属性的名称.

如果没有scope属性,即采用默认值,就相当于调用PageContext.removeAttribute(varName)方法,如果指定了这个变量所在的范围,那么系统会调用PageContext.removeAttribute(varName,scope)方法.

catch标签

catch标签的功能和java中的try{…}catch{…}语句的功能很相似,它用于捕获嵌入到其中间语句抛出的异常,这个标签的使用格式如下:

<c:catch
var=”varName”>

相关操作语句

</c:catch>   --如果操作语句中出现异常,则catch会将异常保存在 varName变量中.

流程控制标签: 包括: if , choose ,
when , otherwise 等.

if标签

这个标签作用与java中的if语句作用相同,用于判断条件语句,主要的使用格式如下

1.       在<c:if> 体中不包括体的使用格式:

<c:if test=”checkCondition”
var=”varName” scope=”page|request|session|application”/>

2.  当<c:if> 体中包括体时,使用格式如下:
<c:if test=”checkCondition”
var=”varName” scope=”page|request|session|application”>
       body
content
</c:if>
       标签中使用的属性说明:
              test
: 判断条件的表达式,返回类型为true 或者 false;(也就是if的条件)

var
: 这个变量用于保存test条件表达式判断所返回的true或者false值
(if条件执行后所得到的boolean值将要保存在var变量中).

scope : 指定var变量所在的有效范围.

choose
, when , otherwise 标签

这些标签相当于java中的 switch , case ,
default 条件,使用实例如下:

<c:set var=”num” scope=”page”
value=”admin”/>

<c:choose>

<c:when
test=”${num==’guest’}”>

<c:out
value=”guest”/>

</c:when>

<c:when
test=”${num==’admin’}”>

<c:out
value=”admin”/>

</c:when>

<c:otherwise>

<c:out
value=”other”/>

</c:otherwise>

</c:choose>

运行jsp页面后,输出 admin

forEach迭代标签

该标签用来对一个collection集合中的一系列对象进行迭代输出,并且可以指定迭代次数,一般的使用格式如下:

<c:forEach items=”collection”
var=”varName” [varstatue=”varStatusName”] [begin=”begin”] [end=”end”]
[step=”step”]>

Body content

</c:forEach>

这个标签使用的属性描述如下:

1.       var : 也就是保存在collection集合类中的对象名称.

2.       items : 将要迭代的集合类名.

3.       varStatus : 存储迭代的状态信息,可以访问到迭代自身的信息.

4.       begin : 如果指定了begin值,就表示从items[begin]开始迭代;如果没有指定begin值,则从集合的第一个值开始迭代.

5.       end : 表示迭代到集合的end位时结束,如果没有指定end值,则表示一直迭代到集合的最后一位.

6.       step : 指定迭代的步长.

例:

<%

String Items[] =new
String[5];

Items[0]=”核心标签库”;

Items[1]=”国际化标签库”;

Items[2]=”SQL标签库”;

Items[3]=”XML标签库”;

Items[4]=”函数标签库”;

Request.setAttribute(“ItemName”,Items);

%>

<B><c:out
value=”不指定begin和end的迭代:”/><B><br>

<c:forEach var=”ItemName”
items=”${Items}”>

&nbsp;<c:out
value=”${ItemName}” /><br>

</c:forEach>

<B><c:out
value=”指定begin和end的迭代:”/><B><br>

<c:forEach var=”ItemName”
items=”${Items}” begin=”1” end=”3” step=”1”>

&nbsp;<c:out
value=”${ItemName}” /><br>

</c:forEach>

<B><c:out
value=”输出整个迭代的信息:”/><B><br>

<c:forEach var=”ItemName”
items=”${Items}” begin=”3” end=”4” step=”1” varStatus=”s”>

&nbsp;<c:out
value=”${ItemName}” />的四种属性:<br>

&nbsp;所在位置即索引: <c:out
value=”${s.index}” /> <br>

&nbsp;总共已迭代的次数: <c:out
value=”${s.count}”/><br>

&nbsp;是否为第一个位置: <c:out
value=”${s.first}” /><br>

&nbsp;是否为最后一个位置: <c:out
value=”${s.last}”/>

</c:forEach>

代码说明:      s.index 用来获取计数器的值,  s.count用来获取这是第几次循环,  s.first 用来获取是否是循环开始的第一次 ,
s.last 用来获取是否是循环的最后一次 ,  first 和last 都返回boolean值.

forTokens 标签

这个标签的作用和Java中的StringTokenizer类的作用非常相似,通过items属性来指定一个特定的字符串,然后通过delims属性指定一种分隔符(可以同时指定多个),通过指定的分隔符把items属性指定的字符串进行分组,与forEach标签一样,forTokens标签也可以指定begin和end以及step属性值.

使用格式如下:

<c:forTokens items=”stringOfTokens”
delims=”delimiters” var=”varName” [varStatus=”varStatusName”] [begin=”begin”]
[end=”end”] [step=”step”]>

Body
content

</c:forTokens>

标签中的各个属性描述如下:

1.       var : 进行迭代的参数名称.

2.       items : 指定的进行标签化的字符串.

3.       varSatus : 每次迭代的状态信息.

4.       delims : 使用这个属性指定的分隔符来分隔items指定的字符串.

5.       begin : 开始迭代的位置.

6.       end : 迭代结束的位置.

7.       step : 迭代的步长.

例:

<c:out
value=”forTokens标签实例”/>

<h4>使用” |
” 作为分隔符</h4>

<c:forTokens var=”token”
items=”bleu,rouge|vert,jaune|blanc,rouge” delims=”|”>

&nbsp;&nbsp;<c:out
value=”${token}”/>

</c:forTokens>

<h4>使用” | ,
”作为分隔符</h4>

<c:forTokens var=”token”
items=”bleu,rouge|vert,jaune|blanc,rouge” delims=”|,”>

&nbsp;&nbsp;<c:out
value=”${token}”/>

</c:forTokens>

代码说明:
delims=”|,” , 即使用”|”和”,”同时作为分隔符进行使用.如果需要更多的分隔符就是使用“|,./” 在引号内输出.

URL相关的标签:

URL相关的标签主要用来将其他文件包含进来,或者提供页面之间的重定位以及URL地址的生成,参数的输出等.一般包括如下几个标签.

<c:import>标签: 与传统JSP页面重的<jsp:include>标签类似.

<c:redirect>标签: 进行页面的重定位.

<c:url> : 主要用来重写URL地址.

<c:param> : 一般param标签会与其他标签一起配套使用,用于参数值的传递.

<c:import> 标签:

该标签用于把其他今天文件包含到该文件当中,它与传统的<jsp:include>相类似,不同的是<jsp:include>标签只能用来包括该应用中的其他文件,而<c:import>还可以包含外部站点中的静态文件,所以它的功能更加强大.使用格式如下:

<c:import url=”url” [context=”context”]
[var=”varName”] [scope=”page|request|session|application”]
[varReader=”varReader”]
[charEncodion=”charEncoding”]>

Body content

</c:import>

标签中的属性描述如下:

url: 待引用静态文件的URL地址.

context: 当采用相对路径访问一个外部静态文件时,这里的context指定这个外部文件的名称.

var: 当使用字符串输出时,把输出的内容存储在这个var指定的变量中.

scope: 指定var参数变量的有效范围.

varReader: 这个属性指定的参数变量类型是Reader,可以用于读取文件的内容.

charEncoding: 引入文件所采用的字符编码.

Import标签即可以采用相对路径也可以采用绝对路径来引用本地点中的任何静态文件,还可以使用绝对路径引用外部站点中的静态文, 甚至可以是ftp站点中的文件,例如:<c:import
var=”myurl” url=”http://www.163.com” />就是引用http://www.163.com 站点的主页面.

可以把引用文件中的内容赋值给var属性指定的变量,然后进行读取,也可以赋值给varReader指定的Reader类型的变量,然后进行相应的读取.

有时引入的文件在本地显示会出现乱码,这时可以通过charEncoding来指定这些内容所采用的字符集编码.

<c:redirect>和<c:param>标签:

Redirect标签用来进行页面之间的重定向,它与传统JSP程序重的<jsp:redirect>标签功能相类似,param标签是与redirect一起使用的,它用来进行参数值的传递,redirect标签的使用格式如下:

<c:redirect url=”url”
[context=”context”]/>

在redirect标签中指定param参数的使用格式如下:

<c:redirect url=”url”
[]context=”context”>

<c:param name=”paramName”
value=”value”/>

</c:redirect>

例:  [通过创建c_redirect1.jsp  和 c_redirect2.jsp  两个文件说明]

c_redirect1.jsp文件内容如下:

<c:redirect url=”c_redirect2.jsp”
>

<c:param
name=”userName” value=”admin”/>

</c:redirect>

c_redirect2.jsp 文件内容如下:

<body>

userName=<c:out
value=”${param.userName}”>

</body>

c_redirect1.jsp页面文件内容不会显示,因为直接重定向到c_redirect2.jsp,重定向c_redirect2.jsp后,页面中输出 userName=admin

<c:url>标签:

这个标签主要用来重写url地址,使用格式如下:

<c:url value=”value” [context=”context”]
[var=”varName”] [scope=”page|request|session|application”]
/>

当进行参数传递时,使用格式如下:

<c:url value=”value” [context=”context”]
[var=”varName”] [scope=”page|request|session|application”]
>

<c:param name=”paramName”
value=”value” />

</c:url>

标签中使用的属性描述如下:

value: 将要处理的URL地址.

context: 当使用相对路径方法指定外部文件时,这个属性指定的是外在文件的名称.

var: 给这个URL地址起一个标识.

Scope: 规定这个var属性所指定变量的有效范围.

创建一个c_url.jsp,其源代码如下:

<%@ taglib prefix=”c”
uri=”http://java.sun.com/jsp/jstl/core” %>

<c:url var=”url”
value=”c_url2.jsp” scope=”session” >

<c:param name=”userName”
value=”admin”/>

<c:param name=”password”
value=”123456”/>

</c:url>

<c:out
value=”${url}”/>

<a herf=’<c:out
value=”${url}”/>’>Link to other page</a>

代码说明:
url标签可以指定一个变量(var属性指定)来把url地址保存,并且可以指定这个变量的有效范围为session
,所以当需要用到这个url地址时,就可以使用session.getAttribute(varName)方法来获取这个地址,所以一般需要重复使用同一个url地址才会使用<c:url>标签的功能.

国际化( I18N
)标签库

国际化标签包括:

<fmt:setLocale>: 用于设置当前本地化环境,为对应的java类javax.servlet.jsp.jstl.fmt.locale配置参数值,这个指定的参数由jsp运行时维护,用于确定各个jstl标签使用的本地化环境.

<fmt:bundle>: 指定消息资源使用的文件.

<fmt:message>: 显示消失资源文件中指定key的消息,支持带参数的消息.

<fmt:param>: 给带参数的消息设置参数值.

<fmt:setBundle>: 设置消息资源文件.

设置本地化环境标签<fmt:setLocale>

HTML请求到达服务器时,浏览器提供的HTTP首部可以指出用户的首选本地化环境(可能是多个本地化环境的列表).这个列表放在Accept-Language HTTP首部中,jsp容器会访问这个首部信息,如果没有使用标签<fmt:setLocale>明确地指出引用本地化环境,JSTL标签就会使用这个列表中的首选本地化环境.

<fmt:setLocale>标签专门用于设置当前本地化环境,基本使用格式如下:

<fmt:setLocale value=”…locale value…”
[variant=”…variant value…”] [scope=”page|request|session|application”]
/>

<fmt:setLocale>标签的属性描述如下:

value: 这个属性是必须设置的,它用来设置本地环境名,例如en_US 或者zh_HK.

variant: 这个属性是可选的,而且很少使用.

scope: 指定value设置的本地化环境名的有效范围,默认为page,即本页面,如果把scope设置为session,则表示同一个用户发出的所有请求都具有相同的本地化环境.

执行信息资源标签<fmt:bundle>

一旦已经设置了web引用的本地化环境后,就可以使用<fmt:bundle>标签了,其体重可以包括一些调用本地化文本的<fmt:message>标签,使用格式如下:

<fmt:bundle basename=”…the bundle’s base
name…” [prefix=”…prefix name…”]>

<fmt:message key=”…key
name…”/>

</fmt:bundle>

属性描述如下:

Basename: 资源文件(这里使用文件,而不是类)的基名,例如,某资源文件Res_zh_CN.property,则基名为Res.

prefix: 这个设置是可选的,如果指定这个属性,就会为标签体中嵌套的<fmt:message>标签附加一个前缀.

当<fmt:bundle>标签中嵌套<fmt:message>标签时,这时<fmt:message>标签默认使用<fmt:bundle>标签中的basename所指定的资源文件.

获取资源属性值标签<fmt:message>:

该标签用于显示本地化的文本,它通过key属性来取得资源文件中相应的消息<fmt:message>标签的一般使用格式如下:

<fmt:message key=”…name of property…”
[bundle=”…resourceBundle…”][var=”…varible name…”] [scope=”…scope of
var…”]/>

这个标签从资源文件重获取到一个消息,生成相应的一个本地化文本串,该便去重的属性描述如下:

Key : 用于查找资源文件重相应的关键字名,它对应着一条特定的消息.

bundle: 如果设置了这个属性,就会使用这个属性指定的资源文件,否则若嵌套在<fmt:bundle>标签重,就会直接使用<fmt:bundle>标签重basename属性指定的资源文件.

Var : 如果指定这个属性,则把取出的消息字符串存储在这个变量中.

Scope: 这个属性指定了var设置变量的有效范围,默认为page,然而也可以设置为session.

设置资源文件标签<fmt:setBundle>

该标签用于设置一个资源文件,并给定一个标记,以便可以通过<fmt:message>标准中指定bundle属性值来取得这个资源文件中的消息,使用格式如下:

<fmt:setBundle basename=”…the bundle’s
base name…” var=”…var name…”
[scope=”page|request|session|application”]/>

标签中的属性描述如下:

basename : 该属性与<fmt:message>标签中的basename属性类似.

Var
: 给指定的资源文件取一个变量名,以便<fmt:message>标签可以通过这个变量名来读取资源文件中的消息

Scope: 设置var属性指定的变量的有效范围.

获取参数值标签<fmt:param>:

该标签一般与<fmt:message>标签配套使用,用来在获取的消息中插入一个值.例如:资源文件中的一条消息如下:

密码错误=”{0}的密码错误”

<fmt:message>标签首先使用key=”密码错误”这个关键字找到以上这条消息,然后在<fmt:message>标签中使用<fmt:param>标签赋一个值来替代{0}部分.

<fmt:param>标签的使用格式如下:

<fmt:message
……>

<fmt:param
value=”value”/>

</fmt:message>

其中value属性的值即为要的替代{0}部分的值.

函数(function)标签库:

函数标签库中的标签基本分成两种:

1.       长度度量函数,例如:fn.length().   [
fn.length(“”) 就为要输出的格式表达式,结果输出0 ]

2.       字符串操作函数.

各类函数标签的功能:

1.       fn:contains(string,substring): 如果参数string中包含substring,则返回true.

2.       fn:containsIgnoreCase(string,substring): 如果参数string中包含substring,则返回true(忽略大小写).

3.       fn:endsWith(string,suffix): 如果参数string以参数suffix结尾,则返回true.

4.       fn:escapeXml(string): 将由特殊意义的xml(和html)转换成对应的XML character entity
code并返回.

5.       fn:indexOf(string,substring): 返回参数substring在string中第一次出现的位置.

6.       fn:join(array,separator): 将一个给定的数组array用给定的间隔符separator串在一起,组成一个新的字符串并返回.

7.       fn:length(item): 返回参数item中包含元素的数量,参数item的类型是数组,collection或者string,如果是string则返回string的字符数.

8.       fn:replace(string,before,after): 返回一个String对象,用参数after字符串替换参数string中所有出现before字符串的地方,并返回替换后的结果.

9.       fn:split(string,separator): 返回一个数组,以参数separator为分隔符分隔参数string,分隔后的每一部分就是数组的一个元素.

10.   fn:startsWith(string,prefix): 如果参数string以参数prefix开头,则返回true.

11.   fn:substring(string,begin,end): 返回参数string的部分字符串,从参数begin开始到参数end结束,其中包括end位置的字符.

12.   fn:substringAfter(string,substring): 返回参数substring在参数string中后面的那一部分字符串.

13.   fn:substringBefore(string,substring): 返回参数substring在参数string中前面的那一部分字符串.

14.   fn:toLowerCase(string): 将参数string的所有字符变为小写,并返回.

15.   fn:toUpperCase(string): 将参数string的所有字符变成大写,并返回.

16.   fn:trim(string): 将参数string的头尾空格全部去除,并返回.


<logic:notEmpty> 标签其本身具有多种功能:

一是判断是否为 null 。

二是当它为 String 类型的变量时,判断字符串长度是否为 0 。

三是当它为集合类型的变量时,利用集合类的 isEmpty 方法可以判断是否是一个空的集合。

本示例既然要在替换后与替换前的工作一致,就应该对集合做两个判断:

一是该集合不为 null 。

二是该集合中的对象数量不为 0 。

“ !=null ”的 EL 表达式实现了集合实例不为 null 的判断; fn:length() 函数实现了集合内对象数量不为 0 的判断,两个判断用“ && ”连接起来就实现了 <logic:notEmpty> 标签对于集合判断的工作。

在这里应该利用“ <logic:notEmpty> 标签”,还是利用“ EL 表达式和 <c:if> 标签”呢? <logic:notEmpty> 标签相对来说可读性更强些, EL 表达式作为判断条件则可读性稍差些。然而,这些仅是就本示例的改动而言的,其他情况下,利用 EL 表达式和 <c:if> 标签还是有其优势的。

JSTL标签常用的更多相关文章

  1. JavaWeb学习之JSP常用标签、EL表达式的运算符、JSTL标签库(6)

    1.JSP常用标签 * 只要支持JSP文件,常用标签有可以直接使用 * 格式: jsp:xxxx * jsp:forward ,完成jsp页面的转发 * page属性:转发的地址 <% requ ...

  2. JSP 标准标签库(JSTL)之最常用的JSTL标签总结

    JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. Apache Tomcat安装JSTL 库步骤如下: 从Apache的标准标签库中下载的二进包(jakarta-t ...

  3. JSP常用标签——JSTL标签和EL表达式

    一.JSTL简介 1.什么是JSTL JSTL是Java中的一个定制标记库集.(这个标记库集不需要自己编写,可以直接使用) 2.为什么要使用JSTL 实现了JSP页面中的代码复用(基于标签库原理,重复 ...

  4. 常用JSTL标签

    1.判断是否为空 <c:choose> <c:when test="${not empty reportInfo.user_register_orgs.register_o ...

  5. JSTL标签 参考手册

    前言 ========================================================================= JSTL标签库,是日常开发经常使用的,也是众多 ...

  6. 重温JSP学习笔记--JSTL标签库

    以前写jsp的时候对jstl标签库是有些抵触的,因为我觉得嵌入java代码的方式几乎无往不利,没有必要使用标签库,不过这次复习还是好好地学习了一下,发现这个还是很有用处的,用得好能省不少事,JSTL是 ...

  7. 自定义jstl标签库

    开发环境:Spring+SpringMVC +Maven +Mybatis JSTL 标签库的配置: 导入对应的 jstl.jar 和 standard.jar ,我使用的配置如下: <prop ...

  8. jsp学习---mvc模式介绍和el表达式,jstl标签库的使用入门

    一.mvc模式介绍 下图是常用的mvc分层模式: 项目中的包命名规则,一般如下: com.amos.domain 封装JavaBean,一般我喜欢用model命名这个包com.amos.dao 封装d ...

  9. 自定义JSTL标签和函数库

    一.自定义JSTL标签 1.编写标签处理类: (1)实现 SimpleTag 接口,通过 setJspContext()方法可以获取到 jspContext 对象,实际上也是 pageContext ...

随机推荐

  1. 一文详解 Java 的八大基本类型

    自从Java发布以来,基本数据类型就是Java语言中重要的一部分,本文就来详细介绍下每种基本类型的具体使用方法和限制. 作者 | Jeremy Grifski 译者 | 弯月,责编 | 郭芮 出品 | ...

  2. 游程编码run length code

    今天突然看到一个名词,游程编码.也叫行程编码. 简单理解就是,几个相同连续的字符,然后用数字统计表示. 举个例子: aaaabbbccc 用游程编码的表示就是4a3b3c 如果:连续字符只有一个 那么 ...

  3. java生成图形验证码

    效果图 import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.image.Buf ...

  4. 直播弹幕抓取逆向分析流程总结 websocket,flash

    前端无秘密 直播的逆向抓取说到底是前端的调试和逆向技术,加上部分的dpa(深入包分析,个人能力尚作不到深入,只能作简单分析)难度较低 目前互联网直播弹幕主要是两种技术实现. 1websocket消息通 ...

  5. MySQL5.7源码安装

    一.获取MySQL5.7.20源码安装包,并上传至服务器   MySQL官网下载地址:https://dev.mysql.com/downloads/mysql/ 下载版本:mysql-boost-5 ...

  6. redhat下libreoffice 的安装

    1.第一次安装libreoffic时是用网络yum源安装的,但是装好之后不能用,找了好久没有找出问题,后来从官网下载安装包后安装就可以了. 下载地址:https://zh-cn.libreoffice ...

  7. plsql中文显示问号

    1. select userenv('language') from dual 2. 复制查询的值配置系统环境变量 NLS_LANG=AMERICAN_AMERICA.ZHS16GBK 3.配置系统环 ...

  8. docker里修改时间

    在docker容器里,你会发现,你根本无法通过命令修改时间.这时我们就可以通过/etc/localtime这个配置文件修改时间了.但这个配置文件是一个二进制的文件,里面根本就是一堆乱码.所以我只好拷贝 ...

  9. 把Java代码转成c#可用的dll

    1.首先你需要到 IKVM官网 下载IKVM.http://sourceforge.net/projects/ikvm/files/,需要注意的是如果你用的是.net framework2.0,那么最 ...

  10. Office 365管理员设置

    一.注册 1.输入网站 http://www.21vbluecloud.com/  ,进入世纪互联蓝云官方网站 2.选择 运营的产品->Office 365 3.选择了解更多 4.浏览根据不同的 ...