文档章节

JSP内置对象和EL内置对象

木云凌
 木云凌
发布于 2017/09/11 10:43
字数 872
阅读 16
收藏 1

JSP内置对象 


JSP内置对象类型映射表 

对象名 类型 作用域
request javax.servlet.ServletRequest RequestScope
response javax.servlet.ServletResponse PageScope
pageContext javax.servlet.jsp.PageContext PageScope
session javax.servlet.http.HttpSession SessionScope
application javax.servlet.ServletContext ApplicationScope
out javax.servlet.jsp.JspWriter PageScope
config javax.servlet.ServletConfig PageScope
page java.lang.Object PageScope
exception javax.lang.Throwable PageScope

九大内置对象(也叫隐式对象)的应用不再赘述。这里提一下 pageContext 这个对象。 

pageContext这个对象比较特殊,由它的类型可知它是jsp特有的,servlet中没有此对象。pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的session,也可以取本页面所在的 application 的某一属性值,他相当于页面中所有功能的集大成者。 

EL内置对象

EL为了方便输出一些表达式的值,自己也定义了一些内置对象,应用这些内置对象方便的获取想要输出的值。
JSP EL的内置对象和JSP的内置对象是两回事,不能互用,即JSP EL内置对象只能在EL中表达式中使用,JSP的内置对象也只能在JSP中使用而不能在EL中直接用,但是两者有个对应关系,即EL的内置对象可以调用JSP对应内置对象的保存数据,从而方便的显示 

JSP EL的内置对象: 
        pageContext    pageScope    requestScope 
        sessionScope    applicationScope    param 
        paramValues    header    headerValues 
        cookie    initParam 


可以分为以下三类: 

1、与范围有关的隐含对象 
        与范围有关的EL 隐含对象包含以下四个:pageScope、requestScope、sessionScope 和applicationScope; 
        它们基本上就和JSP的 pageContext、request、session 和 application 一样; 
        在EL中,这四个隐含对象只能用来取得范围属性值,即getAttribute(String name),却不能取得其他相关信息。 
        例如:我们要取得session中储存一个属性username的值,可以利用下列方法: 
        session.getAttribute("username") 取得username的值, 
        在EL中则使用下列方法 
        ${sessionScope.username} 
2、与输入有关的隐含对象 
        与输入有关的隐含对象有两个:paramparamValues,它们是EL中比较特别的隐含对象。 
        例如我们要取得用户的请求参数时,可以利用下列方法: 
            request.getParameter(String name) 
            request.getParameterValues(String name) 
        在EL中则可以使用param和paramValues两者来取得数据:
            ${param.name} 
            ${paramValues.name} 
3、其他隐含对象 
        cookie 
        JSTL并没有提供设定cookie的动作, 
        例:要取得cookie中有一个设定名称为userCountry的值,可以使用${cookie.userCountry}来取得它。 
        header、headerValues 
        header 储存用户浏览器和服务端用来沟通的数据 
        例:要取得用户浏览器的版本,可以使用${header["User-Agent"]}。 
        另外在鲜少机会下,有可能同一标头名称拥有不同的值,此时必须改为使用headerValues 来取得这些值。 
        initParam 
        initParam取得设定web站点的环境参数(Context) 
        例:一般的方法String userid = (String)application.getInitParameter("userid"); 
        可以使用 ${initParam.userid}来取得名称为userid pageContext 
        pageContext 取得其他有关用户要求或页面的详细信息。 
            ${pageContext.request.queryString}         取得请求的参数字符串 
            ${pageContext.request.requestURL}         取得请求的URL,但不包括请求之参数字符串 
            ${pageContext.request.contextPath}         服务的web application 的名称 
            ${pageContext.request.method}                取得HTTP 的方法(GET、POST) 
            ${pageContext.request.protocol}               取得使用的协议(HTTP/1.1、HTTP/1.0) 
            ${pageContext.request.remoteUser}          取得用户名称 
            ${pageContext.request.remoteAddr }        取得用户的IP 地址 
            ${pageContext.session.new}                       判断session 是否为新的 
            ${pageContext.session.id}                           取得session 的ID 
            ${pageContext.servletContext.serverInfo}  取得主机端的服务信息 

 

© 著作权归作者所有

共有 人打赏支持
木云凌

木云凌

粉丝 13
博文 73
码字总数 28431
作品 0
广州
高级程序员
初识 JSP---(注释/小脚本/声明/指令/动作/内置对象)

注释 java : // / / /** */ html : jsp <%-- --%> jsp注释和html注释的区别 jsp注释对jsp引擎有作用,当jsp引擎看到这个注释后,生产servlet文件是会忽略他 html注释对jsp引擎没有作用,jsp...

姜白告
08/03
0
0
重温JSP学习笔记--El表达式

  el表达式是jsp内置的表达式语言,jsp从jsp2.0开始,就不再提倡使用java脚本,而是用el表达式和动态标签来替代,而el表达式主要替代的是jsp中的<%=....%>,也就是说el表达式只做输出.   EL表...

冬至饮雪
2016/01/31
0
0
JSP 学习总结---学习笔记

什么是JSP 1)为什么说,Servlet是一个动态Web开发技术呢? Servlet是基于服务端的一种动态交互技术, HttpServletRequest表示客户端到服务端的对象 HttpServletResponse表示服务端到客户端的...

知止内明
04/18
0
0
浅谈jsp、freemarker、velocity区别

以前做web开发页面层用的基本就是就是,最近公司java项目页面层用的技术是velocity。听说jsp要淘汰,也不知道是真是假,但本人还是比较喜欢jsp的,下面是网上查找的javaweb项目页面3种技术的...

cccyb
2017/10/21
0
0
servlet/jsp基础复习

servlet就是一个普通的Java类,类对象由服务器(容器)创建,实现请求,响应交互数据。 实现第一个servlet继承HTTPservlet重写doget,dopost方法。其实servlet执行处理请求时候都会调用父类s...

hello_hp
2017/10/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

shell-日志脚本小实验

1.查找日志2018-8-15,求得那一分钟访问量最大。 #/bin/bash#from cc#2018-8-15#2018-08-15.log 哪一分钟 访问量 最大for d in `ls /data/nginx/logs/`doif [ -a 2018-08-15...

chencheng-linux
昨天
0
0
Android中的设计模式之状态模式

参考 《设计模式:可复用面向对象软件的基础 》5.8 State 状态 对象行为型模式 《Android源码设计模式解析与实战》第7章 随遇而安--状态模式 意图 允许一个对象在其内部状态改变时改变它的行...

newtrek
昨天
0
0
xshell端 vim没有颜色

说明 使用xshell连接服务器的时候,使用vim打开文档没有颜色 解决方法: 1.在更目录home或者etc下找到vim的配置文件vimrc 2.vim打开它找个坑,添加下面这个东西 set t_Co=256 3.保存退出,就...

杉下
昨天
0
0
spring 资料

spring boot http://www.ityouknow.com/springboot/2016/01/06/spring-boot-quick-start.html

zaolonglei
昨天
2
0
TypeScript基础入门 - 函数 - 简介

转载 TypeScript基础入门 - 函数 - 简介 项目实践仓库 https://github.com/durban89/typescript_demo.gittag: 1.1.6 为了保证后面的学习演示需要安装下ts-node,这样后面的每个操作都能直接...

durban
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部