实习中接触到的JSP知识

JSP主要用于动态WEB开发,打开一个JSP页面,会发现主要是由HTML和JAVA代码构成,在学校刚开始接触到JSP时,就是采用HTML中嵌入JAVA代码的写法(<% 若干java语句 %>),但是这样存在一个问题就是:整个JSP看起来很乱,尤其是JAVA代码中包含循环和判断时。因此,便有了后来的EL表达式和JSTL标签,用来替换掉JSP中的JAVA代码,使整个JSP看起来整洁。

EL表达式:###

1.输出内容
使用 ${输出内容}这种形式来代替<%=JAVA代码%>进行输出

  • ${name},name为域中定义的变量,能获取到值则输出获取的值,否则不输出
  • ${map["name"]},获取map中的值,也可以使用${map.name}
  • ${object.getName()},object为类对象,调用getName()方法获取值



    2.执行运算
  • 普通计算。${1+2},会输出3
  • 类型转换。${"1"+2},会将2转化为字符2进行拼接,输出12
  • 比较运算。${2>1},会输出true
  • 空值判断。${empty(name)},会判断name是否为空,输出true或者false,也可以判断对象是否为空、域中是否有属性
  • 三元表达式。${2>1?"是" : "否"},会输出是

JSTL标签:###

!!使用myeclipse开发的话,里面会自带有jstl标签库,所以不需要导入包
!!使用eclipse开发,需要以下步骤:

  1. 导入jstl.jar和standard.jar两个jar包
  2. 在WEB-INF目录下导入c.tld文件
  3. 在web.xml中进行配置
    <pre><jsp-config>
    <taglib>
    <taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
    <taglib-location>/WEB-INF/c.tld</taglib-location>
    </taglib>
    </jsp-config>
    </pre>最后在jsp中引用
    <pre><%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%></pre>

列举几个常用标签:
1. c:out 中的特殊字符会原样输出
<pre><c:out value="<a href='www.baidu.com'>xxx</a>" escapeXml="false"></c:out></pre>注:escapeXml控制是否转义,默认为true,即不转义,是什么就输出什么(value中的值)。例子中设置escapeXml为false,则会进
行转义输出,即输出xxx





**2. ** c:set 可以更改域中的值
<pre><c:set var="name" value="hahaha"></c:set></pre>注:更改域中名为name的值,若不存在,则添加name





3. c:if做判断
<pre><c:if test="${2>1}">
2是大于1
</c:if></pre>注:test接收一个bool型的数,如果为true就执行c:if里面的代码,否则没变化





4. c:forEach可以遍历
<pre><c:forEach begin="1" end="10" step="2" var="i">
${i}
</c:forEach></pre>上述代码相当于
<pre>for(int i = 1; i <= 10; i+=2){
System.out.print(i);
}</pre>可以在forEach中添加if判断,如下
<pre><c:forEach begin="1" end="10" step="1" var="i" varStatus="stat">
<c:if test="${stat.index % 2 == 0 }">
<font color="red">
${i }
</font>
</c:if>
<c:if test="${stat.index % 2 != 0 }">
${i }
</c:if>
</c:forEach></pre>输出1~10,如果是偶数,设为红色,否则,正常输出
该标签中有个varStatus,它有几个属性
index —— 当前数
count —— 目前的总数
first —— 现在指到的成员是否是第一个成员,返回类型为boolean
last —— 现在指到的成员是都是最后一个成员,返回类型为boolean





5. c:forTokens可以分割字符串
<pre><c:forTokens items="www.baidu.com" delims="." var="i">
${i}
</c:forTokens></pre>注:items表示需要切割的字符串,delims表示以什么为准进行切割,例子中是以点,var用于记录切割的字符片段





6. c:import可以包含页面
<pre><c:import url="/index.jsp">
</c:import></pre>上面这种方式是直接把页面包含进来

<pre><c:import url="/index.jsp" var="p" scope="page">
</c:import>
xxx
${p}
yyy</pre>上面这种方式则是把页面以page类型存入p中,然后在需要的位置输出p即可





7. c:url可以保存url
<pre><c:url value="/index.jsp" context="${pageContext.request.contextPath }" var="u" scope="page">
</c:url>
<a href="${u}">www.abc.com</a></pre>把url保存在u中,在需要的位置直接使用





8. c:redirect页面重定向
<pre><c:redirect url="/index.jsp" context="${pageContext.request.contextPath}">
<c:param name="name" value="huang">
</c:param>
</c:redirect></pre>c:param标签是用于保存放在url中的数据

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容

  • JSP 标准标签库(JSTL) JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能...
    FTOLsXD阅读 323评论 1 2
  • JSP 基本结构JSP 页面组成:模板文本(HTML,XML,纯文本),JSP 元素;JSP 元素:脚本元素,指令...
    jslancer阅读 829评论 0 11
  • 这部分主要是与Java Web和Web Service相关的面试题。 96、阐述Servlet和CGI的区别? 答...
    杂货铺老板阅读 1,397评论 0 10
  • 一、JSP基础 1.1什么是JSP JSP(Java ServerPage)是Java服务器端动态页面技术。是su...
    晨星资源阅读 1,137评论 0 6
  • 概念:1)JSP(Java Server Page)是Java服务器端动态页面技术。是sun公司制订的一种服务器端...
    南山伐木阅读 500评论 0 7