JSP、EL、JSTL快速入门笔记

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

一、JSP

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

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

JSP、EL、JSTL快速入门笔记_第1张图片JSP、EL、JSTL快速入门笔记_第2张图片

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为例子讲解
JSP、EL、JSTL快速入门笔记_第3张图片

 <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、内置对象

JSP、EL、JSTL快速入门笔记_第4张图片

二、EL

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

JSP、EL、JSTL快速入门笔记_第5张图片
JSP、EL、JSTL快速入门笔记_第6张图片JSP、EL、JSTL快速入门笔记_第7张图片JSP、EL、JSTL快速入门笔记_第8张图片

JSP、EL、JSTL快速入门笔记_第9张图片JSP、EL、JSTL快速入门笔记_第10张图片JSP、EL、JSTL快速入门笔记_第11张图片JSP、EL、JSTL快速入门笔记_第12张图片JSP、EL、JSTL快速入门笔记_第13张图片

三、JSTL

JSP、EL、JSTL快速入门笔记_第14张图片JSP、EL、JSTL快速入门笔记_第15张图片

1、if标签

JSP、EL、JSTL快速入门笔记_第16张图片JSP、EL、JSTL快速入门笔记_第17张图片

2、choose标签

JSP、EL、JSTL快速入门笔记_第18张图片

3、foreach标签

JSP、EL、JSTL快速入门笔记_第19张图片
在这里插入图片描述
JSP、EL、JSTL快速入门笔记_第20张图片

JSP、EL、JSTL快速入门笔记_第21张图片

4、案例

JSP、EL、JSTL快速入门笔记_第22张图片
JSP、EL、JSTL快速入门笔记_第23张图片
JSP、EL、JSTL快速入门笔记_第24张图片

你可能感兴趣的:(java,web,java,jsp)