一、JSP的9大内置对象
- request -- HttpServletRequest :从客户端向服务器发送的请求对象
- response --HttpServletResponse :从服务器端向客户端作出响应对象
- session -- HttpSession :服务器为客户端创建会话对象
- application -- ServletContext :代表应用。获得的ServletContext对象。
- out -- JspWriter :向输出流写入内容的对象。
- page -- Object :当前的JSP翻译成Servlet后的对象的引用。
- pageContext -- PageContext :本JSP的页面的上下文对象。
- config -- ServletConfig :本JSP的ServletConfig对象。
- exception -- Throwable :表示JSP页面运行时产生的异常对象。
二、EL表达式
EL表达式语句在执行的时候,会调用pageContext.findAttribute()方法。分别从page、request、session、application范围查 找 相应对象,找到就会返回相应对象,找不到返回””(不是null,是空的字符串)。EL所获取的数据需要在四个作用范围中。
EL表达式定义了 11 个web开发常用对象。其中pageContext 是PageContext对象, 其他是Map对象
- pageContext -- PageContext :相当于JSP内置对象中pageContext
- pageScope -- Map<String,Object> :获取指定域下的名称的数据
- requestScope -- Map<String, Object> :获取指定域下的名称的数据
- sessionScope -- Map<String, Object> :获取指定域下的名称的数据
- applicationScope -- Map<String, Object> :获取指定域下的名称的数据
- param -- Map<String,String> :在页面中接收请求参数(接收一个名称对应一个值参数)。
- paramValues -- Map<String, String[]> :在页面中接收请求参数(接收一个名称对应多个值参数)。
- header -- Map<String,String> :在页面上获取请求头(获取一个key对应一个value 头)
- headerValues --Map<String,String[]> :在页面上获取请求头(获取一个key对应多个value 头)
- cookie -- Map<String,Cookie> :map 的key是Cookie的名字(${cookie.key.name} ${cookie.key.value})
- initParam -- Map<String,String> :获取全局初始化参数的值
1.pageContext:PageContext类型,pageContext.getRequest,可以${pageContext.request}。
PageModel pageModel = service.find();
request.setAttribute("pageModel");i.取出pageModel对象
pageModel==>pageModel对象ii.取出pagesize属性pageModel==>pageModel对象ii.取出pagesize属性{pageModel.pagesize}==>pageModel.getPagesize()
ii.取出响应的列表:list属性
${pageModel.list}==>pageModel.getList()2.pageScope:Map<String,Object>类型,${pageScope.xxx}的功能相等与pageContext.getAttribute(“xxx”)。两者的区别在于,前者在数据不存在时返回空字符串,而后者返回null。
3.requestScope:Map<String, Object>类型,装载了request对象中的所有数据。
4.sessionScope:Map<String, Object>类型,装载了session对象中的所有数据。
5.applicationScope:Map<String, Object>类型,装载了application对象中的所有数据。
当EL中给出的不是隐藏对象时,表示在四个域中查找数据。例如:${a},表示①在${pageScope.a}中查找,如果找到就返回。
②在${requestScope}中查找,如果找到就返回。
③在${sessionScope}中查找,如果找到就返回。
④在{applicationScope}中查找,如果找到就返回,找不到就返回空字符串。
6.param:Map<String,String>类型,可以用来获取参数,与request.getParameter()方法相同。
/rams?username=wubin,获得username参数值
方式一:<% String username = request.getParameter("username") %>
方式二:${param.username} ==> param.get("username")7.paramValues:Map<String, String[]>类型,同一参数名对应多个值(比如,checkbox)
/rams?interests=足球&interests=读书
方式一:<% String username = request.getParameterNames("interests") %>
方式二:${paramValues.interests} ==> paramValues.get("interests")8.header:Map<String,String>类型,用来获取请求头。
9.headerValues:Map<String,String[]>类型,同一个请求头对应多值。
10.cookie:Map<String,Cookie>类型,key是Cookie的名字,而值是Cookie对象本身。7
11.initParam:Map<String,String>类型,对应web.xml文件中的<context-param>参数。
${initParam.contextConfigLocation}