Javaweb-JSTL核心库

一、 流程处理标签

1、if判断语句

<c:if test="判断语句">
    //满足条件时是执行此行
</c:if>

2、if-else语句

<c:choose>
    <c:when test="判断语句">
        //条件成立执行此行代码
    </c:when>
    <c:otherwise>
        //条件不成立执行此行代码
    </c:otherwise>
</c:choose>

其中对于不管是if语句还是if-else语句,判断语句可以是EL表达式。这里我说的if语句和if-else语句只是为了便于我自己的理解,请不要和我抬杠。
3、循环语句

<c:forEach var="?" items="?">
    //循环体
</c:forEach>

二、网页重定向、网页导入、URL重写

1、网页重定向

<c:redirect url="?"></c:redirect>

2、网页导入

<c:import url="?"></c:import>

3、URL重写

<c:url url="?"></c:url>

三、属性处理和输出标签、

1、设置属性标签

<c:set var="变量名" value="变量值" scope="属性范围"></c:set>

如果我们不指定scope的范围,那么首先一次从page、request、session、application中寻找属性名,如果找到则设置属性值,如果找不到,则在page中创建一个行的属性名-属性值
2、移除一个属性标签

<c:remove var="变量名" scope="属性范围"></c:remove>

2、输出标签

<c:out value="?"></c:out>

四、实验一

实现一个登录功能,如果用户登录成功,那么久跳转到登录成功页面显示用户名,如果用户登录失败,则重定向到登录页面,并输出一条额外信息
login.jsp:登录页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
    <title>Login Page</title>
</head>
<body>
    <c:import url="error.jsp"/>             //使用<c:import url="?">标签包含一个错误信息
    <form action="/check.jsp" method="post">//信息录入后转到check.jsp页面处理
        Name:<br>
        <input type="text" name="name"/><br>
        Password:<br>
        <input type="password" name="password"><br>
        <input type="submit" name="submit"/>
    </form>
</body>
</html>

error.jsp:错误信息页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
    <title>Error Page</title>
</head>
<body>
    <c:out value="${error}"/>  //如果登录失败,我就会吧失败信息放在session当中,并设置error属性,和相应属性自
</body>
</html>

check.jsp:检查用户登录信息页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<html>
<head>
    <title>Check In</title>
</head>
<body>
    <c:choose>
        <c:when test ="${param.name=='makeliwei' && param.password=='make'}" >//判断条件使用EL表达式,使用${param.propertyName}的方式获取属性值,

            <c:set var="login" value="${param.name}" scope="session"/>  //信息验证成功,使用<c:set var="?" value="?" scope="?"/>方式将name值保存在session中
            <jsp:forward page="login_success.jsp"/>                    //通过<jsp:forward page="?"/>标签转发login_success.jsp页面
        </c:when>
        <c:otherwise>                                                 //判断条件不成立则执行下面的语句
            <c:set var="error" value="密码错误或者账号不存在" scope="session"></c:set>//
            <c:redirect url="login.jsp"/>//使用<c:redirect url="?"/>方式重定向到我们的login.jsp
        </c:otherwise>
    </c:choose>
</body>
</html>

login_success.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Login Sucess</title>
</head>
<body>
    <h1>Welcome to TaoTao.com</h1>
    <c:out value="${login}"/>//使用<c:out value="?"/>属性值输出
</body>
</html>

效果演示
在浏览器中输入:http://localhost:8088/login.jsp
这里写图片描述
输入登录信息name=”makeliwei,password=”make;页面就跳转到了check.jsp
信息输出正确则,显示如下页面
这里写图片描述
信息输入错误则显示包含错误信息的登录页面
这里写图片描述

五、实验二

使用标签元素实现URL重写功能
counter.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<c:set var="counter" value="${sessionScope.counter+1}" scope="session"></c:set>
<html>
<head>
    <title>Counter</title>
</head>
<body>
    <h2>JSP Counter ${sessionScope.counter}</h2>
    <a href="<c:url value="counter.jsp"/>">递增</a>
</body>
</html>

效果演示
1、在浏览器没有禁用Cookie的效果演示图
这里写图片描述
点击递增,我们的URL并没有发生任何变化
这里写图片描述
2、禁用Cookie后
这里写图片描述
我们发现点击递增,浏览器地址栏的URL发生了变化。实现了URL重写

参考

《JSP&Servlet读书笔记》-林信良

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值