JavaWeb高级

JSP标准标签库(JSTL)

Java Standard Tag Library是apache的一个开源标签组件。http://tomcat.apache.org/taglibs/standard/

JSTL主要标签分类

JSTL 标签名称 标签配置文件 描述
核心标签库 c c.tld 定义了属性管理、迭代、判断、输出
SQL标签库 sql sql.tld 定义了数据库查询操作
XML标签库 xml x.tld 定义了操作XML数据
函数标签库 fn fn.tld 提供了一些常用的操作函数,例如:字符串函数
I18N格式标签库 fmt fmt.tld 格式化数据

标签的开发需要*.tld文件和所有的标签支持类,这些tld文件可以直接从jar包中拷贝出来,存放到项目的WEB-INF目录。
这里写图片描述
这里写图片描述

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="c" uri="/WEB-INF/c.tld"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>hello_jstl.jsp</title>
  </head>
  <body>
  <!-- 此标签就是一个输出,等同于out.print()操作 -->
  <c:out value="这是第一个JSTL"></c:out>
  </body>
</html>

这里写图片描述
如果觉得直接在jsp页面中使用标签的绝对路径不太方便,我们也可以在web.xml中进行以下的配置:

<!-- 配置好标签库,在jsp页面中可以直接使用映射路径完成 -->
<jsp-config>
    <taglib>
        <taglib-uri>http://127.0.0.1/javaweb/jstl/core</taglib-uri>
        <taglib-location>/WEB-INF/c.tld</taglib-location>
    </taglib>
    <taglib>
        <taglib-uri>http://127.0.0.1/javaweb/jstl/fmt</taglib-uri>
        <taglib-location>/WEB-INF/fmt.tld</taglib-location>
    </taglib>
    <taglib>
        <taglib-uri>http://127.0.0.1/javaweb/jstl/fn</taglib-uri>
        <taglib-location>/WEB-INF/fn.tld</taglib-location>
    </taglib>
    <taglib>
        <taglib-uri>http://127.0.0.1/javaweb/jstl/sql</taglib-uri>
        <taglib-location>/WEB-INF/sql.tld</taglib-location>
    </taglib>
    <taglib>
        <taglib-uri>http://127.0.0.1/javaweb/jstl/x</taglib-uri>
        <taglib-location>/WEB-INF/x.tld</taglib-location>
    </taglib>
</jsp-config>

在jsp页面中通过映射的uri进行使用:

<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%--@ taglib prefix="c" uri="/WEB-INF/c.tld"--%>
<!-- 使用web.xml中的映射路径 -->
<%@ taglib prefix="c" uri="http://127.0.0.1/javaweb/jstl/core" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>hello_jstl.jsp</title>
  </head>
  <body>
  <!-- 此标签就是一个输出,等同于out.print()操作 -->
  <c:out value="这是第一个JSTL"></c:out>
  </body>
</html>

核心标签库

这里写图片描述

c:out

该标签主要用于输出内容。语法:

<!-- 是否转换字符串(默认值是true),例如将>转换为&gt; -->
<c:out value="要打印的内容" [escapeXml="[true|false]"] [default="默认值"]></c:out>

<c:out value="要打印的内容" [escapeXml="[true|false]"]>默认值</c:out>

例如:

<%@ taglib prefix="c" uri="http://127.0.0.1/javaweb/jstl/core" %>
<%
    pageContext.setAttribute("info", "<a href='http://www.imooc.com'>慕课网</a>");
 %>
  属性存在,默认进行了转义:<c:out value="${info }"></c:out><br />
  属性存在,设置转义为false:<c:out value="${info }" escapeXml="false"></c:out><br />
  属性不存在,默认值:<c:out value="${ref }" default="属性不存在,这是默认值"></c:out><br />
  属性不存在,默认值:<c:out value="${ref }">属性不存在,这是默认值,通过标签体给出</c:out><br />

这里写图片描述

c:set

将属性保存在4种属性范围之内。语法:

<!-- 设置属性 -->
<c:set var="属性名称" value="属性内容" [scope="[page|request|session|application]"]/>
<c:set var="属性名称" [scope="[page|request|session|application]"]>属性内容</c:set> 

<!-- 设置对象 -->
<c:set value="属性内容" target="属性名称" property="属性名称" />
<c:set target="属性名称" property="属性名称" >属性内容</c:set>

例:

<%@ taglib prefix="c" uri="http://127.0.0.1/javaweb/jstl/core" %>
<!-- 设置简单属性 -->
 <c:set var="info" value="Hello World!" scope="request"></c:set><br />
通过c:set设置内容,通过c:out输出内容:<c:out value="${info }"></c:out>

<!-- 操作简单的javabean,实际上javabean属性的设置应该交给Servlet完成,JSTL仅仅是完成简单的输出 -->
<%
    SimpleBean bean = new SimpleBean();
    request.setAttribute("simple", bean); 
 %>

 <!-- 注意:target的EL表达式的空格问题 -->
 <c:set value="怒发冲冠凭栏" target="${simple }" property="content"></c:set>
 javabean的属性:${simple.content }
c:remove

删除指定范围之内的属性,功能与removeAttribute()方法类似,语法:

<c:remove var="属性名" [scope="[page|request|session|application]"]/>

例:

<%@ taglib prefix="c" uri="http://127.0.0.1/javaweb/jstl/core" %>
<!-- 使用jstl设置属性 -->
<c:set var="info" value="hello world!" scope="request"></c:set>
属性内容:${info }<br />
<!-- 使用jstl删除属性 -->
<c:remove var="info" scope="request"/>
属性删除后:${info }<br />
c:catch

处理异常,语法:

<c:catch [var="保存异常信息的属性名称"]>
    有可能发生异常的语句
</c:catch>  

例:

<%@ taglib prefix="c" uri="http://127.0.0.1/javaweb/jstl/core" %>
<c:catch var="errmsg">
    <%
        int result = 10 / 0;
     %>
</c:catch>
<h2>异常信息:${errmsg }</h2>
c:if

主要在程序中进行判断,功能和if语句类似。语法:

<c:if test="判断条件" var="存储判断结果" [scope="[page|request|session|application]"] />
<c:if test="判断条件" var="存储判断结果" [scope="[page|request|session|application]"] >
    满足条件时执行的语句
</c:if>

例:

<%@ taglib prefix="c" uri="http://127.0.0.1/javaweb/jstl/core" %>
    <c:if test="${param.ref=='admin' }" scope="page" var="res1">
        欢迎${param.ref }光临<br />
    </c:if>
    <c:if test="${10<30 }" scope="page" var="res2">
        10比30小<br />
    </c:if>
    第一个c:if的判断结果:${res1 }<br />
    第二个c:if的判断结果:${res2 }

这里写图片描述

多条件判断(c:choose、c:when、c:otherwise)

注意c:choose标签只能作为c:whenc:otherwise的父标签出现。语法:

<!-- c:choose -->
<c:choose>
    标签体内容(<c:when><c:otherwise>)
</c:choose>

<!-- c:when -->
<c:when test="判断条件">
    满足条件时执行的语句
</c:when>

<!-- c:otherwise -->
<c:otherwise>
    当所有<c:when>不满足时执行本标签体的内容
</c:otherwise>

例:

<%@ taglib prefix="c" uri="http://127.0.0.1/javaweb/jstl/core" %>
    <!-- 设置属性 -->
    <c:set var="num" value="10"></c:set>
    <!-- 判断属性并输出 -->
     <c:choose>
        <c:when test="${num==0 }">
            <c:out value="num等于0"></c:out>
        </c:when>
        <c:when test="${num>0 }">
            <c:out value="num是正数"></c:out>
        </c:when>
        <c:otherwise>
            <c:out value="num是负数"></c:out>
        </c:otherwise>
     </c:choose>
c:forEach

循环控制,主要用于迭代输出,和Iterator接口类似,语法:

<c:forEach [var="每一个对象的属性名称"] items="集合" [varStatus="保存相关成员信息"] [begin="集合的开始输出位置"] [end="集合的结束输出位置"] [step=""每次增长的步进值]>
    具体的操作代码
</c:forEach>

例:

<%@ taglib prefix="c" uri="http://127.0.0.1/javaweb/jstl/core" %>
    <%
        String[] info = {
   "Think in java","Head First Java","java7高级编程","Git权威指南"};
        pageContext.setAttribute("ref", info);

        List all = new ArrayList();
        all.add("诛仙");
        all.add("轩辕剑");
        all.add("魔剑");
        all.add("赤霄剑"
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: eclipse是一个开源的集成开发环境,可以用来开发Java应用程序。MySQL是一个流行的关系型数据库管理系统,可以用来存储和管理数据。JavaWeb是一种基于Java技术的Web开发框架,可以用来开发Web应用程序。通过结合使用这三个工具,可以开发出一个功能强大的JavaWeb管理系统,用来管理各种业务数据和业务流程。 ### 回答2: Eclipse是一种流行的开发环境,可以用来开发Java项目。MySQL是一个流行的关系型数据库管理系统。Javaweb管理系统是一个用Java语言编写的Web应用程序,可以用于管理数据库。 在使用Eclipse开发Java项目时,可以使用插件来使它与MySQL数据库连接。例如,可以使用MySQL Connector/J插件来连接到MySQL数据库。这样,可以在Eclipse中直接编写Java代码来访问和操作MySQL数据库中的数据。可以使用Java API来执行基本的CRUD操作:插入、更新、读取和删除数据。 在开发Javaweb管理系统时,可以使用Eclipse作为开发环境,使用MySQL作为后端数据库。可以使用Java Servlet和JavaServer Pages (JSP)技术来编写Javaweb应用程序。可以使用Java API来执行数据库操作。可以使用Java框架来管理Web应用程序,例如Spring框架来实现IoC、AOP等功能。 在Javaweb管理系统中,可以使用MySQL来存储各种类型的数据,包括用户信息、文章、评论、图片等等。可以使用Java Servlet来实现用户登录、注册、查询、删除等操作。可以使用JSP来显示数据、呈现用户界面,并使用CSS和JavaScript来美化页面和实现交互效果。 总之,Eclipse和MySQL是非常有用的工具,能够帮助开发人员快速开发高效且功能强大的Javaweb管理系统。 ### 回答3: Eclipse和MySQL都是非常常用的开发工具和数据库,它们之间的结合可以帮助开发人员更好地完成各种编程任务。 在Java Web应用开发中,Eclipse可以作为一个非常强大的集成开发环境,帮助开发人员编写和调试代码,同时还能与MySQL集成,实现对数据库的完整管理和查询。通过Eclipse可以很容易地创建和管理Java Web项目,结合MySQL数据库,开发人员可以使用各种技术,如Servlet、JSP等来构建出功能完善的Web应用。 对于初学者来说,Eclipse可以作为一个非常好的学习工具,因为它提供了许多强大的功能,例如代码自动补全、代码重构、调试等等,这些功能可以帮助开发人员更快地学习Java Web技术,并提高开发效率。 对于有经验的开发人员来说,Eclipse和MySQL的结合可以为他们提供更多的选择和自由。通过Eclipse可以快速地创建和管理多个Java Web项目,并且通过MySQL的连接管理工具,开发人员可以轻松地访问数据库,进行各种查询和操作。 总的来说,Eclipse和MySQL在Java Web开发中都是非常重要的工具,它们的结合使得开发更加便捷和高效。如果你正在进行Java Web开发,那么不妨尝试一下在Eclipse中集成MySQL,体验一下这种强大而便捷的编程模式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值