jstl中if语句和for循环语句、mvc三层粗讲

jstl

jstl其实是取代了脚本元素中的逻辑操作 例如 - 循环 分支(if)
el + jstl 取代了脚本元素
jsp中 html代码 和java代码不可以混搭 必须分开 (编写的难度复杂)
jstl: 标签标签库 , 就是一套接口 , 定义的是方法
在这里插入图片描述
在这里插入图片描述
重要:接口是sun公司定义的 , 需要导入接口的jar包 , 还需要导入实现类的jar包。
在这里插入图片描述
在jsp中引入jstl的jar包

<%-- taglib 专门用来引入第三方类库 prefix=“别名 , 取值无所谓(建议都取名为c)” uri=“引入的标签库地址” --%>
<%-- c标签是一个习惯 --%>
<%–<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>–%>
<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core” %>
<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>

forEach

<%@ page import="java.util.List" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="com.llz.domain.User" %>
<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%--  taglib 专门用来引入第三方类库 prefix="别名 , 取值无所谓(建议都取名为c)" uri="引入的标签库地址" --%>
<%-- c标签是一个习惯 --%>
<%--<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>--%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

    <%--
        增强循环
        for(Object o : 集合){
            sout(o)
        }
        <c:forEach items="放置集合数组的位置,支持el表达式" var="声明当前的临时变量,不需要类型,还会将该数据放入临时域(page)中">
            循环体
        </c:forEach>
    --%>
    <h1>增强循环</h1>
    <h2>数组</h2>
    <%
        String [] myArray = {"a" , "b" , "c"};
        request.setAttribute("myArray" , myArray);
    %>
    <c:forEach items="${myArray}" var="tempStr">
        ${tempStr}<br/>
    </c:forEach>

    <h2>集合List-字符串</h2>
    <%
        List<String> list = new ArrayList<String>();
        list.add("a");
        list.add("b");
        list.add("c");
        request.setAttribute("list" , list);
    %>
    <c:forEach items="${list}" var="tempStr">
        ${tempStr}
    </c:forEach>

    <h2>集合List-对象</h2>
    <%
        //矩形编译 alt + 鼠标左键
        List<User> javaBeanList = new ArrayList<User>();
        javaBeanList.add(new User("jack1" ,"rose1" , "1234"));
        javaBeanList.add(new User("jack2" ,"rose2" , "1111"));
        javaBeanList.add(new User("jack3" ,"rose3" , "2222"));
        request.setAttribute("javaBeanList" , javaBeanList);
    %>
    <c:forEach items="${javaBeanList}" var="user">
        ${user} @@ ${user.username2} @@ ${user.nickname} @@ ${user.password} <br/>
    </c:forEach>


    <h2>集合Map-string,string</h2>
    <%
        //矩形编译 alt + 鼠标左键
        Map<String , String > map = new HashMap<String ,String>();
        map.put("a" , "b");
        map.put("key1" , "value1");
        map.put("xxx" , "张三");
        request.setAttribute("map" , map);
    %>
    <%-- map的遍历有两种方式 1.keySet 2.entrySet--%>
    <%--key=value  key= value--%>
    <c:forEach items="${map}" var="entry">
        ${entry} @@ ${entry.key} @@ ${entry.value} <br/>
    </c:forEach>
    <h1>普通循环</h1>
    <%--
        for(int i =0 ; i < 长度 ; i++){
            循环体  sout(i)
        }
        <c:forEach begin="从哪开始" end= 在哪结束" step="步进,每次增加几" var="变量的名称,将数据放入临时域中"> 支持普通循环
            循环体
        </c:forEach>
    --%>
    <c:forEach begin="1" end="9" step="1" var="i">
        ${i}
    </c:forEach>

    <h1>扩展</h1>
    <%--
        varStatus : 当前变量的状态值  , 也会放入临时域中
            index:表示,当前变量在集合中的索引值
            count: 表示, 当前循环遍历了几次

    --%>
    <c:forEach items="${myArray}" var="tempStr" varStatus="status" >
        ${tempStr} @@  ${status.count} @@  ${status.index}<br/>
    </c:forEach>
</body>
</html>

if

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

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <%--
        if 条件判断(分支)  顺序 循环 分支
        if(条件表达式){
            条件成立
        }else{
            条件不成立
        }
        el表达式中没有else
         var="变量名称,将test中的条件表达式的结果 存入到某个变量中,			当test中的表达式结果为true时,则会执行本体内容"
         var flag = ${5>3}
         scope="" 将临时变量放入某个域中
        <c:if test="条件表达式,支持el表达式" var="非必要属性" scope="非必要属性" >
            条件成立
        </c:if>
    --%>
    <c:if test="${5<3}" var="flag" scope="page">
        大于
    </c:if>
    <c:if test="${not flag}">
        小于
    </c:if>
    <%--<c:if test="${5<3}">
        小于
    </c:if>--%>

    <hr/>
    <%--
        登录案例
    --%>
    <%
        //放入数据   用户登录数据要放入session , 保证多次请求必须共享user数据的 而不是用一次就销毁了
        //ServletContext(application) :  一个项目所有人共享同一份数据
        //request放入的原因是, 可以演示俩种效果
        //request.setAttribute("user" , new User("张三" , "jack" , "1234"));
    %>
    <c:if test="${empty user}">
        对不起,请您登录
    </c:if>
    <c:if test="${not empty user}">
        欢迎您,${user.username2}登录成功
    </c:if>
</body>
</html>

MVC和三层(思想)

mvc
控制器Controller:对请求进行处理,负责请求转发;
视图View:界面设计人员进行图形界面设计;
模型Model:编写程序应用的功能(实现算法等等)、数据库管理;
在这里插入图片描述

jsp开发模式

在Java中 MVC的演化,jsp开发模式 实际上是 MVC在Java中具体实现
在这里插入图片描述

三层

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值