jsp页面9大隐含对象
这9个隐含对象是tomcat在翻译jsp到Java文件阶段给我们创建好的,我们可以直接拿来使用
1.request:相当于servlet中的request作用域
1.1存值:request.setAttribute(name,value);
1.2取值:request.getAttribute(name);
2.response:相当于servlet中的response对象
设置响应类型和编码格式:response.setContentType();
response.setCharacterEncoding();
3.session:相当于servlet中的session作用域
3.1存值:session.setAttribute(name,value);
3.2取值:session.getAttribute(name);
4.application:相当于servlet中servletContext作用域
4.1存值:application.setAttribute(name,value);
4.2取值:application.getAttribute(name);
5.pageContext:也是一个作用域功能对象,作用范围仅限于当前的jsp页面
5.1基本使用
存值:pageContext.setAttribute(name,value);
取值:pageContext.getAttribute(name);
5.2使用pageContext对象操作其他作用域
pageContext.setAttribute(name,value,指定操作哪一个作用域);
5.3按作用域从小到大的顺序搜索命名属性
pageContext.findAttribute(name); 找到则返回,找不到返回null
6.out:相当于servletx中response.getWriter()获取输出流作用
可以向页面输出结果
7.config:相当于servletConfig对象
获取ServletConfig对象 封装了当前servlet在web.xml中的配置信息
8.exception:只有isErrorPage=true的页面才有,封装了捕捉到的页面信息
9.page:相当于this,指当前jsp对象
EL表达式
1.EL表达式是一种表达式语言,主要用于数据的展示相关操作,未来EL表达式会配合jstl标签完成jsp页面数据的展示。EL表达式会替换掉大部分的脚本
2.语法:${}
注意:使用EL表达式的jsp页面必须保证isELIgnored=false
3.EL表达式的使用
3.1算数运算的使用
1+1=${1+1 }<br>
1-1=${1-1 }<br>
1*1=${1*1 }<br>
1/1=${1/1 }<br>
3.2关系运算的使用
1>2 == ${1>2 } - ${1 gt 2 }<br>
1<2 == ${1<2 } - ${1 lt 2 }<br>
1>=2 == ${1>=2 } - ${1 ge 2 }<br>
1<=2 == ${1<=2 } - ${1 le 2 }<br>
1!=2 == ${1!=2 } - ${1 ne 2 }<br>
1==2 == ${1==2 } - ${1 eq 2 }
3.3逻辑运算的使用 and or
${1>2 and 1<2 } - ${1>2 && 1<2 } <br>
${1>2 or 1<2 } - ${1>2 || 1<2 } <br>
${!(1>2 and 1<2) } - ${not(1>2 && 1<2) }
4.使用EL表达式从作用域中取数据
4.1基本语法
request:${requestScope.name} == <%=request.getAttribute(name)%>
pageContext:${pageScope.name} == <%=pageContext.getAttribute(name)%>
4.2取自定义对象类型的属性值
<%Person person = new Person(1,"小红","18");
request.setAttribute("person", person);
%>
${requestScope.person.name }<br>
${requestScope.person.age }
4.3获取list集合元素的值
<%List<String> list = new ArrayList<String>();
list.add("小王");
list.add("小张");
list.add("小李");
request.setAttribute("list", list);
%>
${requestScope.list[1] } //小张 ${requestScope.list[index] }
4.4获取map集合元素的值 根据key取value
<%Map<String,String> map = new HashMap<String,String>();
map.put("一号", "貂蝉");
map.put("二号", "西施");
map.put("三号", "王昭君");
map.put("四号", "杨玉环");
request.setAttribute("map", map);
%>
${requestScope.map['三号'] }
5.从作用域搜索命名属性 从小到大
${name} == <%=pageContext.findAttribute(name)%>
6.EL表达式中其他内置对象
6.1 pageContext:实现动态获取项目名
${pageContext.request.ContextPath} 相当于 request.getContextPath();
6.2 param:实现获取客户端请求参数
${param.name} == request.getParameter(name);
6.3 paramValues:获取一组参数
${paramValues.hobby[0]}