EL表达式

JSP与Servlet的关系

现有Servlet后有JSP–并且JSP就是Servlet

JSP的九个内置对象

  • WEB域内置对象【存值取值-传送数据】
  1. page/pageContext:只在当前页面有效,离开无效
  2. request:在一次请求转发中有效
  3. session:在一次会话中有效,在打开浏览器是第一次访问为一个新的会话,如何再次访问则不属于第一个会话。
  4. application:在服务器范围有效,只要服务器未关闭则服务器域内的值就不会消失
  • 注意:WEB域内置对象均有getAttribute和setAttribute方法设置值和取值。

  • 其他

  1. response:响应response.setContentType("test/html;charst=utf-8")
  2. out:输出
  3. exception:异常
  4. config:读取初始化信息(web.xml)
1
2
3
4
session.getId()//每次打开会话时都会有一个新的id
application.getRealPath("/")
application.getRealPath("")//两个获取路径的方法相同但是注意/

EL表达式

作用:获取WEB开发常用的对象,通过${}来取WEB域中的值,这个值可以是个字符串,可以使集合和对象

1
2
3
4
5
6
7
8
9
10
11
12
//在获取WEB与中数据时,当其拥有相同的key值,则获取到值的顺序是
//pageContext,request,session,application
//例如:
pageContext.setAttribute("book","1");
request.setAttribute("book","2");
session.setAttribute("book","3");
application.setAttribute("book","3");
//当用EL表达式取值时:取到的是1,注释掉第一行再取值便是2,以此类推
${pageScope}
${requestScope}
${sessionScope}
${applicationScope}

当对对象和集合操作时,要取内部的属性值或者集合中的key值时需要使用.或者[]的方式获取属性。

  • 当再JSP页面需要取地址栏中的传递参数如?user_id = 100时,可以使用param,如:${param.user_id},并且不需要再页面显示时判断是否为空,不会输出null值。如果没有值则什么也不会输出。