导图社区 jsp、el表达式函数知识点总结
jsp、el表达式函数知识点总结:pageContext::它代表的是page域,但是jsp中page它的类型是Object,所以操作page域我们使用的是pageContext对象,page域就是指当前页面范围。
编辑于2022-11-10 17:45:09 广东jsp、el表达式函数知识点总结
jsp
jsp入门
jsp简介
什么是jsp
Jsp是java server page,它的本质就是一个servlet.我们可以使用jsp来代替servlet来处理显示数据问题。 对于jsp我们可以简单理解成是在html页面中可以书写java代码。 Jsp文件的后缀名是.jsp
Jsp原理
1.当在浏览器上输入http://localhost/cookieAndSession/index.jsp 2.服务器tomcat得到请示,会通过JspServlet将后缀名是.jsp的请求处理, 3.会将index.jsp翻译成index_jsp.java文件 4.在将index_jsp.java文件编译成index_jsp.class文件放到tomcat的work目录下 5.jvm将.class加载运行 6.服务器生成响应,响应信息中就包含了jsp页面上的html代码。
Jsp中的脚本
1.声明标签 <%! Java代码 %> 2.脚本片段 <% java代码 %> 3.脚本表达式 <%=java代码%>
Jsp与servlet区别:
Jsp它的主要作用是用于显示数据。
Servlet它的主要作用是用于处理请求完成业务逻辑操作
jsp主要部分
三大指令(笔试&面试)一般会问jsp的三大指令,不会问详细的属性
page指令相关属性
重要属性
import: 用于在jsp页面上使用java类时导入包 encoding: 用于指示jsp页面翻译后的java文件的编码,其实也就是当前jsp页面编码 contentType: 用于指示jsp页面生成的servlet中response获取输出流输出信息的编码 简单说,就是用于设置response.setContentType(); encoding 与contentType属性的关系: 它们互相依赖,只要设置一个,另一个就参考对方值。
了解的属性
encoding 与contentType属性的关系: 它们互相依赖,只要设置一个,另一个就参考对方值。 language:它代表的是jsp页面上脚本中可以使用的语言 extends:它的作用是指示jsp生成的java类它的父类 session:它的值是true/false,如果是true,代表在jsp页面中可以直接使用session,否则不可以使用。 isElIgnored:它的值是true/false 指示的是jsp页面上是否可以使用el表达式,如果是true,就不能使用el表达式,否则就可以使用. errorPage 用于设置错误页面,jsp页面如果出现问题,可以直接跳转到erroPage指定的页面 isErro
include指令
静态包含,最终编译成一个servlet,多个页面的内容合并输出
静态包含的注意事项: 1. file属性的值不能是变量 2. file属性值不可以携带参数
taglib指令
导入第三方的标签库
九大内置对象(笔试&面试)
内置对象,不用创建.可以直接拿来使用的对象
1.page 类型是Object 2.request 类型是HttpServletRequest 3.response 类型是HttpServletResponse 4.session 类型是HttpSession 5.application 类型是ServletContext 6.out 类型是JspWriter 7.config 类型是ServletConfig 8.exception 类型是Throwable 9.pageContext 类型是PageContext
(重点)pageContext
是一个域对象: 存值 和取值 setAttribute(java.lang.String name, java.lang.Object value) getAttribute(java.lang.String name)
可以操作其它三个域对象
存值: setAttribute(String key,Object obj ,int scope); 取值: getAttribute(String key,int scope)
可以获取其它八个内置对象
举例: request = pageContext.getRequest();
全域查找的方法
findAttribute(java.lang.String name)方法 获取到域范围最小的里面的值
范围从小到大: pageContext-->request-->session-->application
jsp四大域对象(笔试&面试)
application:整个web应用
session :整个会话
request :它是代表整个请求链
pageContext::它代表的是page域,但是jsp中page它的类型是Object,所以操作page域我们使用的是pageContext对象,page域就是指当前页面范围
六个动作标签
转发标签<jsp:forward> <jsp:forward page="/forward/hello.jsp"></jsp:forward>
动态包含<jsp:include> <jsp:include page="要包含的jsp页面">
传递参数:<jsp:param>
与封装javaBean相关的3个标签 <jsp:useBean>,<jsp:setProperty>,<jsp:getProperty>
Jsp中静态包含(include指令)与动态包含(include标签)区别?(笔试) 1.静态包含包含的是内容,而动态包含包含的是结果。 2.静态包含不可以传递参数 ,而动态包含可以传递参数 3.静态包含多个jsp生成一个servlet,而动态包涵多个jsp生成的是多个servlet
el表达式
什么是EL表达式?
1.EL是expression Language的缩写,它是jsp内置的一种表达式语言,从jsp2.0开如,就不让在使用java脚本,而是使用el表达式来替换jsp中java脚本。
2.El表达式格式 ${表达式}
3.使用el表达式的主要敘是代替jsp页面上的<%=%>,也就是说,el表达式主要作用是向浏览器输出数据,例如${1+2} 会浏览器输出
为什么使用el表达式
主要目的是为了替换jsp页面上的脚本,使用jsp更加简单,安全。
主要作用:
1.获取数据(主要是域中数据)
2.执行运算
3.获取web常用对象
4.调用java方法(EL函数)
el表达式的注意事项
1.EL表达式是在jsp2.0规范中的一门技术,要想使用el表达式必须使用支持jsp2.0技术的web服务器(tomcat)
2.Jsp2.0对应的servlet版本是servlet2.4 对应 javaEE1.4. 而我们现在使用的servlet版本是servlet2.5 javaEE5.0
3.如果在程序中发现el不可以使用:
1.tomcat是否版本有问题,使用tomcat6以上
2.在jsp页面上是否设置了isELIgnored="true"
el表达式获取数据
1.page域----------------------${pageScope.name}
2.request域----------------------${requestScope.name}
3.session域----------------------${sessionScope.name}
4.application域----------------------${applicationScope.name}
注意:使用el表达式获取时,如果没有查找到结果,返回的不是null,而是一个””.如果使用传统方式返回null就会报空指针异常
执行运算
在el表达式中可以使用运算符来进行操作 1. 算术运算符 + - * /(div) %(mod) 对于算术运算符注意+,它永远执行的就是加法运算。
2. 关系运算符 >(gt) >=(ge) <(lt) <=(le) == (eq) !=(ne) 执行关系运算它得到的结果就是boolean
3. 逻辑运算符 &&(and) ||(or) !(not) 执行逻辑运算得到的结果也是boolean
4. 三目运算符 (表达式1)?(表达式2):(表达式3) 它与java中的三元运算符一样。
5. empty i. 如果是一个普通对象,它判断对象是否为null,如果为null返回true.否则返回false. ii. 如果是一个容器(数组或集合),它不仅判断对象是否为null,还判断是否有元素。
el获取web常用对象
param:获取一个Map<String,String> key就是请求参数名称,value是值 paramValues:获取一个Map<String,String[]与request.getParameterMap()结果一样。
header:获取一个Map<String,String>它封装的是所有的http请求头信息 headerValues:获取一个Map<String,String[]>它封装的是所有的http请求头信息
initParam 获取一个Map<String,String>它封装了所有的全局初始化参数
cookie:获取一个Map<String,Cookie> 它封装了所有的http请求的中cookie信息,key就是cookie的名称,value就是这个cookie对象。
pageContext 它与jsp页面上内置对象pageContext一样。我们在el中使用pageContext一般使用:${pageContext.request.contextPath}
el函数:
1.Jstl标签库,在jstl标签库中有已经定义好的一些EL函数
2.EL函数它的本质是调用了一个java类的方法。
3.在jsp页面上要使用EL函数必须导入jstl标签库。
注意:注意:如果在开发中,我们使用的不是myeclipse,那么我们在使用el函数时,必须导入jstl的jar包。因为我们使用的是myeclipse,它会默认导入javaee5.0的库,在这个库中包含了jstl标签库的jar文件,所以不用导入了。