JAVAWeb11-服务器渲染技术 -JSP-03-JSTL(会使用)

这篇具有很好参考价值的文章主要介绍了JAVAWeb11-服务器渲染技术 -JSP-03-JSTL(会使用)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. JSTL 标签库介绍

  1. JSTL 标签库 是指 JSP Standard Tag Library :JSP 标准标签库
  2. EL 表达式是为了替换 jsp 中的表达式脚本,JSTL 是为了替换代码脚本。这样 jsp 页面变得更佳简洁
  3. JSTL 由五个标签库组成
    JAVAWeb11-服务器渲染技术 -JSP-03-JSTL(会使用)
  4. 使用 JSTL,需要导入相关的 jar 包
    JAVAWeb11-服务器渲染技术 -JSP-03-JSTL(会使用)

2. JSTL 快速入门

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>jstl的快速入门</title>
</head>
<body>
<h1>jstl的快速入门</h1>
<%--解读
    1. c:if ... 类似
    2. if(10>2){
       out.println("<h1>10 > 2 成立~</h1>")
    }
--%>
<c:if test="${10 < 2}">
    <h1>10 > 2 成立~</h1>
</c:if>
</body>
</html>

注意细节
● taglib 引入标签,要放在行首
● 导入 jstl jar 包后,要重新发布 web 工程,否则不识别 jstl

3. core 核心库

3.1 <c:set />

  1. 介绍:
    <c:set scope="request" var="username" value="hello~"/>
    JAVAWeb11-服务器渲染技术 -JSP-03-JSTL(会使用)
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>c:set标签的使用</title>
</head>
<body>
<h1>c:set标签的使用</h1>
<%--<%--%>
<%--    //Java代码--%>
<%--    request.setAttribute("email", "hsp@sohu.com");--%>
<%--%>--%>
<%--解读
    <c:set /> set 标签可以往域中保存数据
    1. 等价 域对象.setAttribute(key,value);
    2. scope 属性设置保存到哪个域
            page 表示 PageContext 域(默认值)
            request 表示 Request 域
            session 表示 Session 域
            application 表示 ServletContext3. var 属性设置 key 是什么
    4. value 属性设置值
--%>
<c:set scope="request" var="name" value="hello~"></c:set>
c:set-name的值${requestScope.name}
</body>
</html>

3.2 <c:if />

  1. 介绍
    <c:if test="${ 10 > 2 }">hello</c:if>
    JAVAWeb11-服务器渲染技术 -JSP-03-JSTL(会使用)
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>c:if标签使用</title>
</head>
<body>
<c:set scope="request" var="num1" value="20"></c:set>
<c:set scope="request" var="num2" value="10"></c:set>
<c:if test="${num1 > num2}">
    <h1>${num1} > ${num2}</h1>
</c:if>
</body>
</html>

3.3 <c:choose> <c:when> <c:otherwise>标签

  1. 介绍: 多路判断。跟 switch … case … default 非常接近
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>c:choose标签的使用</title>
</head>
<body>
<h1>c:choose标签的使用</h1>
<%
    request.setAttribute("score", 50);

    //request.setAttribute("k1", "request-k1的值");
    //session.setAttribute("k1", "session-k1的值");
    //application.setAttribute("k1", "application-k1的值");
    //pageContext.setAttribute("k1", "pageContext-k1的值~");
%>
<%--老师多说一句
1. 如果${requestScope.score} 那么就明确的指定从request域对象取出数据
2. 如果${score}, 这是就按照从小到大的域范围去获取 pageContext->request->session->application
3. 一会给小伙伴验证一把.
--%>
k1=${k1}
<c:choose>
	<%--test双引号内不要随便加空格 会导致该语句失效--%>
    <c:when test="${requestScope.score > 80}">
        <h1>${score}-成绩优秀</h1>
    </c:when>
    <c:when test="${requestScope.score >= 60}">
        <h1>${score}-成绩一般, 及格了</h1>
    </c:when>
    <c:otherwise>
        <h1>${score}-没有及格,下次努力~</h1>
    </c:otherwise>
</c:choose>
</body>
</html>

3.4 <c:forEach />标签

  1. 介绍
    c:forEach 标签 用来遍历输出, 主要有 4 种形式:
    ● 普通遍历输出 i 到 j
    ● 遍历数组
    ● 遍历 Map
    ● 遍历 List

JAVAWeb11-服务器渲染技术 -JSP-03-JSTL(会使用)

<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %>
<%@ page import="com.hspedu.entity.Monster" %>

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

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>c:forEach 标签</title>
</head>
<body>
<h1>c:forEach 标签</h1>
<hr/>
<h1>1种遍历方式从i到j</h1>
<ul>
    <%--
    1.遍历 152. 输出 begin 属性设置开始的索引 end 属性设置结束的索引
    3. var 属性表示循环的变量(也是当前正在遍历到的数据)
    4. 等价 for (int i = 1; i <= 5; i++) {}
    5. 在默认情况下, i 每次会递增1
    --%>
    <c:forEach begin="1" end="5" var="i">
        <li>排名=${i}</li>
    </c:forEach>
</ul>
<hr/>
<h1>2种遍历方式:遍历数组</h1>
<%
    request.setAttribute("sports", new String[]{"打篮球", "乒乓球"});
%>
<%--
    <c:forEach items="${ requestScope.sports }" var="item"/>
    1. items 遍历的集合/数组
    2. var 遍历到的数据
    3. 等价 for (Object item: arr) {}
--%>
<c:forEach items="${requestScope.sports}" var="sport">
    运动名称= ${sport}<br/>
</c:forEach>
<hr/>
<h1>3种遍历方式:遍历Map</h1>
<%
    Map<String, Object> map = new HashMap<>();
    map.put("key1", "北京");
    map.put("key2", "上海");
    map.put("key3", "天津");
    request.setAttribute("cities", map);
%>
<%--
    1. items 遍历的map集合
    2. var 遍历到的数据
    3. entry.key 取出key
    4. entry.value 取出值
--%>
<c:forEach items="${requestScope.cities}" var="city">
    城市信息: ${city.key}--${city.value}<br/>
</c:forEach>
<hr/>
<h1>4种遍历方式:遍历List</h1>
<%
    List<Monster> monsters = new ArrayList<>();
    monsters.add(new Monster(100, "小妖怪", "巡山的"));
    monsters.add(new Monster(200, "大妖怪", "做饭的"));
    monsters.add(new Monster(300, "老妖怪", "打扫位置的"));
    request.setAttribute("monsters", monsters);
%>
<%--
    items 表示遍历的集合
    var 表示遍历到的数据
    begin 表示遍历的开始索引值 ,0开始计算
    end 表示结束的索引值
    step 属性表示遍历的步长值
    varStatus 属性表示当前遍历到的数据的状态,可以得到step,begin,end等属性值
    //老师提示, 对于jstl标签,能看懂,会使用即可
--%>
<c:forEach items="${requestScope.monsters}" var="monster">
    妖怪的信息: ${monster.id}-${monster.name}-${monster.skill}<br/>
</c:forEach>
</body>
</html>

Monster.java

public class Monster {
    private Integer id;
    private String name;
    private String skill;

    public Monster(Integer id, String name, String skill) {
        this.id = id;
        this.name = name;
        this.skill = skill;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSkill() {
        return skill;
    }

    public void setSkill(String skill) {
        this.skill = skill;
    }
}

4. JSTL+EL 作业

4.1 作业布置

● 需求分析:
使用 jsp+servlet+jstl+el 完成查询-显示案例, 需求如图

JAVAWeb11-服务器渲染技术 -JSP-03-JSTL(会使用)
JAVAWeb11-服务器渲染技术 -JSP-03-JSTL(会使用)

  1. 点击超链接, 可以显示所有的妖怪信息
  2. 要求显示的数据在 Servlet 准备,并放入到 request 域对象
  3. 扩展, 如果要求增加根据 id 条件过滤, 怎么处理? - 老韩忠告:一定要自己先思考->完成->再看评讲

● 思路分析(程序框架图)
JAVAWeb11-服务器渲染技术 -JSP-03-JSTL(会使用)

4.2 作业评讲

query.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>查询妖怪</title>
</head>
<body>
<h1>查询妖怪</h1>
<a href="<%=request.getContextPath()%>/queryServlet">点击查询所有的妖怪</a>
</body>
</html>

QueryServlet.java

public class QueryServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //1. 准备要显示的数据--> 从DB
        ArrayList<Monster> list = new ArrayList<>();
        list.add(new Monster(100, "牛魔王", "芭蕉扇"));
        list.add(new Monster(200, "狐狸精", "美人计"));
        list.add(new Monster(300, "白骨精", "吃人骨头"));

        //2. 把list放入到request域, 供jsp页面使用
        request.setAttribute("monsters", list);
        //3. 请求转发 list.jsp
        request.getRequestDispatcher("/hm/list.jsp")
                .forward(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }
}

list.java文章来源地址https://www.toymoban.com/news/detail-437954.html

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

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>显示所有的妖怪</title>
</head>
<body>
<h1>显示所有的妖怪</h1>
<table border="1px" width="400px">
    <tr>
        <td>id</td>
        <td>name</td>
        <td>skill</td>
    </tr>
<%--    使用c:foreach循环显示即可 显示id > 200--%>
    <c:forEach items="${monsters}" var="monster">
        <c:if test="${monster.id >= 200}">
            <tr>
                <td>${monster.id}</td>
                <td>${monster.name}</td>
                <td>${monster.skill}</td>
            </tr>
        </c:if>
    </c:forEach>

</table>
</body>
</html>

到了这里,关于JAVAWeb11-服务器渲染技术 -JSP-03-JSTL(会使用)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【无标题】JSP--Java的服务器页面

    jsp是什么? jsp的全称是Java server pages,翻译过来就是java的服务器页面。 jsp有什么作用? jsp的主要作用是代替Servlet程序回传html页面的数据,因为Servlet程序回传html页面数据是一件非常繁琐的事情,开发成本和维护成本都非常高。 下面演示一下通过Servlet来回传数据: 首先我们

    2024年02月14日
    浏览(41)
  • 什么是JavaWeb(概念|应用|服务器)?

    #1概念# web开发 : web,网页的意思,比如www.baidu.com 静态web : html,css 静态网站是指在服务器上预先准备好的网页内容,用户访问时服务器直接将这些静态页面发送给用户浏览器,没有经过额外的处理或数据库查询。静态网站通常由HTML、CSS和JavaScript等静态文件组成。相比动

    2024年03月16日
    浏览(38)
  • JavaWeb ( 三 ) Web Server 服务器

    Web Server 服务器是一种安装在服务器主机上的应用程序, 用于处理客户端(Web浏览器)的请求,并返回响应内容。服务器使用HTTP(超文本传输协议)与客户机浏览器进行信息交流。 简单说就是将http协议的信息翻译成对应开发语言可以处理的对象信息。 例如 : Tomcat将http协议所传递的

    2024年02月02日
    浏览(53)
  • 爬虫——服务器渲染和客户端渲染

    目录 爬虫——服务器渲染和客户端渲染 服务器渲染 客户端渲染 专业解释 服务器渲染(Server-Side Rendering,SSR)是一种在服务器端完成页面渲染的网页处理技术。具体来说,就是服务器在响应客户端请求时,会生成页面的HTML代码,并将其返回给客户端。这种方式的优点包括更

    2024年02月06日
    浏览(55)
  • 在eclipse上安装JavaWeb插件,配置tomcat服务器和新建JavaWeb项目

    在eclipse上安装JavaWeb插件,配置tomcat服务器和新建JavaWeb项目的具体步骤如下: 一、eclipse上安装JavaWeb插件 1.在官网下载tomcat服务器zip包,解压到C盘(根据需求自行选择解压位置)。 2.打开eclipse选择帮助。 3.选择关于,查看eclipse版本。  4.记住版本,然后选择安装插件。 5.选

    2024年02月06日
    浏览(46)
  • 使用宝塔部署JavaWeb前后端项目到服务器

    1.我使用的是腾讯云的轻量应用服务器,在安装系统的时候可以选择使用宝塔Linux面板。  2.安装了宝塔面板以后,可以在应用管理中看到宝塔面板的登陆地址。在登录之前需要在 用户名和密码那一栏 登录,来获取宝塔的用户名和密码。 3.进入宝塔以后输入用户名和密码即可

    2024年02月04日
    浏览(50)
  • C++服务器框架03_日志系统03_appender

    sylar/log.h sylar/log.cpp

    2024年02月13日
    浏览(80)
  • JavaWeb-WebSocket浏览器服务器双向通信

    WebSocket是基于TCP的一种新的网络协议。它实现了浏览器与服务器 全双工通信 —浏览器和服务器只需要完成一次握手,两者之间就可以创建 持久性 的连接,并进行双向数据传输。 HTTP传输 WebSocket传输 HTTP协议和WebSocket协议的对比: HTTP是短连接,WebSocket是长连接 HTTP通信是单向

    2024年01月21日
    浏览(45)
  • 服务器渲染+自定义模块+mysql操作

    A.第一步,导入模块库和第三方库 npm init npm --registry https://registry.npmmirror.com install art-template moment B.第二步,调整html文件 调整js文件 效果图: 通过前面几个章节的学习,我们基本掌握了NodeJS编程的基础知识,但是我们也直观的发现了一个问题,和我们之前学习浏览器编程时

    2024年01月25日
    浏览(48)
  • JavaWeb项目部署到服务器并连接本地数据库(超详细!)

    目录 一、下载XShell、Xftp工具 二 、建立服务器连接 三、服务器环境配置 四、打包web项目传输入服务器 五、服务器Web项目连接本地数据库 个人博客欢迎访问 --- 猿客栈 在XShell官网下载两个工具,用来操作服务器的Linux系统 输入服务器的主机名,验证用户和密码,默认用户名

    2024年02月05日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包