欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

jsp、el、jstl——前端面试

程序员文章站 2023-11-10 14:08:04
以前学的太乱没有头绪,今天来缕一缕。 jsp 用于展示数据 可以操作所有的数据 el 操作作用域中的属性 不能操作局部变量 ${ }...

以前学的太乱没有头绪,今天来缕一缕。


jsp 用于展示数据 可以操作所有的数据

el 操作作用域中的属性 不能操作局部变量 ${ }

jstl 用于使用标签代替简化 jsp中的 含有 if 循环 判断语句等等


1、jsp

jsp就是 java servlet page,和servlet一样,是sun公司定义的一种用于开发动态网页的技术。允许在页面中嵌入java代码,为用户提供动态数据。

jsp实际上就是servlet,它由容器翻译成servlet源文件,再编译,用户看到的是servlet的响应结果。

jsp的九大内置对象
内置对象 内容 作用范围
request 请求 request
response 对请求的响应 page
out 用于向客户端发送文本数据 page
session 为请求的客户创建session对象 session
application 从servlet配置对象获得servlet上下文 application
pageContext 包含了本页面的所有信息 page
config 本jsp的ServletConfig page
page 实现处理本页当前请求的类的实例 page
exception 表示运行时产生的异常 page


上面表格第三列的作用范围,即内置对象的作用域,顾名思义就是“在多大范围内有效”。四个作用域分别为:page---request---session---application:

page——在当前页面有效

request——在当前请求中有效

session——在当前会话中有效

application——在所有应用程序中有效

———————————————————————————————————————————————————————————

2、EL表达式

简介:EL 全名为Expression Language。EL表达式一般操作的是作用域(application,session,request,pageContext)中的属性,EL变量指某一个作用域中的属性。
注:el表达式操作不了局部变量!

用法:

使用EL表达式获取数据语法:“${标识符}”

EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、request、session、application四个域中查找相应的对象,找到则返回相应对象,找不到则返回”” (注意,不是null,而是空字符串)。
示例:${user}

EL表达式也可以很轻松获取JavaBean的属性,或获取数组、Collection、Map类型集合的数据,例如:
${user.address.city}
${user.list[0]}:访问有序集合某个位置的元素
${map.key} : 获得map集合中指定key的值

获得web开发常用对象
1、pageContext:代表pageContext对象 例如:${pageScope.name1}
2、pageScope:代表page域
3、requestScope:代表request域
4、sessionScope
5、applicationScoope
6、param:Map对象,保存了所有的请求参数
7、paramValues:Map对象(value对应一个数组).
8、header:Map对象。获取一个请求头的值 注意:如果头里面有“-” ,例Accept-Encoding,则要headerValues[“Accept-Encoding”]
9、headerValues:Map对象(value对应一个数组)
10、cookie:Map对象。(value对应一个cookie对象)
11、initParam:Map对象。(key=参数名value=参数值,此参数是在web.xml中配置的) 例如 ${initParam.encode }

———————————————————————————————————————————————————————————

3、JSTL

JSP Standard Tag Library ,JSP标准标签库,核心标签库:https://java.sun.com/jsp/jstl/core 包含 Web 应用的常见工作,比如:循环、表达式赋值、基本输入输出等。

引用

常用标签如下

用于在 JSP 中显示数据 例:
将值存储到作用域或为 JavaBean 中的变量属性赋值 例:
删除存在于 scope 中的变量 例:
条件控制标签 : 用法同if()else{}
循环控制标签:
URL 相关标签:
包含另一个 JSP 页面到本页面,作用类似,但作用范围广,不仅可以包含本项目下资源,也可以包含外部的资源!
用于页面重定向