使用Servlet和JSP开发Java应用程序 ---- EL

news/2024/5/18 13:31:17 标签: servlet, jsp, html, jstl, EL

使用Servlet和JSP开发Java应用程序 ---- EL

  • 无脚本的 JSP 页面
  • EL 表达式
  • 认识 EL 表达式
    • 使用EL表达式和EL中的运算符
    • 使用EL表达式-获取请求参数的值
    • 使用EL表达式-获取Cookie的值
    • 使用EL表达式-获取四个域对象中的属性值
  • 使用EL调用类中静态方法
  • 使用 EL 表达式
  • EL表达式如何处理Null值和获取上下文参数
  • EL表达式练习

无脚本的 JSP 页面

无脚本的JSP页面是没有Java脚本元素(代码段、表达式和声明)的页面
无脚本(Scriptless)的代码使JSP页面易于阅读、维护和调试
EL 和 JSTL 可以用来编写无 Java 脚本元素的页面

EL__6">EL 表达式

Expression Language - 表达式语言
提供了一种在JSP页面上编写的语言,以减少代码

EL__10">认识 EL 表达式

ELEL_11">使用EL表达式和EL中的运算符

在这里插入图片描述
Java表达式和EL表达式
Java表达式:<%= 15 * 15%>
EL表达式:${16 * 16}

算数运算符
算术运算符取余:${13 % 3}
算术运算符取余:${13 mod 3}
算术运算符除:${17 / 5}
算术运算符除:${17 div 5}

比较运算符
比较运算符:${1 > 2}
比较运算符:${1 gt 2}

eq: == 
ne: != 
gt: >  
lt: <  
ge: >= 
le: <= 

逻辑元素符
逻辑运算符-逻辑与:${1 > 2 && 10 > 2 && 3 > 2}
逻辑运算符-逻辑与:${1 > 2 and 10 > 2 and 3 > 2}
逻辑运算符-逻辑或:${1 > 2 || 10 > 2 || 3 > 2}
逻辑运算符-逻辑或:${1 > 2 or 10 > 2 or 3 > 2}
逻辑运算符-逻辑非:${!(2 > 1)}
逻辑运算符-逻辑非:${not(2 > 1)}

三元运算符
三元运算符:${2 > 1 ? 1 : 0}
三元运算符:${2 > 1 ? "Y" : "N"}

在这里插入图片描述

EL_49">使用EL表达式-获取请求参数的值

在这里插入图片描述

Java 表达式

html"><%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>使用Java表达式获取请求参数的值</title>
        <link rel="stylesheet" href="css/bootstrap.min.css"/>
        <link rel="stylesheet" href="css/style.css"/>
    </head>
    <body class="bg-warning">
        <div class="container">

            <br>
            <h1 class="text-center text-primary">使用Java表达式获取请求参数的值</h1>
            <hr>
            <p class="text-danger">
                * 本页面中使用java表达式获取请求参数的值,用于和second.html" title=jsp>jsp对比两种获取请求参数值的方式
            </p>
            <hr>

            <%
                String[] hobbies = request.getParameterValues("hobbies");
            %>
            <p>
                <br>账户: <%=request.getParameter("username")%>
                <br>密码: <%=request.getParameter("password")%>
                <br>性别: <%=request.getParameter("gender")%>
                <br>国籍: <%=request.getParameter("nationality")%>
                <br>爱好: <%=hobbies[0]%>
                           <%=hobbies[1]%>
                           <%=hobbies[2]%>
                           <%=hobbies[3]%>
                           <%=hobbies[4]%>
            </p>

        </div>
    </body>
</html>

在这里插入图片描述

EL 表达式

html"><%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>使用EL表达式获取请求参数的值</title> 
        <link rel="stylesheet" href="css/bootstrap.min.css"/>
        <link rel="stylesheet" href="css/style.css"/>
    </head>
    <body>
        <div class="container">

            <br>
            <h1 class="text-center text-primary">使用EL表达式获取请求参数的值</h1>
            <hr>
            <p class="text-danger">
                * 本页面中使用EL表达式获取请求参数的值,用于和first.html" title=jsp>jsp对比两种获取请求参数值的方式
            </p>
            <hr>

            <p>
                <%--在EL表达式中,可以使用param这个隐式对象获取请求参数的值,语法:${param.请求参数名}--%>
                    账户: ${param.username}
                <br>密码: ${param.password}
                <br>性别: ${param.gender}
                <br>国籍: ${param.nationality}
                <%--如果一个请求参数有多个值,可以使用paramValues隐式对象获取请求参数的值,语法:${paramValues.请求参数名[数组元素索引]},索引从0开始--%>
                <br>爱好: ${paramValues.hobbies[0]}
                           ${paramValues.hobbies[1]}
                           ${paramValues.hobbies[2]}
                           ${paramValues.hobbies[3]}
                           ${paramValues.hobbies[4]}
            </p>

            <hr>

            <div class="text-success bg-warning padding20">
                <h3>EL表达式提供诸多隐式对象用于获取不同的信息</h3>
                <hr>
                <p>  
                    param:获取请求参数的单个值<br>
                    paramValues:获取一个请求参数的多个值,如多个checkbox提交的同一个请求参数的值<br>
                    header:获取请求的标头信息<br>
                    headerValues:获取一个请求标头的多个值<br>
                    cookie:获取Cookie值<br>
                    pageScope:获取页面范围的属性值<br>
                    requestScope:获取请求范围的属性值<br>
                    sessionScope:获取会话范围的属性值<br>
                    applicationScope:获取应用程序范围(上下文范围)的属性值<br>
                    initParam:获取上下文初始化参数
                </p>
                <hr>
            </div>

        </div>
    </body>
</html>

在这里插入图片描述

ELCookie_162">使用EL表达式-获取Cookie的值

在这里插入图片描述
Java 代码段获取 Cookie 值

html"><%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>html" title=jsp>jsp页面中用java表达式获取cookie的值</title>
        <link rel="stylesheet" href="css/bootstrap.min.css"/>
        <link rel="stylesheet" href="css/style.css"/>
    </head>
    <body>
        <div class="container text-warning">

            <h1 class="text-center bg-success text-success padding10">get_cookie1.html" title=jsp>jsp页面-在html" title=jsp>jsp页面中用java表达式获取cookie的值</h1>
            <hr>

            <%
                //获取Cookie
                Cookie[] cookies = request.getCookies();

                //定义两个变量用于存储读取的两个Cookie的值
                String accessTime = "";
                String randNum = "";

                for (Cookie ck : cookies) {
                    if ("lastAccessTime".equals(ck.getName())) { //如果cookie名称为lastAccessTime
                        accessTime = ck.getValue(); //获取其值
                    } else if ("randomNumber".equals(ck.getName())) { //如果cookie名称为randomNumber
                        randNum = ck.getValue();    //获取其值
                    }
                }
            %>

            <!--使用java表达式显示两个变量中存储的获取的cookie值-->
            <br><br>* 最后一次请求PutCookieServlet的时间:<%=accessTime%>
            <br><br>* PutCookieServlet产生的随机数字:<%=randNum%>

            <br><br><br><br>
            <div class="text-center">
                <img src="images/lxh04.gif">
            </div>
            
        </div>
    </body>
</html>

在这里插入图片描述

EL 表达式获取 Cookie 的值

html"><%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>html" title=jsp>jsp页面中用EL表达式获取cookie的值</title>
        <link rel="stylesheet" href="css/bootstrap.min.css"/>
        <link rel="stylesheet" href="css/style.css"/>
    </head>
    <body>
        <div class="container text-info">

            <h1 class="text-center text-primary bg-primary padding10">get_cookie2.html" title=jsp>jsp页面-在html" title=jsp>jsp页面中用EL表达式获取cookie的值</h1>
            <hr>

            <%--也可使用EL表达式获取cookie的值--%>            
            <%--JSP的EL(Expression Language)表达式: ${表达式}--%>
            <%--如何使用EL表达式获取Cookie的值: ${cookie.Cookie名称.value}--%>
            
            <br><br>* 最后一次请求PutCookieServlet的时间:${cookie.lastAccessTime.value}
            <br><br>* PutCookieServlet产生的随机数字:${cookie.randomNumber.value}

            <br><br><br><br>
            <div class="text-center">
                <img src="images/lxh03.gif">
            </div>
            
            
        </div>
    </body>
</html>

在这里插入图片描述

EL_255">使用EL表达式-获取四个域对象中的属性值

在这里插入图片描述

java 表达式获取域对象中的属性值

html"><%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>html" title=jsp>jsp页面中使用java表达式获取域对象中的属性值</title>
        <link rel="stylesheet" href="css/bootstrap.min.css"/>
        <link rel="stylesheet" href="css/style.css"/>
    </head> 
    <body>
        <div class="container text-warning">
        
            <h1 class="text-center bg-success text-success padding10">
                get_domain_attribute1.html" title=jsp>jsp页面
                <br>
                <small>html" title=jsp>jsp页面中使用java表达式获取域对象中的属性值</small>
            </h1>
            <hr>

            <!--应用程序范围>会话范围>请求范围>页面范围-->
            
            <%
                //在JSP页面上可以使用四个域对象在不同范围共享数据
                pageContext.setAttribute("number1", 100); //PageContext
                request.setAttribute("number2", 200); //HttpServletRequest
                session.setAttribute("number3", 300); //HttpSession
                application.setAttribute("number4", 400); //ServletContext
                int number5=500;
            %>

                    * 页面范围属性值:<%=pageContext.getAttribute("number1")%>
            <br><br>* 请求范围属性值:<%=request.getAttribute("number2")%>
            <br><br>* 会话范围属性值:<%=session.getAttribute("number3")%>
            <br><br>* 应用程序范围属性值:<%=application.getAttribute("number4")%>
            <hr>
            <!--java 表达式中可以直接访问前面的 java 代码段中定义的变量-->
            * java表达式访问java代码段中的变量number5:<%=number5%>
            <hr>

            <div class="text-center">
                <img src="images/lxh04.gif">
            </div>
            
        </div>
    </body>
</html>

在这里插入图片描述

EL表达式获取域对象中的属性值

html"><%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>html" title=jsp>jsp页面中使用EL表达式获取域对象中的属性值</title>
        <link rel="stylesheet" href="css/bootstrap.min.css"/>
        <link rel="stylesheet" href="css/style.css"/>
    </head> 
    <body>
        <div class="container text-info">
        
            <h1 class="text-center text-primary bg-warning padding10">
                get_domain_attribute2.html" title=jsp>jsp页面
                <br>
                <small>html" title=jsp>jsp页面中使用EL表达式获取域对象中的属性值</small>
            </h1>
            <hr>

            <%
                pageContext.setAttribute("number1", 100);
                request.setAttribute("number2", 200);
                session.setAttribute("number3", 300);
                application.setAttribute("number4", 400);
                int number5 = 500;
                int number6 = 600;
                //java代码定义的变量只有作为属性加入域对象才可被EL表达式访问
                pageContext.setAttribute("number6", number6);
            %>

            <%--EL表达式提供四个xxxScope隐式对象,用于获取不同域对象中的属性值,语法:${xxxScope.属性名}或${属性名}--%>
            
            * 页面范围属性值:${pageScope.number1} | ${number1}
            <br><br>* 请求范围属性值:${requestScope.number2} | ${number2}
            <br><br>* 会话范围属性值:${sessionScope.number3} | ${number3}
            <br><br>* 应用程序范围属性值:${applicationScope.number4} | ${number4}
            <hr>
            * EL表达式访问java代码段中的变量number5:${number5}
            <br><br>
            * EL表达式访问java域对象属性number6:${pageScope.number6} | ${number6}
            <hr>

            <div class="text-center">
                <img src="images/lxh03.gif">
            </div>


        </div>
    </body>
</html>

在这里插入图片描述
EL表达式获取域对象中的属性值,域对象的属性在Servlet中添加的

html"><%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>html" title=jsp>jsp页面中使用EL表达式获取域对象中的属性值</title>
        <link rel="stylesheet" href="css/bootstrap.min.css"/>
        <link rel="stylesheet" href="css/style.css"/>
    </head> 
    <body>
        <div class="container text-success">

            <h1 class="text-center text-info bg-info padding10">
                get_domain_attribute3.html" title=jsp>jsp页面
                <br>
                <small>html" title=jsp>jsp页面中使用EL表达式获取域对象中的属性值,域对象的属性在Servlet中添加的</small>
            </h1>
            <hr>
            * 请求范围属性值num1:${requestScope.num1}
            <br><br>* 会话范围属性值num2:${sessionScope.num2}
            <br><br>* 应用程序范围属性值num3:${applicationScope.num3}
            <br><br>* 学生信息:${requestScope.student.sname} | ${requestScope.student.srollno} | ${requestScope.student.sgender} | ${requestScope.student.spassword} | ${requestScope.student.sbatch}
            <br><br>* 狗(毛毛)信息:${sessionScope.dog.name} | ${sessionScope.dog.type} | ${sessionScope.dog.age}
            <br><br>* 列表第一只狗的信息:${requestScope.dogList[0].name} | ${requestScope.dogList[0].type} | ${requestScope.dogList[0].age}
            <br><br>* 字符串数组的各个值:${requestScope.names[0]} | ${requestScope.names[1]} | ${requestScope.names[2]}
            <br><br>* 对象数数组的各个值:${requestScope.info[0]} | ${requestScope.info[1]} | ${requestScope.info[2]}
            <hr>
            
            <div class="text-center">
                <img src="images/lxh01.gif" width="100" height="100">
            </div>

        </div>
    </body>
</html>

package com.qdu.html" title=servlet>servlet;

import com.qdu.entity.Dog;
import com.qdu.entity.Student;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.html" title=servlet>servlet.ServletContext;
import javax.html" title=servlet>servlet.ServletException;
import javax.html" title=servlet>servlet.annotation.WebServlet;
import javax.html" title=servlet>servlet.http.HttpServlet;
import javax.html" title=servlet>servlet.http.HttpServletRequest;
import javax.html" title=servlet>servlet.http.HttpServletResponse;
import javax.html" title=servlet>servlet.http.HttpSession;

/**
 * 请求该Serlvet,会添加属性到不同的域对象中,然后转发请求给get_domain_attribute3.html" title=jsp>jsp页面,在页面中获取域对象中的属性值
 *
 * @author Anna
 */
@WebServlet("/pas")
public class PutAttributeServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        //通常是发送请求给html" title=servlet>servlet,html" title=servlet>servlet转发请求给html" title=jsp>jsp
        //在Servlet中可以使用请求对象、会话对象、上下文对象这三个域对象用于在不同范围共享数据
        //请求对象中的属性只有转发请求才能共享给下个组件(html" title=jsp>jsp或html" title=servlet>servlet)
        req.setAttribute("num1", 111);

        HttpSession session = req.getSession();
        session.setAttribute("num2", 222);

        ServletContext ctx = getServletContext();
        ctx.setAttribute("num3", 333);

        Student s = new Student("2020208888", "Anna", "123456", "女", "20软件J01");
        Dog d = new Dog("毛毛", "哈士奇", 2);

        req.setAttribute("student", s);
        session.setAttribute("dog", d);

        //假设用一个数组存储了很多个字符串表示的名字
        String[] array1 = {"小强", "小明", "小兰", "小花"};
        req.setAttribute("names", array1);

        //假设用一个数组存储了一个学生的名字、成绩排名和平均分,因为数据类型不同,所以可以考虑使用Object数组
        Object[] array2 = {"小明", 2, 97.3};
        req.setAttribute("info", array2);
        
        List<Dog> list=new ArrayList<>();
        list.add(new Dog("球球","泰迪",2));
        list.add(new Dog("旺财","柴犬",5));
        list.add(new Dog("哈利","哈士奇",8));
        list.add(new Dog("开心","边牧",10));
        req.setAttribute("dogList", list);
        
        req.getRequestDispatcher("/get_domain_attribute3.html" title=jsp>jsp").forward(req, resp);
    }
}

在这里插入图片描述

EL_474">使用EL调用类中静态方法

在这里插入图片描述
在类中定义静态方法

package com.qdu.util;

import java.util.Random;

/**
 * 数字工具类NumberUtil,用于对数字进行操作
 *
 * @author Anna
 */
public class NumberUtil {

    private static Random ran = new Random();
    
    /**
     * 生成一个1-100以内的随机整数
     *
     * @return 一个随机整数
     */
    public static int getRandomNumber() {
        return ran.nextInt(100) +1;  //1-100
    }

    /**
     * 计算一个整数的平方值
     *
     * @param x 一个整数
     * @return 整数表示的平方值
     */
    public static int square(int x) {
        return x * x;
    }

    /**
     * 计算两数之和
     *
     * @param a 整数1
     * @param b 整数2
     * @return 两数之和
     */
    public static int sum(int a, int b) { //严格来说,方法名+参数列表叫做方法的签名
        return a + b;
    }
}

package com.qdu.util;

/**
 * StringUtil类,字符串工具类,用于对字符串执行操作
 *
 * @author Anna 
 */
public class StringUtil {

    public static String getMobile(String mobile){
        return mobile.substring(0,3)+"****"+mobile.substring(7,11);
    }
}

创建TLD(Tag Library Descriptor标记库描述符

<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.1" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-html" title=jsp>jsptaglibrary_2_1.xsd">
    <!--tlib-version用于指定版本-->
    <tlib-version>1.0</tlib-version>
    <!--short-name指定一个简短名称,也就是别名,该名称指定后,可用可不用-->
    <short-name>fc</short-name>
    <!--uri:指定一个名称,用于唯一标识每个标记库/函数库-->
    <!--这个名称可以随意命名,但是要唯一-->
    <!--通常这个名称会起的像一个网址,容易保证唯一性-->
    <uri>http://www.anna.com/func/core</uri>
  
    <!--一个TLD文件是一个“标记库描述符”文件-->
    <!--用于描述标记库中包含的标记或函数库中包含的函数-->
    
    <!--一个静态方法用一个function标记来描述-->
    <function>
        <!--name指定函数的名称,我们通过这个名称调用对应的静态方法-->
        <name>rand</name>
        <description>获取一个1-100以内的随机整数</description>
        <!--function-class指定方法名所在类的全限定名称-->
        <function-class>com.qdu.util.NumberUtil</function-class>
        <!--function-signature指定方法的签名-->
        <!--严格来说,方法名+参数列表叫做方法的签名-->
        <function-signature>int getRandomNumber()</function-signature>
    </function>
    
    <function>
        <name>square</name>
        <description>计算一个整数的平方值</description>
        <function-class>com.qdu.util.NumberUtil</function-class>
        <function-signature>int square(int)</function-signature>
    </function>
    
    <function>
        <name>sum</name>
        <description>计算两数之和</description>
        <function-class>com.qdu.util.NumberUtil</function-class>
        <function-signature>int sum(int, int)</function-signature>
    </function>
    
    <function>
        <name>getMobile</name>
        <description>获取电话号码</description>
        <function-class>com.qdu.util.StringUtil</function-class>
        <function-signature>java.lang.String getMobile(java.lang.String)</function-signature>
    </function>
  
</taglib>

html" title=jsp>jsp页面使用taglib指令引入TLD

html"><!--通过taglib指令来引入一个要使用的标记库(标记库中可以包含标记和函数的描述)-->
<!--uri指定标记库的uri-->
<!--prefix:用于指定一个前缀或别名,可以随意命名,尽量有意义-->
<%@taglib uri="http://www.anna.com/func/core" prefix="fc" %> 

EL表达式中调用方法

html"><%--
    使用EL调用类中静态方法
--%>
<!--通过taglib指令来引入一个要使用的标记库(标记库中可以包含标记和函数的描述)-->
<!--uri指定标记库的uri-->
<!--prefix:用于指定一个前缀或别名,可以随意命名,尽量有意义-->
<%@taglib uri="http://www.anna.com/func/core" prefix="fc" %> 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html>
<html>
    <head> 
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>使用EL调用类中静态方法</title>
        <link rel="stylesheet" href="css/bootstrap.min.css"/>
        <link rel="stylesheet" href="css/style.css"/>
    </head>
    <body>

        <div class="container">
            <br>

            <h1 class="text-center text-primary">使用EL调用类中静态方法</h1>
            <hr>

            <p class="text-danger">
                <b>* 使用EL调用类中静态方法的步骤:</b><br>
                1) 在类中定义静态方法<br>
                2) 创建TLD(Tag Library Descriptor标记库描述符,一个xml文件,描述如何使用标记或函数)文件,TLD中不仅可以描述标记,还可描述函数,描述如何使用函数(function)<br>
                3) 在html" title=jsp>jsp页面使用taglib指令引入TLD<br>
                4) 在EL表达式中调用方法即可,调用语法:\${TLD别名:函数名(参数列表)}<br>
            </p>
            <hr>
            <p class="text-success">
                        * 调用getRandomNumber()方法:  ${fc:rand()}
                <br><br>* 调用square()方法: ${fc:square(4)}
                <br><br>* 调用sum()方法:  ${fc:sum(2, 4)}
                <br><br>* 调用getMobile()方法: ${fc:getMobile("18706579002")}
            </p>

            <hr>

        </div>
    </body>
</html>

在这里插入图片描述

EL__652">使用 EL 表达式

ELNull_653">EL表达式如何处理Null值和获取上下文参数

在这里插入图片描述

如果只是显示一个空值,EL表达式自动处理空值,什么都不显示

html">* 属性或变量值:${number}

EL表达式中,使用空值进行算术运算,则空值做0处理

html">* 求和:${number + 6}

EL表达式中,在比较运算中使用空值,则做false处理

html">* 逻辑判断:${result ? 1 : 0}

在这里插入图片描述

使用EL表达式获取上下文参数(context parameter)

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.1" 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_3_1.xsd">
    
<!--    程序需要使用的全局性初始化参数(initial parameter),可以定义为上下文参数(context parameter)-->
    <context-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </context-param>
    
    <context-param>
        <param-name>email</param-name>
        <param-value>anna@qdu.edu.cn</param-value>
    </context-param>
    
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
</web-app>

EL表达式提供initParam隐式对象,用于获取上下文参数,语法:${initParam.参数名}

html">* 上下文参数encoding: ${initParam.endcoding}

EL_706">EL表达式练习

在这里插入图片描述

html">            <p>
                * 请求参数name的值:${param.name}
                <br>* 请求参数address的值:${paramValues.address[0]} | ${paramValues.address[1]}
                <br>* 属性number的值:${pageScope.number}
                <br>* 属性msg的值:${requestScope.msg}
                <br>* 属性username的值:${sessionScope.username}
                <br>* 属性onlineCount的值:${applicationScope.onlineCount}
                <br>* 员工小明的所有信息:${requestScope.emp1.empId} | ${requestScope.emp1.empName} | ${requestScope.emp1.empGender} | ${requestScope.emp1.empGrade} | ${requestScope.emp1.empDob}
                <br>* 员工小花的所有信息:${sessionScope.emp2.empId} | ${sessionScope.emp2.empName} | ${sessionScope.emp2.empGender} | ${sessionScope.emp2.empGrade} | ${sessionScope.emp2.empDob}
                <br>* 上下文参数dbusername的值:${initParam.dbusername}
                <br>* 上下文参数dbpassword的值:${initParam.dbpassword}
                <br>* 属性data的所有元素值:${pageScope.data[0]} | ${pageScope.data[1]} | ${pageScope.data[2]} | ${pageScope.data[3]} | ${pageScope.data[4]}
            </p>

http://www.niftyadmin.cn/n/1680561.html

相关文章

远程桌面函数不支持怎么解决_重装win10系统出现磁盘布局不受UEFI固件支持怎么解决?...

当电脑出现系统问题时&#xff0c;很多用户会选择重装win10系统&#xff0c;但是在重装过程中&#xff0c;总会遇到问题&#xff0c;如重装win10系统出现磁盘布局不受UEFI固件支持怎么解决&#xff1f;下面教大家详细的解决方法&#xff0c;希望对你们有所帮助&#xff01;1、进…

php no input,php网站访问提示No input file specified

访问网站首页index.php提示错误&#xff1a;No input file specified.wordpress提示的错误&#xff0c;其实这个错误不仅仅在wp框架下出来&#xff0c;任何php程序都会出现&#xff0c;我这里出现这个问题是由于开启防跨目录功能导致&#xff0c;此功能一般是防止恶意代码写入到…

检查表及总结 - 《代码大全》

设计 设计是否经过多次迭代&#xff0c;并最终决定了最好的一个&#xff1f;是否同时使用自上而下和自下而上的方法来解决设计问题&#xff1f;类与类之间的交互关系是否已经设计为最小化&#xff1f;设计被划分为层次吗&#xff1f;你对把这一程序分解成为子程序&#xff0c;包…

JavaScript 基础【简介】

JavaScript 基础【简介】JavaScript 起源JS 的特点学习 JavaScript 的软件JavaScript 的第一个项目 HelloWorldJS 的编写位置JS 基本语法字面量和变量标识符JavaScript 起源 JavaScript 诞生于1995年&#xff0c;主要是用于处理网页中的前端验证。 所谓的前端验证&#xff0c;…

bat 命令返回结果_批处理文件(.bat)

实验环境 Windows Server 2003 实验环境 *.bat批处理&#xff1a;从上而下的处理每一条命令&#xff0c;直到执行完毕为止&#xff01;d: cd cd tmppausedel . /s /qecho off作用&#xff1a;关闭回显功能(屏蔽过程)&#xff0c;建议放置在首行pause作用&#xff1a;暂停批处理…

《Unix网络编程》卷2 读书笔记 第2章- Posix IPC

1. 概述 Posix IPC 包括&#xff1a;Posix消息队列、Posix信号量、Posix共享内存区Posix IPC在访问它们的函数和描述它们的信息上有一些类似点。 本章讲述所有这些共同属性&#xff1a;用于标识的路径名、打开或创建时指定的标志、访问权限。 Posix IPC 函数汇总 2. IPC名字 三…

django 获取 axios get 过来的数据_Django(生命周期、每部分详解、路由层)

https://www.zhihu.com/video/1248736141978927104每日测验"""答案1.什么是静态文件&#xff0c;django静态文件配置如何配置&#xff0c;如何解决接口前缀不断变化&#xff0c;html页面上路径的引用需要反复修改的问题静态文件就是之前写好的js&#xff0c;css…

JavaScript 基础【基本语法 -- 数据类型、强制数据类型转换】

JavaScript 基础【基本语法 -- 数据类型、强制数据类型转换】数据类型String 字符串Number 数值Boolean 布尔值Null 空值Undefined 未定义Object 对象强制类型转换将其他数据类型转换为 String将其他数据类型转换为 Number其他的进制的数字数据类型 JS 中一共够六种数据类型 S…