文档章节

JSP内置对象和EL内置对象

木云凌
 木云凌
发布于 2017/09/11 10:43
字数 872
阅读 18
收藏 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
博文 80
码字总数 30480
作品 0
广州
高级程序员
私信 提问
JSP——Java Server Pages

简介 1. Jsp技术:Jsp是一种 html代码+ Java代码 + Jsp页面代码的技术,而且其不用像Servlet哪样需要配置访问路径。 2. Jsp执行原理:第一次访问服务器web项目中的jsp页面时,会首先把jsp页面...

江左煤郎
09/13
0
0
重温JSP学习笔记--El表达式

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

冬至饮雪
2016/01/31
0
0
初识 JSP---(注释/小脚本/声明/指令/动作/内置对象)

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

姜白告
08/03
0
0
Jsp 和 Servlet 有什么不同?

面试中被问到了 Jsp 和 Servlet 有什么不同?在这里总结分享下。 回答思路先分别进行基本介绍,然后分析说明两者相同点和不同点。 基本介绍 Servlet: Servlet 是一种服务器端的Java应用程序...

几个栗子
08/22
0
0
JSP 学习总结---学习笔记

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

知止内明
04/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ViewPager+Fragment+FragmentPagerAdapter实现软件主界面

ViewPager之前的页面是由View构成的,现在由Fragment构成,之前的PagerAdapter这里也换成了FragmentPagerAdapter.因为PagerAdapter有 public Object instantiateItem(ViewGroup container, i......

鱼想吃肉
9分钟前
0
0
feign文件上传遇到的坑

明天写

王俊博客
14分钟前
0
0
scala的sorted,sortBy,sortWith

val lst = List(1,3,2,4,5) //scala中对于集合的排序有三种方法:sorted,sortBy,sortWith //sorted方法对一个集合进行自然排序,传递一个Ordering隐式参数 def sorted[B >: A](imp...

whoisliang
29分钟前
0
0
区块链扩容最佳途径?十分钟讲清楚侧链技术

今天我们来讲区块链扩容的另一个主流方案——侧链,侧链可作为解决区块链扩容难题的一种有效解决方案。有些人认为,从理论上说,这种解决方案可让所有人都满意。 基础概念 侧链协议本质上是一...

HiBlock
31分钟前
0
0
3年经验Java程序员面阿里P6 差距在哪里

虽然这位小伙伴觉得自己工作三年了,结果阿里连面都不面就把自己挂了,这让自己感到很伤心。但是还是有网友觉得,三年不到p6,很正常啊,明年再面就没有问题啦! Java程序员3年经验面阿里P6,...

架构师springboot
33分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部