最简洁 JSP与EL表达式

时间:2021-09-20
本文章向大家介绍最简洁 JSP与EL表达式,主要包括最简洁 JSP与EL表达式使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

JSP

一、概况

1.1 介绍

  • javaEE规范的一种

  • JSP文件代替响应对象 将处理结果写入响应体开发流程

    • 响应对象的缺点:

      适合数据量少写入响应体

      如果多 增加开发难度

  • 制定了服务器如何调用JSP文件

1.2 JSP文件

  1. 执行时会自动写入响应体中 省略out.print();

  2. 只能在 web下 能写html css java

  3. 在里面直接写java 只会被当成字符串写入响应体中

    //在JSP写java代码 只有在<% java代码才可以 %> 在服务器运行
    //输出到响应体 <%=变量%>
    //导包ALT+回车 自动导包

    //把每段代码当做一个整体
    <%
    if(i == 1){
    %>
    <p>急急急</p>
    <%
    }else {
    %>
    <p>不不不</p>
    <%
    }
    %>

1.3 内置对象 JSP文件中

//请求对象 HttpServletRequest request
//读取请求头的信息与Servlet请求转发过程实现数据共享

//会话作用域对象 HttpSession sessioh
//私人储物柜 读取 添加共享数据

//全局作用域对象 ServletContext application
//同一个网站下 Servlet与JSP共享数据 全局储物柜 读取 添加共享数据

二、Servlet 与 JSP

2.1 分工

Servlet:负责业务处理并得到处理结果

JSP: 不负责业务处理 主要将Servlet处理结果写入响应体

2.2 调用关系

Servlet工作完毕 一般使用请求转发 向服务器请求调用JSP

2.3 数据共享

Servlet将处理结果 添加到请求作用域对象

JSP在运行的时候从请求作用域对象获取处理结果

三、JSP文件运行原理

  1. 服务器将JSP文件编译为一个Servlet接口实现类

  2. 服务器将这个实现类编译成有一个class文件

  3. 服务器负责创建这个class实例对象

  4. 实例对象调用方法将JSP文件内容写入响应体内

四、JSP class java文件位置

C:\Users\Administrator\AppData\Local\JetBrains\IntelliJIdea2020.2\tomcat\未命名_untitled2

五、开发步骤

  1. 从指定的作用域对象获取处理结果

  2. 得到的是Object要进行强转

  3. 将转化的数据写入响应体

JSP-EL技术

一、介绍

  • -java技术开发的一个jar包

  • 降低JSP对java命令的开发难度

  • 在Tomcat安装lib下el-api.jar

二、EL表达式

2.1 命令格式:

${作用域对象别名.共享数据别名}

2.2 作用:

  1. EL表达式是EL.jar包提供的一种特殊命令格式【表达式命令格式】

  2. 专门在JSP文件使用

  3. 负责在JSP文件上从作用域对象读取指定的共享数据并输出到响应体

2.3 在JSP的作用域对象

  • ServletContext application;全局作用域对象

  • HttpSession session;会话作用域对象

  • HttpServletRequest request;请求作用域对象

  • PageContext pageContext;当前页作用域对象

    • JSP文件独有作用域对象

    • 存放的共享数据只能在当前JSP使用

    • 主要是JSTL与JSP文件之间的数据共享

    • JSTL--->pageContext-->JSP

2.4 EL表达式 作用域别名

前三个后+Scope

最后pageScope

2.5 EL 调用引用属性写入响应体

  1. 命令格式:${作用域对象别名.共享数据名.属性名}

  2. 属性名:一定要和类型属性名完全一致

  3. 无法从作用域对象读取集合 没有提供遍历集合方法

三、简化EL表达式

  1. 命令格式:${共享数据名}

  2. 作用:省略作用域对象别名

  3. 工作原理:用猜 先从page-->request-->session-->application

  4. 缺点:容易降低程序执行难度 数据定位错误

  5. 目的是:简化page读取数据的难度

  6. 为了节省时间 很多程序员都使用简化版

四、支持运算表达式

  1. 前提:在读取数据后进行一番运算 将运算结果写入响应体

  2. 运算表达式:

    数学表达式

    关系表达式 > >= == < <= !=

    gt ge eq lt le !=

    逻辑表达式 && || !

五、其他内置对象

1.获得请求参数 简化 :${param.参数名}

  1. 获取请求参数名一样的参数值 类似数组:${paramValues[下标]}

原文地址:https://www.cnblogs.com/zumeng/p/15313793.html