当前位置 : 主页 > 编程语言 > c++ >

JSP中的内置对象

来源:互联网 收集:自由互联 发布时间:2021-07-03
gistfile1.txt Jsp的内置对象:request:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求, 然后做出响应。它是HttpServletRequest类的实例。request 对象是 javax.servlet.httpSer
gistfile1.txt
Jsp的内置对象:

request:
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求, 然后做出响应。
它是HttpServletRequest类的实例。
request 对象是 javax.servlet.httpServletRequest类型的对象。 
该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的数据(包括头信息、系统信息、请求方式以及请求参数等)。request对象的作用域为一次请求。

response:
response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。 它是HttpServletResponse类的实例。
response 代表的是对客户端的响应,主要是将JSP容器处理过的对象传回到客户端。response对象也具有作用域,它只在JSP页面内有效。
response对象的主要使用
1.设置HTTP头信息、重定向、设置COOKie 
(1).Web服务器收到一个http请求,会针对每个请求创建一个HttpServletRequest和HttpServletResponse对象,向客户端发送数据找HttpServletResponse,从客户端取数据找HttpServletRequest;  
(2).HttpServletResponse对象可以向客户端发送三种类型的数据:
a.响应头 b.状态码 c.数据


out:
out对象是JspWriter类的实例,是向客户端输出内容常用的对象
out对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。在使用out对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。


pageContext:
pageContext 对象的作用是取得任何范围的参数,通过它可以获取 JSP页面的out、request、reponse、session、application 等对象。pageContext对象的创建和初始化都是由容器来完成的,在JSP页面中可以直接使用 pageContext对象。
这个对象代表页面上下文,该对象主要用于访问JSP之间的共享数据。
pageContext是PageContext类的实例
使用pageContext可以访问page、request、session、application范围的变量。   
getAttribute(String name):取得page范围内的name属性。      
getAttribute(String name,int scope):取得指定范围内的name属性,
其中scope可以是如下4个值:    
PageContext.PAGE_SCOPE:对应于page范围。   
PageContext.REQUEST_SCOPE:对应于request范围。       		PageContext.SESSION_SCOPE:对应于session范围。     
PageContext.APPLICATION_SCOPE:对应于application范围。

session(会话级别,可存放 对象):
	session 对象是由服务器自动创建的与用户请求相关的对象。服务器为每个用户都生成一个session对象,用于保存该用户的信息,跟踪用户的操作状态。session对象内部使用Map类来保存数据,因此保存数据的格式为 “Key/value”。 
session对象的value可以使复杂的对象类型,而不仅仅局限于字符串类型。 
(1)session(会话)对象是类javax.servlet.Httpsession的一个对象。session是从客户端连接服务器开始,到与服务器断开为止。 
(2)session对象用于保存每个与服务器建立连接的客户端的信息,session的ID保存于客户端的Cookie中,这个session ID标识唯一和用户,与其他用户的session ID不同。 (3)session对象的ID: 当一个客户端访问服务器的一个JSP页面时,JSP引擎产生一个session对象,同时分配一个String类型的ID号,并发给客户端。客户端将其存储于Cookie.a其标志了一个唯一的ID;采用getID()方法返回session对象在服务器端的编号。服务器端通过此ID,唯一地识别一个用户,并提供特殊的服务。 
(4)session对象的有效期: 存在以下几个情况时,session对象和其存储的数据会消失,情况有: 当用户关闭当前正在使用的浏览器时; 关闭网页服务器。 用户未向服务器提出请求超预设时,Tomcat服务器预设为30分钟; 运行程序结束session. 
出现以上四种情况时,session对象会消失。

application(服务器级别):全局共享
它是ServletContext类的实例。
application 对象可将信息保存在服务器中,直到服务器关闭,否则application对象中保存的信息会在整个应用中都有效。与session对象相比,application对象生命周期更长,类似于系统的“全局变量”。 
运用实例:网页访问计数器
application的存活范围比request和session都要大。只要服务器没有关闭,application对象中的数据就会一直存在,在整个服务器的运行过程当中,application对象只有一个,它会被所有的用户共享。其中getRealPath这个方法可以获取资源在服务器上的物理路径(绝对路径),常用来获取上传文件时要存储文件的路径。

config:
config 对象的主要作用是取得服务器的配置信息。通过 pageConext对象的 getServletConfig() 方法可以获取一个config对象。当一个Servlet 初始化时,容器把某些信息通过 config对象传递给这个 Servlet。 开发者可以在web.xml 文件中为应用程序环境中的Servlet程序和JSP页面提供初始化参数。 
config 对象代表当前JSP 配置信息,但JSP 页面通常无须配置,因此也就不存在配置信息。该对象在JSP 页面中非常少用,但在Servlet 则用处相对较大。因为Servlet 需要配置在web.xml 文件中,可以指定配置参数。

page:
page 对象代表JSP本身,只有在JSP页面内才是合法的。 page隐含对象本质上包含当前 Servlet接口引用的变量,类似于Java编程中的 this 指针。
 1 、什么是page对象 ? 
(1) page对象代表JSP页面本身
 page对象是当前JSP页面本身的一个实例,page对象在当前JSP页面中可以用this关键字来替。 
 (2) 在JSP页面哪些地方可以使用page对象
 在JSP页面的Java程序片中可以使用page对象
 在JSP页面的JSP表达式中可以使用page对象
  (3) page对象的基类是:java.lang.Object类。 
注意:如果直接通过page对象来调用方法,就只能调用Object类中的那些方法。
  (4) javax,servlet.jsp.JspPage接口 
JspPage接口继承于javax.servlet.Servlet接口。 
 我们可以使用JspPage接口对page对象进行强制类型转换,再调用JspPage接口中的各种方法。 
(5) javax,servlet.jsp.HttpJspPage接口 
HttpJspPage接口继承于:
 	javax.servlet.jsp.JspPage接口和javax.servlet.Servlet接口。 

 我们可以使用HttpJspPage接口对page对象进行强制类型转换,再调用HttpJspPage接口中的各种方法。  

(6) 在JSP页面中使用this关键字,可调用哪些方法?
 在JSP页面中,this关键字表示当前JSP页面这个对象,可以调用的常见方法,如下所示:


exception:
Exception对象是用来处理Jsp页面文件在执行时所有发生的错误和异常;
Jsp页面文件必须在isErrorPage=true的情况下才可以使用该对象;
该对象一般配合Page指令一起使用,通过指定某个页面为错误处理页面,把所有的错误都集中到那个页面进行处理,可以使整个系统的性能得到加强;常用方法如下 
getMessage():返回错误信息 
toString:以字符串的形式返回一个对异常的描述
printStackTrace():以标准错误的形式输出一个错误和错误的堆栈 
(1) 可能出错的页面: 在有可能产生异常或错误的JSP页面中,使用page指令设置errorPage属性,属性值为能够进行异常处理的某个JSP页面。 简单来说,只要在当前JSP页面中产生了异常,就交给另外一个专门处理异常的JSP页面。
(2) 专门处理错误的页面: 在专门负责处理异常的JSP页面中,使用page指令设置isErrorPage属性为true,并使用exception对象来获取出错信息。


注意:
application、session、request------>都与要跨多个页,属性保存是有内存开销的,设置过多的application或每一个session保存过多的对象,性能就降低了。

原则:能用request就不要用session,能用session就不要用application

application应用:在线人员统计、在线人员名单列表,要释放application资源,只能重新启动服务器.
使用application缓存数据库的连接,每次使用时,从缓冲中取出,用完就返回
网友评论