JSP、EL、JSTL快速入门笔记

网页左边,向下滑有目录索引,可以根据标题跳转到你想看的内容

一、JSP

jsp就是一个Servlet,它为了简化代码书写,让我们可以像写html一样编写jsp文件,最终它会将jsp页面转换为java代码

jsp脚本
<% 代码 %>:在这里的代码,最终会转到service方法中,也就是service中可以写什么,这里就可以写什么
<%! 代码 %>:在这里的代码,是用来定义成员的,最终会直接转到Servlet中,比如定义成员变量,成员方法
<%= 代码 %>:这里的代码,是用来输出的,最终会直接转到Servlet中,用来动态输出数据

在这里插入图片描述在这里插入图片描述

jsp内置对象
因为jsp是一个Servlet,所以我们在类中定义的方法对象,可以在jsp中直接使用,比如其中定义了一个out对象,此对象封装着response的输出对象,这就是一个内置对象,可以直接在jsp中使用,一共9个,这里简单介绍3个
response:就是Servlet的响应体对象
request:Servlet的请求体对象
out:将数据输出到页面上,字符输出流对象,和response.getWriter()类似,out写在哪里,就会在哪里输出,但是因为response响应优先级高,所以response的响应都会优先,会打乱我们页面元素顺序,所以使用out来输出数据到页面

1、JSP指令

用于配置JSP页面,导入资源文件

格式
<%@ 指令名称 属性名1=属性值1 属性名2=属性值2 ... %>
3个指令
page:配置jsp页面
include:页面包含,导入页面资源的文件,用来导入其它页面
taglib:导入资源,比如JSTL标签库

首先我们需要引入JSTL的依赖,因为taglib指令的讲解需要引入JSTL为例子讲解
在这里插入图片描述

 <dependencies>
    <!--dependency>
      <groupId>com.yzpnb</groupId>
      <artifactId>[the artifact id of the block to be mounted]</artifactId>
      <version>1.0-SNAPSHOT</version>
    </dependency-->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
<!--      <scope>provided</scope>-->
    </dependency>

    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
      <version>2.2.1-b03</version>
<!--      <scope>provided</scope>-->
    </dependency>

    <dependency>
      <groupId>org.glassfish.web</groupId>
      <artifactId>javax.servlet.jsp.jstl</artifactId>
      <version>1.2.5</version>
    </dependency>

    <dependency>
      <groupId>org.glassfish.web</groupId>
      <artifactId>jstl-impl</artifactId>
      <version>1.2</version>
      <scope>runtime</scope>
    </dependency>
  </dependencies>

在这里插入图片描述

<!--
    - page指令,用于配置页面
        - contentType :等同于response.setContentType(),用来配置Servlet的响应编码格式,idea等开发工具会参考此配置,设置页面编码格式
        - pageEncoding:用来配置页面编码格式,使用记事本等编辑工具,必须指定此配置,才能设置页面编码
        - language    :用来指定用那种编程语言,但是其实JSP到现在为止也只有java在用
        - buffer      :缓冲区大小,默认8kb
        - import      :用来导包,因为我们在jsp页面写java代码,有时需要导包,这时就使用此属性完成导包
        - errorPage   : 指定错误页面,当前页面发生错误,自动跳转到指定错误页面
        - isErrorPage : 标识当前页面是否是错误页面,如果为true,代表当前页面是错误页面,可以使用内置对象exception,默认为flase
    一般page指令会有很多个,因为导包时,我们会一个包占一行,而不是所有导包配置都写在一行上。
-->
<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" language="java" buffer="16kb" import="java.util.*" isErrorPage="true" errorPage="index.jsp" %>
<%--<%@ include file="index.jsp" %>
    此指令用来包含一个页面,比如你有10个页面,每个页面的头部,都是一个logo+菜单,那么就可以把logo+菜单单独写成一个页面
    然后通过此指令包含过来,这样10个页面就不用每个页面写相同的代码了
--%>
<!--
    - 我们这里用JSTL举例子,但是需要JSTL的jar包
    prefix:是前缀,表示我们可以通过属性值来使用引入的资源,比如我这里属性值是c,那么可以通过c标签引用JSTL的功能
    uri:资源路径,这里导入了jstl的包,
-->
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <!--这个就是JSTL标签的用法,通过前缀即可使用JSTL标签中的内容-->
    <c:catch>
        
    </c:catch>
    <form action="/dome1" method="post">
        <input type="text" name="username" placeholder="请输入用户名"/><br/>
        <input type="text" name="password" placeholder="请输入密码"/><br/>

        <input type="checkbox" name="hobby" value="game"/>游戏
        <input type="checkbox" name="hobby" value="basketball"/>篮球<br/>

        <input type="submit" value="提交"/>
    </form>

    <%!
        int j = 0;
    %>

    <%
        for (int i = 0 ; i <= 10;i++){
            j = j+i;
            System.out.println(j);
        }
    %>

    <h1>经过计算最终j的结果是:<%= j %></h1>
</body>
</html>

2、JSP注释

<!--html注释,只能注释HTML代码片段-->
<%-- jsp注释,可以注释所有 --%>

3、内置对象

在这里插入图片描述

二、EL

Expression Language 表达式语言 简称EL
替换和简化JSP页面中java代码的编写
语法:$ {表达式},如果想要在页面中展示${}这样的字符串,而不进行表达式运算,只需在前面加上,就是\ ${3>4}

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

三、JSTL

在这里插入图片描述在这里插入图片描述

1、if标签

在这里插入图片描述在这里插入图片描述

2、choose标签

在这里插入图片描述

3、foreach标签

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

4、案例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

殷丿grd_志鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值