最简洁 JSP与EL表达式
一、概况
1.1 介绍
-
-
JSP文件代替响应对象 将处理结果写入响应体开发流程
-
响应对象的缺点:
适合数据量少写入响应体
如果多 增加开发难度
-
-
制定了服务器如何调用JSP文件
1.2 JSP文件
-
执行时会自动写入响应体中 省略out.print();
-
只能在 web下 能写html css java
-
在里面直接写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文件运行原理
-
服务器将JSP文件编译为一个Servlet接口实现类
-
服务器将这个实现类编译成有一个class文件
-
服务器负责创建这个class实例对象
-
实例对象调用方法将JSP文件内容写入响应体内
四、JSP class java文件位置
C:\Users\Administrator\AppData\Local\JetBrains\IntelliJIdea2020.2\tomcat\未命名_untitled2
五、开发步骤
-
从指定的作用域对象获取处理结果
-
得到的是Object要进行强转
-
将转化的数据写入响应体
JSP-EL技术
一、介绍
-
-java技术开发的一个jar包
-
降低JSP对java命令的开发难度
-
在Tomcat安装lib下el-api.jar
二、EL表达式
2.1 命令格式:
${作用域对象别名.共享数据别名}
2.2 作用:
-
EL表达式是EL.jar包提供的一种特殊命令格式【表达式命令格式】
-
专门在JSP文件使用
-
负责在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 调用引用属性写入响应体
-
命令格式:${作用域对象别名.共享数据名.属性名}
-
属性名:一定要和类型属性名完全一致
-
无法从作用域对象读取集合 没有提供遍历集合方法
三、简化EL表达式
-
命令格式:${共享数据名}
-
作用:省略作用域对象别名
-
工作原理:用猜 先从page-->request-->session-->application
-
缺点:容易降低程序执行难度 数据定位错误
-
目的是:简化page读取数据的难度
-
为了节省时间 很多程序员都使用简化版
四、支持运算表达式
-
前提:在读取数据后进行一番运算 将运算结果写入响应体
-
运算表达式:
数学表达式
关系表达式 > >= == < <= !=
gt ge eq lt le !=
逻辑表达式 && || !
五、其他内置对象
1.获得请求参数 简化 :${param.参数名}
原文:https://www.cnblogs.com/zumeng/p/15313793.html