JSTL标签库学习

Servlet上传文件

设置表单

<form enctype="multipart/form-data"></form>

处理流

Servlet存在安全问题

容器收到一个请求,会启动一个线程来处理。

线程又是不同步的,此时会出现多个servlet访问同一个线程。

解决问题,定义局部变量,

sychornized(this){

}

解决方式2实现单例模式接口

Servlet实现SingleThreadModel的接口(了解)

servlet生命周期

1.实例化Servlet(init())初始化

2.服务方法 service()

3.处理请求 doGet doPost doPut doDelete

4.处理携带参数的请求 doPut doDelete doHead

5.销毁

JDBC java data base Connetion

Dao执行过程

需要使用到反射的机制

JSTL javaserver page standard Tag  Library 主要用于给java程序员提供一个标准通用的标签函数库

JSTL和EL表达式结合使用能够提高程序的可读性

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

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

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

<c:>核心标签库

<c:foreach>用来遍历集合成员

实例代码

<c:forEach items="${domainList}" var="item">
    <tr>
        <td align="center"
valign="middle">${item["domain"]==null?"&nbsp":item["domain"]}</td>
        <td align="center" valign="middle"><fmt:formatDate value="${item['bind_date']}" 
pattern="yyyy-MM-dd HH:mm:ss"/></td>
        <td align="center" valign="middle">
            <c:if test="${item['domain']!=null}">
              <a href="javascript:;" id="${item['domain']}" class="del">&nbsp;</a>
            </c:if>
        </td>
    </tr>
</c:forEach>
遍历一个Map集合,首先Map集合是一个(K,V)形式存储的一对键值对数据形式

<c:if test="${!empty permissionMap}">
    <c:forEach items="${permissionMap}" var = "item">
        <tr>
            <td>${item.value.id}</td>
            <td>${item.value.urlOnClass}</td>
            <td>${item.value.urlOnMethod}</td>
        </tr>
    </c:forEach>
</c:if>
<c:forToken>标签

用来浏览字符串中的所有成员,其成员是由定义符号(delimiters)所分隔

<c:out>是用来显示的数据内容,escapeXml=false是不会将转换特殊符号转为字符实体

<c:forTokens items="StringOfTokens" delims="delimiters" var="varName" varStatus="varStatusName"

begin="begin" end="end" step="step">
    <c:out value="value" escapeXml="{true|false}" default="defaultValue"/>
</c:forTokens>

<c:set>标签

主要用来将变量储存至JSP范围中或是JavaBean属性中。

<c:set>标签的语法 说明

将value的值存储到范围为scope的varName的变量之中

<c:set value="value" var="varName" scope="{page|request|session|application}"/>

HTML代码

将本体内容的数据存储到范围为scope的varname变量之中

<c:set  var="varName" scope="{page|request|session|application}" />

本体内容

</c:set>

语法3:value值存储到target对象的属性之中

<c:set value="value" target="target" property="propertyName"/>

语法4:将本体内容存储到target对象的属性中

<c:set target="target" property="propertyName">

.....本体内容

</c:set>


<c:remove>标签

主要用来移除变量

<c:remove var = "varName" scope="{age|request|session|application}"/>

<c:catch>标签

主要用来处理产生错误的异常情况,并且将错误信息存储起来

<c:catch var ="varName">

预抓取的错误信息

</c:catch>

<c:if>标签

就是使用一般程序中用的if一样

|     名称    |            说明               |     EL     |       类型      |      必须  |  默认值

|:-------:|:--------:|:-------:|:--------:|:----------:|:---------------:|

|value|要被存储的值|Y|Object|否|无|

没有本体内容的代码

<c:if test:="testCondition" var="varName" scope="{page|request|session|application}"/>

有本体内容的代码

<c:if test="testCondition" var="varName" scope="{page|request|session|application}">

本体内容

</c:if>

实例

<c:if test="${not empty item.publish_time}">
内容
</c:if>
<c:if test="${item['domain']!=null}">
内容
</c:if>
<c:if test="${!empty permissionMap}">
内容
</c:if>
类似于switch case

<c:choose when otherwise>

<c:set var ="score">85<c:/set>
<c:choose>
<c:when test="${score>=90}">
你的成绩为优秀
</c:when>
<c:when test:="${score>=70&&score<90}">
你的成绩为良好
</c:when>
<c:when test="${score>60&&score<70}">
你的成绩为及格
</c:when>
<c:otherwise>
对不起,你没有通过考试
</c:otherwise>
</c:choose>

<fmt:>格式化标签库

JSTL格式化标签使用此功能可以对一个特定的语言请求做出合适的处理

常见的格式标签

<fmt:formatNumber>

<fmt:formatDate>

<fmt:parseDate>

<fmt:parseNumber>

<fmt:setTimeZone>

<fmt:timeZone>

国际化标签

<fmt:setLacale>

<fmt:requestEncoding>

<fmt:bundle>

<fmt:message>

<fmt:param>

<fmt:setBundle>

三、<fmt:formatNumber>

此标签会根据区域定制的方式将数字格式化成数字,货币,百分比。

value:要格式化的数字

type:按照什么类型格式化

pattern:自定义格式化样式

currencyCode:ISO-4721货币代码,只适用于按照货币格式化的数字

currencySymbol:货币符号:¥,只适用于按照货币格式化的数字

groupingUsed:是否包含分隔符

maxIntegerDigits:整数部分最多显示多少位

mixIntegerDigits:整数部分最少显示多少位

maxFractionDigits:小数部分最多显示多少位

minFractionDigits:小数部分最少显示多少位

var 存储格式化后的结果,scope存储的范围

<fn:>function标签库

JSTL Functions标签库中提供了一组常用的EL函数,主要用于处理字符串,在JSP中可以直接使用这些函数

${fn:contains("Tomcat","cat")}查找Tomcat字符串中是否包含cat字符串

${fn:containsIgnoreCase("Tomcat","CAT")}判断会忽略大小写

${fn:startWith}用于判断源字符串是否是以指定目标字符串开头,其语法为

${fn:startWith("Tomcat","Tom")}

${fn:indexOf("Tomcat","cat“”)}

${fn:replace("Tomcat","cat","cAT")} 结果为TomcAT

${fn:substring("TomCat",0,3)}

输出结果Tom

${fn:substringBefore("Tomcat","cat")}

输出结果为Tom

${fn:split("www.mywebsite.org",".")}

分割成了www mywebsite org

${fn:join(String[] str,".")}

${fn:toLowerCase("TomCat")}变成小写

${fn:toUpperCase("tomcat")}变成大写

${fn:trim("    tomcat        ");}删除表达式前后的空格

${fn:escapeXml("<b>表示粗体</b>")}变成字符实体显示出来

${fn:length(list)}求出字符串、集合、数组的长度



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值