后端常用的jsp语法&标签

JPS

1.1、什么是JSP

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

最大的特点:

  • 写jsp,就和写html一样

  • 区别:

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

    
            <dependency>
                <groupId>javax.servletgroupId>
                <artifactId>javax.servlet-apiartifactId>
                <version>4.0.1version>
            dependency>
            
            <dependency>
                <groupId>javax.servlet.jspgroupId>
                <artifactId>javax.servlet.jsp-apiartifactId>
                <version>2.3.3version>
            dependency>
            
            <dependency>
                <groupId>javax.servlet.jsp.jstlgroupId>
                <artifactId>jstl-apiartifactId>
                <version>1.2version>
            dependency>
            
            <dependency>
                <groupId>taglibsgroupId>
                <artifactId>standardartifactId>
                <version>1.1.2version>
            dependency>
    

1.2、JSP基础语法

1.2.1、JSP表达式

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    测试


Hello World
<%--我是jsp的注释--%>

<%--JSP表达式 作用:用来将程序的输出,输出到客户端 <%= 变量或者表达式%> --%> <%= new java.util.Date()%>

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

1.2.2、JSP脚本片段

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    测试


Hello World

<%--下面是jsp的脚本片段,里面可以填写java的代码!--%> <% out.print("ip地址为:"+request.getRemoteAddr()); %> <%--我是jsp的注释--%>

1.2.3、JSP声明

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

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    测试


Hello World
<%--jsp声明--%>
<%!
    public void kuang(){
        System.out.println("进入了方法框");
    }
%>
<%
    kuang();
%>





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" %>


    Title


<%
    int x = 1/0;
%>


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

<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


自定义500的jsp页面

  • 第二种方式,在web.xml中进行配置

<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>404error-code>
        <location>/error/500.jsplocation>
    error-page>
web-app>
  • 设置欢迎界面,也是在web.xml中进行配置

<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>404error-code>
        <location>/error/500.jsplocation>
    error-page>
    <welcome-file-list>
        <welcome-file>welcom.jspwelcome-file>
    welcome-file-list>
web-app>
  • include 标签 (一般情况下,用于引入外部的资源,比如网页的头部和网页的脚部)
<%@ page contentType="text/html;charset=UTF-8" language="java" %>


    Title


<%--    这是第一中使用方式--%>
    <%@include file="common/header.jsp"%>
    

我也网页主题

<%@include file="common/footer.jsp"%> <%--一般情况下会使用第二种方式--%> <%--第二种方式jsp标签--%>

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

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

  • EL表达式:${}

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

    • 融合两个不同的页面
    • 进行页面的转发

后端常用的jsp语法&标签_第1张图片

  • 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" %>
    
    
        c:when标签
    
    
    <%--使用set先定义一个变量,值为85--%>
    
    <%--下面使用choose when进行判断--%>
    
        
            你的成绩为优秀
        
        
            你的成绩为中等
        
        
            你的成绩为及格
        
    
    
    
    
  • 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" %>
    
    
        foreach的练习
    
    
    <%
        ArrayList 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,步长!!!
    
    --%>
    
        
        

你可能感兴趣的:(java,tomcat,前端)