JSP基本用法(二)隐含对象
一、摘要
在JSP容器中生成的Servlet类的_jspService()方法中,定义了几个对象,在编写JSP页面时我们可以使用这些隐含对象。
PageContext pageContext = null;
HttpSession session = null;
ServletContext application = null;
ServletConfig config = null;
JspWriter out = null;
Object page = this;
JspWriter _jspx_out = null;
PageContext _jspx_page_context = null;
注意:上面的代码没有exception内置对象,只有当页面的page指令的isErrorPage属性为true才会使用exception对象。
下面将对这些对象进行逐一介绍。
二、application对象
application对象代表Web应用本身,该对象通常有两个作用:
1.在整个Web应用的多个JSP、Servlet之间共享数据
在JSP中设置属性和对应的值:
<html>
<head>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<title>在此处插入标题</title>
</head> <body> <%
application.setAttribute("name", "xujian");
%>
</body> </html>
在Servlet中利用ServletContext对象的getInitParameter()方法即可获取该属性值:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
System.out.print(this.getServletContext().getInitParameter("name"));
}
2.访问Web应用的配置参数
在web.xml文件中进行参数配置:
<context-param>
<param-name>name</param-name>
<param-value>xujian</param-value>
</context-param>
JSP中可利用application对象的getInitParameter()方法获取配置参数值:
<body>
<%= application.getInitParameter("name")%>
</body>
三、config对象
Config对象代表当前JSP配置信息,该对象在JSP页面较为少用。我们可以在web.xml中配置信息:
<servlet>
<servlet-name>config</servlet-name>
<jsp-file>/Demo.jsp</jsp-file> <init-param>
<param-name>age</param-name>
<param-value>20</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>config</servlet-name>
<url-pattern>/config</url-pattern>
</servlet-mapping>
然后利用Config对象的getInitParameter()方法获取配置信息:
<body>
<%= config.getInitParameter("age")%>
</body>
四、pageContext对象
pageContext对象代表页面上下文,主要用于访问JSP之间的共享数据。
- a single API to manage the various scoped namespaces
- a number of convenience API's to access various public objects
- a mechanism to obtain the JspWriter for output
- a mechanism to manage session usage by the page
- a mechanism to expose page directive attributes to the scripting environment
- mechanisms to forward or include the current request to other active components in the application
- a mechanism to handle errorpage exception processing
注意:PageContext对象实际上是为我们提供了访问其他隐含对象的统一入口。
五、out对象
out对象以字符流的形式输出数据,实际上是PrintWriter对象的带缓冲的版本,可以通过page指令的buffer属性来调整缓冲区的大小。
所有使用out的地方都可以使用输出表达式来代替,<%= ...%>表达式的实质就是out.write(...)。
六、exception对象
exception对象表示了JSP页面运行时产生的异常,该对象只在错误页面中才能使用。
注意:如果一个JSP页面使用errorPage属性定义了错误页面,那么在web.xml文件中定义的错误页面将不会被使用。
七、session对象
session对象代表一次用户会话(从客户端浏览器连接服务器开始,到客户端浏览器与服务器断开为止),session通常用于跟踪用户的会话信息,如判断用户是否登录系统或者跟踪用户购买商品信息等。
String getId(); //获取session的ID
long getCreationTime();// 获取session的生成时间
long getLashAccessedTime(); // 获取用户最后通过session发送请求时间
long getMaxInactiveInterval(); //获取session生命周期,如果超过这个时间则失效
void invalidate(); // 清空session内容
boolean isNew(); // 判断session是否为“新”的
void setMaxInactiveInterval(); // 设置session生命周期,如果超过这个时间则失效
JSP基本用法(二)隐含对象的更多相关文章
- Jsp的九个隐含对象
JSP的9个隐含对象(内置对象) 不需要预先声明,就可以在jsp或者表达式中随意使用 out javax.servlet.jsp.JspWriter类型,代表输出流的对象.作业域:页面的执行期. re ...
- jsp中9个隐含对象
在JSP中一共有9个隐含对象,这个9个对象我可以在JSP中直接使用.因为在service方法已经对这个九个隐含对象进行声明及赋值,所以可以在JSP中直接使用. - pageContext 类型:Pag ...
- javaweb之jsp的九个隐含对象与基本语法
1.在页面上可以不用声明直接使用的对象称为jsp页面的隐含对象.使用<% %>编写的java代码在_jspService方法中,如下: public void _jspService(fi ...
- [原创]java WEB学习笔记14:JSP的9 个隐含对象 及 JSP 的基本语法
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- EL表达式的语法介绍及九大隐含对象
一. 简介 > JSP表达式 <%= %> 用于向页面中输出一个对象. > 到JSP2.0时,在我们的页面中不允许出现 JSP表达式和 脚本片段. > 使用EL表达式来代 ...
- Servlet,jsp,jsp的9大内置对象
以servlet作为控制器 1:servlet的生命周期:以下方法都是servlet容器进行调用 1)构造函数:只被调用一次,当项目启动时或者该servlet被容器第一次调用时,会创建servlet实 ...
- JSP页面的隐含对象和Servlet程序里的对象之间的关联和区别
首先,有两个概念: 1.JSP页面的域对象:pageContext,request,session,application对象(四个) void setAttribute(String name,Ob ...
- javaWEB总结(12):JSP页面的九个隐含对象
前言 jsp本质上是一个servlet,而在jsp中有九个不用声明就可以使用的对象,我们叫他隐含对象.本文基于上文所写,如有需要可查看上一篇文章javaWEB总结(11):JSP简介及原理. 打开上次 ...
- JSP EL隐含对象
JSP 内置对象 JSP EL隐含对象 描述 page pageScope page 作用域 request requestScope request 作用域 session sessionScope ...
随机推荐
- 初试PyOpenGL四 (Python+OpenGL)GPU粒子系统与基本碰撞
这篇相当于是对前三篇的总结,基本效果如下: 在初试PyOpenGL一 (Python+OpenGL)讲解Pyopengl环境搭建,网格,球体,第一与第三人称摄像机的实现.在初试PyOpenGL二 (P ...
- Eclipse中配置resin 4.x
开发web项目时,你还困扰在,反复启动web容器的痛苦中么?也许会有人说,用调试模式.但是如果涉及到配置文件或者service类,还是不得不重启web容器吧,而且偶尔会出现抽风情况,没生效的情况(这时 ...
- visual studio运行时库MT、MTd、MD、MDd 的区别
msdn上面的解释: MT:mutithread,多线程库,编译器会从运行时库里面选择多线程静态连接库来解释程序中的代码,即连接LIBCMT.lib库 MTd:mutithread+debug,多线程 ...
- visual studio code 写c++代码
首先安装c++插件: 安装 LLVM clang 下载地址:http://releases.llvm.org/ 解决方法:点击黄色灯泡 进入 c_cpp_properties.json文件, 在 pa ...
- Linux-HA实战(3)— 基于Pacemaker搭建TFS Nameserver HA
上篇文章简单介绍了下基于Heartbeat的虚拟IP配置,个人觉得简单易用已经能够应付大部分场景了.但是既然花时间研究HA,如果仅限于一个虚拟IP飘来飘去未免有点糊弄任务了,因此这篇文章打算介绍下基于 ...
- C# IEnumerator的使用
迭代器模式是设计模式中行为模式(behavioral pattern)的一个例子,他是一种简化对象间通讯的模式,也是一种非常容易理解和使用的模式.简单来说,迭代器模式使得你能够获取到序列中的所有元素而 ...
- jQuery table td可编辑
参考链接: http://www.freejs.net/ http://www.freejs.net/article_biaodan_34.html http://www.freejs.net/sea ...
- Python——eventlet.wsgi
eventlet 的 wsgi 模块提供了一种启动事件驱动的WSGI服务器的简洁手段,可以将其作为某个应用的嵌入web服务器,或作为成熟的web服务器,一个这样的web服务器的例子就是 Spawnin ...
- MySQL中mysqldump导出数据的使用
mysqldump常用参数说明: 帮助使用:mysqldump --help -A, --all-databases 导出全部数据库 mysqldump -uroot -p –A > /tmp/ ...
- R语言绘制花瓣图flower plot
R语言中有很多现成的R包,可以绘制venn图,但是最多支持5组,当组别数大于5时,venn图即使能够画出来,看上去也非常复杂,不够直观: 在实际的数据分析中,组别大于5的情况还是经常遇到的,这是就可以 ...