博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JSP内置对象和EL内置对象
阅读量:6497 次
发布时间:2019-06-24

本文共 2535 字,大约阅读时间需要 8 分钟。

hot3.png

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}  取得主机端的服务信息 

 

转载于:https://my.oschina.net/watsonos/blog/1534969

你可能感兴趣的文章
字符串变量小议
查看>>
232. Implement Queue using Stacks
查看>>
Poj(1469),二分图最大匹配
查看>>
和菜鸟一起学linux之V4L2摄像头应用流程【转】
查看>>
spin_lock、spin_lock_irq、spin_lock_irqsave区别【转】
查看>>
删除 mac 垃圾桶内清除不掉的文件
查看>>
【响应式编程的思维艺术】 (5)Angular中Rxjs的应用示例
查看>>
/bin/bash^M: bad interpreter: No such file or dire
查看>>
python xml rpc
查看>>
Java设置以及获取JavaBean私有属性进阶
查看>>
db2表结构导出导入,数据库备份
查看>>
策略模式
查看>>
第二 周作业总结
查看>>
OrderOnline——项目概述
查看>>
POJ-2739(Water)
查看>>
【转】第三节 UNIX文件系统结构
查看>>
为什么sql里面not in后面的子查询如果有记录为NULL的,主查询就查不到记录
查看>>
Angular7里面实现 debounce search
查看>>
Linux 内核链表
查看>>
git学习------>Git 分支管理最佳实践
查看>>