拾忆🍂拾忆🍂
  • cpp
  • MySQL
  • Oracle
  • PostgreSQL
  • MyBatis
  • API升级
  • HMOS
  • 百变小组件
  • hdc
  • 元服务
  • Java
  • MinIO
  • Stream
  • JSP & Struts2
  • Spring
  • FFmpeg
  • Linux
  • Git
  • Nginx
  • Ollama
  • Adobe Audition
  • Aseprite
  • Excel
  • Markdown基本用法
  • MuseScore 4.x
  • UVR
  • Windows
  • emoji-cheat-sheet
  • IDE快捷键
  • obs-studio
  • YOLO
  • Python
  • VuePress 2.x
  • 内置组件
  • markdown-container
  • markdown-ext
  • markdown-hint
  • markdown-preview
  • markdown-tab
  • Markdown扩展语法
  • 插件配置
  • prismjs
  • 样式
  • CSS
  • JS
  • TS
  • Vue3
主页
梦的开始🌅
  • cpp
  • MySQL
  • Oracle
  • PostgreSQL
  • MyBatis
  • API升级
  • HMOS
  • 百变小组件
  • hdc
  • 元服务
  • Java
  • MinIO
  • Stream
  • JSP & Struts2
  • Spring
  • FFmpeg
  • Linux
  • Git
  • Nginx
  • Ollama
  • Adobe Audition
  • Aseprite
  • Excel
  • Markdown基本用法
  • MuseScore 4.x
  • UVR
  • Windows
  • emoji-cheat-sheet
  • IDE快捷键
  • obs-studio
  • YOLO
  • Python
  • VuePress 2.x
  • 内置组件
  • markdown-container
  • markdown-ext
  • markdown-hint
  • markdown-preview
  • markdown-tab
  • Markdown扩展语法
  • 插件配置
  • prismjs
  • 样式
  • CSS
  • JS
  • TS
  • Vue3
主页
梦的开始🌅
  • 「从开始,到永久」
  • C艹

    • cpp
  • Database

    • MySQL
    • Oracle
    • PostgreSQL
    • MyBatis
  • HarmonyOS

    • API升级
    • HMOS
    • 百变小组件
    • hdc
    • 元服务
  • Java

    • Java
    • MinIO
    • Stream
    • JSP & Struts2
    • Spring
  • Linux

    • FFmpeg
    • Linux
    • Git
    • Nginx
  • LLM

    • Ollama
  • Others

    • Adobe Audition
    • Aseprite
    • Excel
    • Markdown基本用法
    • MuseScore 4.x
    • UVR
    • Windows
    • emoji-cheat-sheet
    • IDE快捷键
    • obs-studio
    • YOLO
  • Python

    • Python
  • VuePress

    • VuePress 2.x
    • 内置组件
    • markdown-container
    • markdown-ext
    • markdown-hint
    • markdown-preview
    • markdown-tab
    • Markdown扩展语法
    • 插件配置
    • prismjs
    • 样式
  • Web

    • CSS
    • JS
    • TS
    • Vue3
  • 主页

类比表格

Struts2SSM功能说明
struts.xmlspring-mvc.xmlstruts2/spring-mvc配置
Struls2是一个请求一个Action,SpringMVC是单例模式的
struts-*.xml前端控制器,指定前端请求进入那个Action/Controller
返回什么字符串,就返回对应jsp
ManagerService服务
ManagerImplServiceImpl服务实现
MapperMapper数据层(一样)

JSP

四个域对象:

域对象名称JSP内置对象名称EL名称作用范围
pageContextPagePageScope只能在当前jsp页面中使用(当前页面)
requestRequestRequestScope同一个请求开始到结束(包括转发)
sessionSessionSessionScope当前会话,浏览器打开到关闭(私有的)
applicationApplicationApplicationScope同一个web应用中,应用从启动到停止(全局的)

域对象作用

保存数据 和 获取数据 ,用于数据共享。

EL表达式的查找顺序

page => request => session => application

(就近原则)

域对象方法

方法名作用
setAttribute("name",Object)保存数据
getAttribute("name")获取数据
removeAttribute("name")清除数据

EL的隐式对象(重点)

隐含对象描述
pageScopepage作用域
requestScoperequest作用域
sessionScopesession作用域
applicationScopeapplication作用域
paramRequest对象的参数,字符串
paramValuesRequest对象的参数,字符串集合
headerHTTP信息头,字符串
headerValuesHTTP信息头,字符串集合
initParam上下文初始化参数
cookieCookie值
pageContext当前页面的pageContext

与输入相关的隐含对象有两个:param和paramValues,它们是EL中比较特殊的隐含对象。

  • 例如我们要取得用户的请求参数时,可以利用下列方法:
    • request.getParamster(String name)
    • request.getParamsterValues(String name)
  • 在EL中则可以使用param和paramValues两者来取得数据。
    • ${param.name}
    • ${paramValues.name}

EL表达式的运算符

1.EL表达式运算符有哪些

类别运算符
算术运算符+、-、*、/ 或 div、%或 mod
关系运算符= = 或 eq、!= 或 ne 、< 或 It、>或 gt、<=或le、>= 或 ge
逻辑运算符&&或and、
其他运算符Empty运算符、条件运算符、()运算符

EL会自动类型转换:${param.count + 20} 如果count是string,则结果会被转为number

2.EL最常用的表达式

  • 为空判断:${empty param.name}
  • 三元运算:${A?B:C}
  • 算法运算:${A*(B+C)}
<jsp:useBean id="Person" class="com.example.Person"></jsp:useBean>
<jsp:serProperty preperty="name" value="enlin" name="person" />
<jsp:serProperty preperty="age" value="18" name="person" />

EL表达式和ES6模板字符串冲突

EL表达式也是使用 $ 符号来插入变量的,在js中若要使用${}获取到js对象,则要在反撇号中给$符号进行转义\${document.body.scrollTop}。

例如:

console.log(`document.body.scrollTop is: \${document.body.scrollTop}`)

// -----------

function formatCustomerId(val, row, index) {
    return `<a href="#" onClick="rowClickFn(\${index})">操作</a>`
}

<% %>

<%
    String rootPath = request.getContextPath();
%>
<%
    String path = request.getContextPath();
    String basePath = request.getScheme() + "://"
            + request.getServerName() + ":" + request.getServerPort()
            + path + "/";
%>

--- 

console.log(<%= basePath %>)
  • 不带等号:<% %>用于执行 Java代码
  • 带等号:<%= rootPath %>带等号,因为它是一个 EL表达式,会被渲染为值。
最近更新: 2025/11/4 16:13
Contributors: Enlin
Prev
Stream
Next
Spring