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[下标]}
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值