JSTL概述

回到首页☞

不得不说,前面几章是整个Java Web的核心技术,如果跳过了前面几章可以说做一个coding人员根本不合格。
N年前进入公司就使用OAF,几年没有使用过SSH。虽然每天在做业务逻辑增删改查,看似和大家一样,当解决问题的时候就会发现,根本不理解Java Web的根本。

至于JSTL这些知识已经过期了,但是有些陈旧项目可能会遇到,我们学习的是它的思想,只做简单了解。

在JSP中,EL表达式是个很方便的工具,使用EL表达式可以很方便的引用一些Java Bean以及其属性,而不会抛出NullPointException之类的错误。但是EL表达式功能很有限,例如不能遍历集合等,因此需要JSTL的支持。

1、什么是标签

JSTL全称为JSP Standard Tag Library,即JSP标准标签库。
标签是JSP作为Java EE分层程序中,显示层的一种解决方案。

2、标签实例

我们前面实例已经使用了标签
主要包含如下部分

  • 引入jar
  • jsp页面导入jar,并且给简写便于使用
  • 使用

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
<%@ page import="com.wht.demo.listener.PersonInfo" %>
<%@ page import="java.util.Date" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>

<%
    String action = request.getParameter("action");
    String account = request.getParameter("account");
    if ("login".equals(action) && account.trim().length() > 0) {
        PersonInfo personInfo = new PersonInfo();
        personInfo.setAccount(account.trim().toLowerCase());
        personInfo.setIp(request.getRemoteAddr());
        personInfo.setLoginDate(new Date());
        session.setAttribute("personInfo", personInfo);
        response.sendRedirect(response.encodeRedirectURL(request.getRequestURI()));
        return;
    } else if ("logout".equals(action)) {
        session.removeAttribute("personInfo");
        response.sendRedirect(response.encodeRedirectURL(request.getRequestURI()));
        return;
    }

%>
<html>
<head>
    <title>单态登录测试</title>
</head>
<body>
<c:choose>
    <c:when test="${personInfo !=null}">
        <center>
            <div>
                <h3>
                    欢迎您,${personInfo.account}</h3>
            </div>
            <div>
                <h3>
                    您登录的IP为,${personInfo.ip}</h3>
            </div>
            <div>
                <h3>
                    您登录的时间为<fmt:formatDate value="${personInfo.loginDate}"
                                           pattern="yyyy-MM-dd HH:mm:ss"/></h3>
            </div>
            <div>
                <h3>
                    <a href="${pageContext.request.requestURI}?action=logout">退出</a>
                </h3>
            </div>

            <script>setTimeout("location=location;", 5000);</script>
        </center>
    </c:when>

    <c:otherwise>
        ${msg}
        <c:remove var="msg" scope="session"/>
        <form action="${pageContext.request.requestURI}?action=login"
              method="POST">
            <div>账号:<input name="account"/></div>
            <div><input type="submit" value="登录"/></div>
        </form>
    </c:otherwise>
</c:choose>
</body>
</html>

3、为什么使用标签

JSP中一般使用Scriptlet脚本即<%%>包起来的java代码,不便于阅读和维护。
使用标签核心就是为了让jsp页面简洁美观好用。

4、JSTL标签库

JSTL是JSP官方给的一套标签库,包含了结合的遍历,数据的输出,字符串的处理,数据的格式化等等功能。
除了JSTL标签库,市面上还有其它的标签库,例如Struts标签库,Spring标签库,JFreeChart标签库等。
并且Java 有个通用思想,除了有标准的库往往会给个机会让你自定义一些模块。

回到首页☞

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值