JSP内置对象详解

  转自http://www.cnblogs.com/oumyye/p/4240272.html  

  在JSP中为了简化用户的开发,提供了九个内置对象,这些内置对象将由容器为用户进行实例化,而用户直接使用即可,而不用像在java中那样,必须通过关键字new进行实例化对象之后才可以使用。

No.

内置对象

类型

描述

1

pageContext

javax.servlet.jsp.PageContext

JSP的页面容器

2

request

javax.servlet.http.HttpServletRequest

得到用户的请求信息

3

response

javax.servlet.http.HttpServletResponse

服务器向客户端的回应信息

4

session

javax.servlet.http.HttpSession

用来保存每一个用户的信息

5

application

javax.servlet.ServletContext

表示所有用户的共享信息

6

config

javax.servlet.ServletConfig

服务器配置,可以取得初始化参数

7

out

javax.servlet.jsp.JspWriter

页面输出

8

page

java.lang.Object

表示从该页面中表示出来的一个Servlet实例

9

exception

java.lang.Throwable

表示JSP页面所发生的异常,在错误页中才起作用

  在JSP中提供了四种属性的保存范围,所谓的属性保存范围,指的就是一个设置的对象,可以在多少个页面中保存并可以继续使用

四种属性范围:
  1. pageContext:只在一个页面中保存属性,跳转之后无效。
  2. request:只在一次请求中保存,服务器跳转后依然有效。
  3. session:在一次会话范围中,无论何种跳转都可以使用,但是新开浏览器无法使用。
  4. application:在整个服务器上保存,所有用户都可以使用 

No.

方法

类型

描述

1

public void setAttribute(String name,Object o)

普通

设置属性的名称及内容

2

public Object getAttribute(String name)

普通

根据属性名称取得属性

3

public void removeAttribute(String name)

普通

删除指定的属性

  page属性范围(使用pageContext表示,但是一般来讲都习惯于将这种范围称为page范围)表示将一个属性设置在本页上,跳转之后无法取得 。

  request属性范围 (如果要在服务器跳转之后属性可以继续保存下来,则可以使用request属性范围操作,request属性范围表示的是在服务器跳转之后,所有设置的内容依然会被保留下来 )

  关于request属性范围的理解 :request表示的是客户端的请求,正常情况下,一次请求服务器只会给予一次回应,那么这个时候如果是服务器端跳转,请求的地址栏没有改变,所以也就相当于回应了一次,而如果地址栏改变了,就相当于是发出了第二次请求,则第一次请求的内容肯定就已经消失了,所以无法取得。

  session属性范围 (如果现在希望一个属性设置之后,可以在任何一个与设置页面相关的页面中取得的话,则就可以使用session属性范围,使用session设置属性之后,不管是客户端跳转还是服务器端跳转,只要属性设置了就都可以取得 )

  application属性范围(如果现在希望设置一个属性,可以让所有的用户(每一个session)都能看得见的话,则可以将属性范围设置成application,这样属性就保存在了服务器之上。)

 

 

其他对象:

response对象的主要作用是用于对客户端的请求进行回应,将WEB服务器处理后的结果发回给客户端。response对象属于javax.servlet.http.HttpServletResponse接口的实例,HttpServletResponse接口的定义如下:
public interface HttpServletResponse extends ServletResponse
config对象是javax.servlet.ServletConfig接口的实例化对象,主要的功能是取得一些初始化的配置信息。
常用方法:
public String getInitParameter(String name)
public Enumeration getInitParameterNames()
out对象是javax.servlet.jsp.JspWriter类的实例化对象,主要的功能就是完成页面的输出操作,使用println()或print()方法输出,但是从实际的开发来看,直接使用out对象的几率较少,都会使用表达式完成输出的操作。
out对象定义了如下的几个操作:
public int getBufferSize()
public int getRemaining()
pageContext对象是javax.servlet.jsp.PageContext类的实例,主要表示的是一个JSP页面的上下文,在此类中除了之前讲解过的属性操作之外,还定义了以下的一些方法:
public abstract void forward(String relativeUrlPath) throws ServletException,IOException
public void include(String relativeUrlPath) throws ServletException,IOException
public ServletConfig getServletConfig()
public ServletContext getServletContext()
public ServletRequest getRequest()
public ServletResponse getResponse()
public HttpSession getSession()

转载于:https://www.cnblogs.com/claricre/p/6370800.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255473.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cvMorphology形态学原理解析及源码分析

⑴ 图像形态学处理的概念...1 ⑵ 二值图像的逻辑运算...3 ⑶ 膨胀和腐蚀...4 (4) 高级形态学变换...8 (5) 细化...10 ⑴ 图像形态学处理的概念 数字图像处理中的形态学处理是指将数字形态学作为工具从图像中提取对于表达和描绘区域形状有用处的图像分量,比如边…

安全

2019独角兽企业重金招聘Python工程师标准>>> 1、不要使用页面变量进行传递值,用session 转载于:https://my.oschina.net/u/2277088/blog/1621841

lua_string_pattern

两大特点: 1. string库中所有的字符索引从前往后是1,2,...;从后往前是-1,-2,... 2. string库中所有的function都不会直接操作字符串,而是返回一个新的字符串。 库函数: 1、string.len,string.rep,string.upper&#xf…

【pyqt5学习】QLayout: Attempting to add QLayout “to ***“, which already has a layout

报错场景&原因 在界面设计时,想实时更新用matplotlib绘制的图像,即会一次次的调用plot函数,这样就会重复地向groupbox里面添加布局,但是一个容器只能有一个布局,因此会报错 def __init__(self):super(weibo_search_logic, se…

3D打印材料PLA,ABS对比

转载于:https://www.cnblogs.com/sztom/p/6373910.html

扒一扒工业机器人编程语言和种类

机器人编程语言(一) 伴随着机器人的发展,机器人语言也得到发展和完善。机器人语言已成为机器人技术的一个重要部分。机器人的功能除了依靠机器人硬件的支持外,相当一部分依赖机器人语言来完成。早期的机器人由于功能单一&#xff…

Java继承概述以及Java继承案例和继承的好处

Java继承概述 1.多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些相同属性和行为,只要继承那个类即可。 2.在Java中通过extends关键字可以实现类与类的继承。 例如:class 子类名 extends 父类…

描述用户场景

每一个组员根据自己所承担的项目,描绘用户场景并将典型用户和用户场景描述! 典型用户 ①当代大学生们,我们的收入多数是来自家庭父母给的生活费,或者还包括一些自己打工挣的零块。收入也就这么几个来源,但是支出却多种…

【pyqt5学习】——控件绑定槽函数的同时利用lambda实现传参

两种方法: 1、利用pyqtsignal的emit进行传参 2、connect函数进行传参 self.pushButton.clicked.connect(lambda:self.readZodiacByButtonText(self.pushButton.text())) # 根据按钮上的文字来进行阅读def readZodiacByButtonText(self,text):if self.language &…

如何用MaskBlt实现两个位图的合并,从而实现背景透明

我有两个位图,一个前景图,一个背景图(mask用途)。请问如何用MaskBlt实现两个位图的合并,从而实现背景透明! 核心代码:dcImage.SetBkColor(crColour);dcMask.BitBlt(0, 0, nWidth, nHeight, &…

史陶比尔与机器人之父

早在1982年,史陶比尔已经成立了工业机器人部门,经销美国UNIMATION公司的PUMA机器人,1988年,史陶比尔成功收购了 UNIMATION。而UNIMATION是世界上最著名的机器人专家恩格尔伯格所创立的企业,PUMA正是世界上第一台工业机…

git进阶

Git 进阶用法 Git 高阶用法 1. 基本概念 你的本地仓库由Git维护的三棵树组成。第一个是你的工作目录,它持有实际文件; 第二个是缓存区(index),它像个缓存区域,临时保存您的改动;最后是HEAD,指向你最近 一次提交后的结果。 git add…

lab3

lamp: 在阿里云linux(Ubuntu)上安装Apache mysql php : apt-get install mysql_server mysql_client php5 php_mysql apache2 系统会提示正确的包的名称 安装ECShop 在本地命令行 scp ecshop.zip rootxxx.xxx.xx.xxx:/var/www/ 把压缩文件拷贝…

【python学习】——pyttsx3库实现文本朗读、音量、音速等调节

import pyttsx3# 初始化朗读引擎 engine pyttsx3.init() # 设置朗读速度 self.engine.setProperty(rate, 120) # text为需要读取的内容 self.engine.say(text) # 不添加下面这句,没有声音 self.engine.runAndWait()pyttsx3其他应用: python pyttsx3实现…

mysql中如何判断某个字段是纯数字

SELECT * FROM m_customer WHERE LENGTH(0nickname) LENGTH(nickname); 原理是nickname字段如果某一位不是数字,那么跟0相加后只会保留不是数字的那一位之前的值, 比如SELECT 011a1bc FROM DUAL;结果是11,SELECT 0a1bc FROM DUAL;结果是0转载于:https://www.cnblogs.com/wangx…

Variable Assembly Language可变汇编语言

Variable Assembly Language可变汇编语言 可变汇编语言(Variable Assembly Language, VAL)是一个设计给Unimation Inc.工业机器人用的电脑控制系统及编程语言。VAL机器人语言是会被永久地储存于系统内,这包括了个体应用软件的导向。VAL能从容…

在ABAP里实现条件断点的三种方式

背景 有不同的同事问我这个问题:例如下图的LOOP要执行1000次,我只对其中的某一次比如第501次循环感兴趣,我肯定不可能按500次F5然后进入第501次的调试。或者我只对LOOP里某个变量为某一个具体值的那一次循环感兴趣。如何才能避免重复按F5,让断…

【pyqt5学习】——添加菜单栏动作action,给动作触发triggered绑定事件

1、打开qt-designer工具——视图——勾选上动作编辑器 2、勾选后右下方会出现动作编辑器栏 3、在改面板可以进行已有动作的属性编辑,也可以添加新的动作 4、 鼠标左键选中动作不松开,可以将动作拖到菜单栏 5、给动作绑定事件 self.saveLog.triggered.co…

什么情况下会调用到session_destroy()

https://segmentfault.com/q/1010000000191102 首先 ... session_destory() 是一个函数 ... 这个函数在任何情况下都不会被 php 引擎自动调用 ... 只能你手工去调用 ... php 内部存在着清理 session 的机制 ... 但与这个函数完全无关 ... 如果你想问的是什么时候该手工调用这个…

对永磁无刷电机的调速过程

考虑了一下对永磁无刷电机的调速过程。 一般把使用永磁转子、无电刷的电机,根据驱动方式分为永磁同步与直流无刷。其实没有本质区别。在此称为永磁无刷。 用永磁无刷电机的分子泵驱动器一向调速做得不太好。这两年好一些了,但是还是不能完全满意。李老…