`

JSP脚本中的九大内置对象详解(下)

 
阅读更多

接上篇,接下来详细介绍九大内置对象的使用及注意点

(一)application

它是ServletContext的实例,代表web应用本身

常用方法有

getAttribute(String attrName),setAttribute(String attrName,Object attrValue)

getInitParameter(String paramName),获取在web.xml中配置的全局配置参数(<context-param>)。

(二)config

它是ServletConfig的实例,代表servlet和jsp的配置信息(由<init-param>指定)

常用方法

getInitParameter(String paramName),获取在servlet或jsp中配置的局部参数

(三)exception

它是Throwable的实例,代表上一个页面中所抛出的异常,上一篇中也提到了,只能在异常处理页面中使用该内置对象。对于jsp脚本,我们发现在其中并未处理其异常,哪怕是checked异常。仔细观察上篇中所贴出的代码,原来_jspService方法中所有处理都是被try/catch包裹起来的,这就是在jsp脚本中不用显式处理异常的原因。

当某个jsp页面抛出异常时,请求会转发到其errorPage属性所指定的页面,如果未指定,则抛出我们常看到的500错误页面。

(四)out

它是JspWriter的实例,代表一个响应输出字符流,所有能用jsp输出表达式<%= %>的地方,都可以用out对象来达到同样的效果。jsp输出表达式的本质就是out.write();

(五)pageContext

它是PageContext的实例,代表页面上下文,该对象能访问page/request/session/application范围的数据,只要在访问时指定数据的范围,它还能获取其它内置对象。

常用方法

getAttribute(String attrName,int scope),setAttribute(String attrName,Object attrValue,int scope)

getRequest();获取request对象

getResponse();获取response对象

getServletConfig();获取config对象

getServletContext();获取application对象

getSession();获取session对象

(六)request

对于该对象,相信大家都非常熟悉了,个人总结了几个注意点。

(1)对于get/post请求参数中包含非西欧字符的问题

对于post请求,只需在获取请求参数前调用request.setCharacterEncoding()方法设置编码的字符集与jsp页面中指定的一样即可

对于get请求,上述的方式就不行了,需要我们手动进行编码/解码操作

(2)该对象提供了一个getCookies()方法,注意,该方法返回的是客户机上当前应用下所有cookie组成的数组

(七)response

它是HttpServletResponse的实例,代表响应输出的字节流,注意和out区分。

它主要的作用如下:

(1)响应非字符的响应,getOutPutStream();

(2)重定向请求,sendRedirect();

(3)向客户端增加cookie,addCookie(Cookie cookie);

(八)session

它是HttpSession的实例,代表一次用户会话。

关于session,有以下注意点:

(1)通常只应该把与用户会话状态相关的信息放入session范围内

(2)session范围内的信息,需要保存到web服务器的磁盘上,所以要求session里的属性值必须是可序列化的。

(九)page

代表页面本身,也就是其所编译成的servlet中的this,即servlet实例本身,通常不会用到

分享到:
评论

相关推荐

    韩顺平2013版“细说JSP”视频教程

    动作元素【】第4讲.jsp九大内置对象.jsp版本计算器①【】第5讲.jsp版本计算器②[ED2000.COM]【】第6讲.jsp版本计算器③【】第7讲.model 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part2

    本书语言生动、通俗易懂、讲解细致,大部分章节都提供了多个例子,而且很多例子都是目前web开发中经常使用的功能,具有相当的实用价值。本书不仅可以作为java web开发的学习用书,还可以作为从事java web开发的...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part3

    本书语言生动、通俗易懂、讲解细致,大部分章节都提供了多个例子,而且很多例子都是目前web开发中经常使用的功能,具有相当的实用价值。本书不仅可以作为java web开发的学习用书,还可以作为从事java web开发的...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part4

    本书语言生动、通俗易懂、讲解细致,大部分章节都提供了多个例子,而且很多例子都是目前web开发中经常使用的功能,具有相当的实用价值。本书不仅可以作为java web开发的学习用书,还可以作为从事java web开发的...

    JAVA WEB 开发详解:XML+XSLT+SERVLET+JSP 深入剖析与实例应用.part5

    本书语言生动、通俗易懂、讲解细致,大部分章节都提供了多个例子,而且很多例子都是目前web开发中经常使用的功能,具有相当的实用价值。本书不仅可以作为java web开发的学习用书,还可以作为从事java web开发的...

    J2EE应用开发详解

    JSP技术 67 5.1 JSP简介 67 5.2 JSP页面的结构 68 5.3 脚本元素 68 5.3.1 Scriptlet元素 69 5.3.2 Expression元素 69 5.3.3 Declaration元素 70 5.4 指令 73 5.4.1 page指令 73 5.4.2 include指令 75 5.5 动作 76 ...

    Java开发技术大全 电子版

    13.6.2时间格式转换符详解415 13.6.3格式说明符语法图417 13.7正则表达式417 13.7.1正则表达式的作用418 13.7.2正则表达式的基本规则418 13.7.3正则表达式中的一些高级规则421 13.7.4正则表达式中的其他通用...

    Java Web程序设计教程

    3.2.8jsp的内置对象 43 3.3认识servlet 46 3.3.1servlet的开发 46 3.3.2使用httpservlet 47 3.3.3servlet的生命周期 49 3.3.4load-on-startupservlet 50 3.4自定义标签库 51 3.5预处理用户请求:filter 53 ...

    IBM WebSphere Portal门户开发笔记01

    40、JS内置对象属性及方法大全 312 41、JS REGEX示例 319 42、CSS鼠标样式 319 43、IFRAME WINDOW、DOCUMENT获取与其他 320 44、CSS Z-INDEX 取值范围 320 45、CSS背景图片与内容放大与缩小时相对定位 321 46、JS ...

    Spring-Reference_zh_CN(Spring中文参考手册)

    3.3.3. bean属性及构造器参数详解 3.3.3.1. 直接量(基本类型、Strings类型等。) 3.3.3.2. 引用其它的bean(协作者) 3.3.3.3. 内部bean 3.3.3.4. 集合 3.3.3.5. Nulls 3.3.3.6. XML-based configuration metadata ...

    Spring中文帮助文档

    3.3.2. 依赖配置详解 3.3.3. 使用depends-on 3.3.4. 延迟初始化bean 3.3.5. 自动装配(autowire)协作者 3.3.6. 依赖检查 3.3.7. 方法注入 3.4. Bean的作用域 3.4.1. Singleton作用域 3.4.2. Prototype作用...

    spring chm文档

    3.3.3. bean属性及构造器参数详解 3.3.4. 使用depends-on 3.3.5. 延迟初始化bean 3.3.6. 自动装配(autowire)协作者 3.3.7. 依赖检查 3.3.8. 方法注入 3.4. bean的作用域 3.4.1. Singleton作用域 3.4.2. ...

    Spring 2.0 开发参考手册

    3.3.3. bean属性及构造器参数详解 3.3.4. 使用depends-on 3.3.5. 延迟初始化bean 3.3.6. 自动装配(autowire)协作者 3.3.7. 依赖检查 3.3.8. 方法注入 3.4. bean的作用域 3.4.1. Singleton作用域 3.4.2. ...

    Spring API

    3.3.2. 依赖配置详解 3.3.3. 使用depends-on 3.3.4. 延迟初始化bean 3.3.5. 自动装配(autowire)协作者 3.3.6. 依赖检查 3.3.7. 方法注入 3.4. Bean的作用域 3.4.1. Singleton作用域 3.4.2. Prototype作用...

Global site tag (gtag.js) - Google Analytics