后端常用的jsp语法&标签

JPS

1.1、什么是JSP

jsp=java server pages: java服务器页面,是一种动态的web技术

最大的特点:

  • 写jsp,就和写html一样

  • 区别:

    • HTML只给用户提供静态的数据
    • JSP页面中可以嵌套java代码,为用户提供动态数据
    • JSP的注释,在网页中查看源码是看不见的,HTML的注释,在网页中查看源码是能看见的!
  • 需要的依赖包

    <!--导入Servlet的依赖-->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>4.0.1</version>
            </dependency>
            <!--导入jsp的依赖-->
            <dependency>
                <groupId>javax.servlet.jsp</groupId>
                <artifactId>javax.servlet.jsp-api</artifactId>
                <version>2.3.3</version>
            </dependency>
            <!--JSTL表达式的依赖-->
            <dependency>
                <groupId>javax.servlet.jsp.jstl</groupId>
                <artifactId>jstl-api</artifactId>
                <version>1.2</version>
            </dependency>
            <!--standard标签库-->
            <dependency>
                <groupId>taglibs</groupId>
                <artifactId>standard</artifactId>
                <version>1.1.2</version>
            </dependency>
    

1.2、JSP基础语法

1.2.1、JSP表达式
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>测试</title>
</head>
<body>
Hello World
<%--我是jsp的注释--%>
<hr/>
<%--JSP表达式
作用:用来将程序的输出,输出到客户端
<%= 变量或者表达式%>
--%>
<%= new java.util.Date()%>
<hr/>

</body>
</html>

现在都用EL表达式${},很少用<%= %>了!

1.2.2、JSP脚本片段
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>测试</title>
</head>
<body>
Hello World
<br/>
<%--下面是jsp的脚本片段,里面可以填写java的代码!--%>
<%
out.print("ip地址为:"+request.getRemoteAddr());
%>
<%--我是jsp的注释--%>

</body>
</html>

1.2.3、JSP声明

jsp声明<%!声明的内容%>;一个声明语句可以声明一个或者多个变量、方法,供后面的java代码使用

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>测试</title>
</head>
<body>
Hello World
<%--jsp声明--%>
<%!
    public void kuang(){
        System.out.println("进入了方法框");
    }
%>
<%
    kuang();
%>


</body>
</html>

1.2.4、jsp注释

<%–我是jsp的注释–%>,jsp的注释不会在客户端显示,HTML的注释就会在客户端响应

1.2.5、jsp指令
  • 自定义跳转到500的页面(方式1)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--跳转到自定义的500界面--%>
<%@ page errorPage="error/500.jsp" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    int x = 1/0;
%>
</body>
</html>

如果上述的脚本发生错误,则跳转到指定的500页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h1>自定义500的jsp页面</h1>
</body>
</html>
  • 第二种方式,在web.xml中进行配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <error-page>
        <error-code>404</error-code>
        <location>/error/500.jsp</location>
    </error-page>
</web-app>
  • 设置欢迎界面,也是在web.xml中进行配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <error-page>
        <error-code>404</error-code>
        <location>/error/500.jsp</location>
    </error-page>
    <welcome-file-list>
        <welcome-file>welcom.jsp</welcome-file>
    </welcome-file-list>
</web-app>
  • include 标签 (一般情况下,用于引入外部的资源,比如网页的头部和网页的脚部)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%--    这是第一中使用方式--%>
    <%@include file="common/header.jsp"%>
    <h1>我也网页主题</h1>
    <%@include file="common/footer.jsp"%>
<%--一般情况下会使用第二种方式--%>
<%--第二种方式jsp标签--%>
    <jsp:include page="/common/header.jsp"></jsp:include>

</body>
</html>

1.3 JSP标签、JSTL标签、EL表达式

使用之前需要导入需要的依赖包!!!

  • EL表达式:${}

    • 获取数据
    • 执行运算
    • 获取web开发的常用对象
  • JSP标签(常用的就是包含和转发)

    • <jsp:include page=“”> 融合两个不同的页面
    • <jsp:forward page=“”> 进行页面的转发

在这里插入图片描述

  • JSTL标签

    JSTL标签库的使用就是为了弥补HTML标签的不足;它自定义许多标签,可以供我们使用,标签的功能和java代码一样!

    • 引入对应的taglib标签

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

  • c:if 标签的使用(与我们在程序中用if的一样)

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <html>
    <head>
        <title>jstl核心标签</title>
    </head>
    <body>
    
    <form action="core.jsp" method="get">
        <%--
        EL表达式获取表单中的数据
        ${param.参数名}
        --%>
        <input type="text" name="username" value="${param.username}">
        <input type="submit" value="登录">
    </form>
    <%--判断用户提交的用户是不是管理员--%>
    <c:if test="${param.username=='admin'}" var="isadmin">
        <c:out value="管理员欢迎您!"/>
    </c:if>
    <%--下面使用自闭和的标签--%>
    <c:out value="${isadmin}"/>
    </body>
    </html>
    
  • c:set 和 c:choose 标签

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%--
      Created by IntelliJ IDEA.
      User: 26287
      Date: 2022/6/9
      Time: 10:53
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>c:when标签</title>
    </head>
    <body>
    <%--使用set先定义一个变量,值为85--%>
    <c:set var="score" value="85"></c:set>
    <%--下面使用choose when进行判断--%>
    <c:choose>
        <c:when test="${score>=90}">
            你的成绩为优秀
        </c:when>
        <c:when test="${score>=80}">
            你的成绩为中等
        </c:when>
        <c:when test="${score>=60}">
            你的成绩为及格
        </c:when>
    </c:choose>
    </body>
    </html>
    
  • c:forEach标签

    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ page import="java.util.ArrayList" %><%--
      Created by IntelliJ IDEA.
      User: 26287
      Date: 2022/6/9
      Time: 11:12
      To change this template use File | Settings | File Templates.
    --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>foreach的练习</title>
    </head>
    <body>
    <%
        ArrayList<String> people = new ArrayList<>();
        people.add(0,"0号同学");
        people.add(1,"1号同学");
        people.add(2,"2号同学");
        people.add(3,"3号同学");
        people.add(4,"4号同学");
        request.setAttribute("list",people);
    %>
    <%--
    
    注释详解
    var,每一次遍历出来的变量
    items,要遍历的对象
    begin,哪里开始
    end,到哪里结束
    step,步长!!!
    
    --%>
    <c:forEach var="people" items="${list}">
        <c:out value="${people}"/>
        <br>
    </c:forEach>
    
    <c:forEach var="people" items="${list}" begin="1" end="3" step="1" >
        <c:out value="${people}"/> <br>
    </c:forEach>
    
    </body>
    </html>
    
    

猜你喜欢

转载自blog.csdn.net/qq_44540136/article/details/125200084