JSP为简化页面的开发提供了一些内部对象,这些内部对象不需要由JSP的编写者实例化,它们由容器实现和管理,
在所有的JSP页面中能使用内部对象。所有的隐含对象只能对Scriptlets或者表达式有用,在JSP申明中不可用。
*request对象
*response对象
*pageContext对象
*session对象
*application对象
*out对象
*config对象
*page对象
*exception对象
| 对象 | 类型 | 描述 | 作用域 |
| request | javax.servlet.ServletRequest | 客户端的请求,通常是HttpServlet的子类,如果客户的请求中有参数,则该对象就有一个参数列表 | request(用户请求期)) |
| response | javax,servlet.ServletResponse的子类 | JSP页面的响应,是HttpS而vletResponse的子类,页面的属性和需求通过标准API访问相关的对象,以便JSP引擎编译页面。但是,不同Server对这些属性和对象的实现方式不同 | page(页面执行期) |
| pageContext | java.servlet.jsp.PageContext | 解决方案是JSP引擎编译用factory类返回的服务器PageContext类的实现方法。PageContext类和request、response对象及page指令的一些属性(errorpage,session,buffer,autoflush)同时被初始化,同时提供request请求的相关的对象 | page(页面执行期) |
| session | javax.servlet.HttpSession | HTTPsession是与request联合的对象 | session(会话期) |
| application | javax.servlet.ServletContext | servlet的环境通过调用getServletConfig().getContext()方法获得 | applicaiton(整个web环境运行期) |
| out | javax.servlet.jsp.JspWriter | 代表输出流的对象 | page(页面执行期) |
| config | javax.servlet.ServletConfig | 页面的ServletConfig对象 | page(页面执行期) |
| page | javax.lang.Object | 指向页面自身的方式(在Java代码中多以this替代) | page(页面执行期) |
| exception | java.lang.Throwable | 没有被Throwable不活的错误,传向了errorpage的URI | page(页面执行期) |
1 out对象
out对象被封装成javax.servlet.jsp.JspWriter接口。它表示为客户打开的输入流,PrintWriter使用它向客户端发送输出流。简单的说,它主要用来向客户端输出数据,代表输出流的对象:
主要方法有:
out.print(各种类型): 输出各种类型的字符
out.newLine() 输出一个换行字符
out.flush() 输出缓冲区里的数据
out.close() 关闭输出流
out.clearBuffer() 清除缓冲里的数据 并把数据输出到客户端
out.clear() 清除缓冲区里的数据,但不会吧数据输出到客户端
out.getBufferSize() 获得缓冲区的大小
out.getRemaining() 获得缓冲区中没有被占用的空间的大小
out.isAutoFlush() 返回布尔值 如果AutoFlush为真,则返回ture;反之,则返回false;
2 request对象
request对象代表请求对象,它被包装成HttpServletRequest接口。通过getParameter方法可以得到request的参数,
通过GET POST HEAD等方法可以得到request的类型,通过Cookies、Referer等可以得到请求的HTTP头。来自客户端
的请求经Servlet容器处理后,由request对象进行封装。它作为jspService()方法的一个参数由容器传递给JSP页面:
request的主要方法有:
3 response对象
response被包装成HttpServletResponse接口,它封装了JSP产生的响应,然后被发送到客户端以响应用户的请求。和request对象一样,它由容器生成,作为jspService()方法的参数被传入JSP。因为输出流是缓冲的,所以可以设置HTTP状态码和response头。
response对象的主要方法有:
实例如下:
|
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
|
4 session对象
session对象用来保存每个用户信息,以便跟踪每个用户的操作状态。其中,session信息保存在容器里,session的ID保存在客户机的Cookie中。在许多服务器上,如果浏览器支持Cookie的话,就直接使用Cookie。但是如果不支持或废除Cookie的话,就自动转化为URL-rewriting(重写URL,这个URL包含客户端的信息),session自动为每个流程提供了方便的存储信息的方法。
一般情况下,用户首次登陆系统时容器会给此用户分配一个唯一标识的session id,这个ID用于区分其他的用户。当用户推出系统时,这个session就会自动消失。和session对应的是HTTPSession接口。
session对象的主要方法是:
实例:
5 pageContext对象
pageContext对象被封装成javax.servlet.jsp.pageContext接口,它为JSP页面包装页面的上下文,管理对属于JSP中特殊可见部分中已命名对象的访问。它的创建和初始化都是容器完成的。JSP页面里可以直接使用pageContext对象的句柄。pageContext对象的getXXX() setXXX() findXXX()方法可以用来根据不同的对象范围实现对这些对象的管理。
pageContext对象的主要功能是管理对属于JSP中可见部分中已经命名对象的访问。PageContext对象的创建于初始化通常对于JSP程序员是透明的,JSP程序员可以从JSP中获取到用来代表PageContext对象的句柄,因此可以使用pageContext对象的各种API。
pageContext对象的实用的方法:、
例如:
ServletRequest req=pageContext.getRequest();
String name=req.getParameter("name");
pageContext.setAttribute("userName",name); #默认情况下,该属性只在当前页面有效
String name=req.getParameter("name");
6 application对象
application对象为多个应用程序保存信息。对于一个容器来说,每个用户都共同使用一个application对象,这和session对象是不一样的。服务器启动后,就会自动创建application对象,这个对象会一直保持,直到服务器关闭为止。
application对象的主要方法是:
7 config对象
config对象被封装成javax.servlet.ServletConfig接口,它表示Servlet的配置。当一个Servlet初始化时,容器把某些信息通过此对象传递给这个Servlet。
config对象的常用方法是:
实例:假设有个计数器(由application实现),为了使得每次服务器启动后,计数器能够按以前的数继续计数,而不是重新计数,代码如下:
|
<body> <% int org=0; int count=0; try{ org=integer.parseInt(config.getInitParameter("counter"); }catch(Exception e) { count.print("org:"+e); } try{ count=Integer.parseInt((application.getAttribute("congif_counter").toString())); }catch(Exception e){ out.println("config_counter"+e); } if(count<org)count=org; out.println("此页面已经访问了“+count+"次”); count++; application.setAttribute("config_counter",new Integer(count)); %> |
来源:网络
response:响应对象 提供的方法:void addcookie(Cookie cookie);服务端向客户端增加一个cookie对象 void sendRedirect(String location) throws IOException:页面跳转的一种方式(重定向) void setContetType(String type) :设置服务端响应时的编码(设置服务端的ContentTyp...
在JSP中为了便于数据信息的保存,传递,获取等操作,专门设置了9个内置对象。每个对象都有自己的属性和方法。 JSP内置对象是预先设定的,不需要创建,在编写JSP代码(JSP声明或JSP脚本)时,可直接使用。 JSP内置对象的有效作用范围,是层层包含的。最大的是application,其次是session,request,page。 out对象 out对象的主要功能是向客户输出响应信息,其只要方法是...
问:什么是JSP内置对象? 答:JSP内置对象就是指有些对象不用声明就可以在JSP页面的Java程序片和表达式部分使用。 概述: (1)JSP的常用内置对象有request、response、session、application和out。其中response和request对象是JSP内置对象中较为重要的两个,这两个对象提供了对服务器和浏览器通信方法的控制。 (2)HTTP协议被称作...
session(服务端) session:会话 1. 浏览网站:开始->关闭 2. 购物:浏览,结算,付款,退出 3. 电子邮件: 浏览,写邮件,退出 以上都是session的例子,一次开始到结束被称作session session机制: 客户端第一次请求服务端时,(JSESSIONID与sessioID开始匹配,不成功)服务端会产生一个session对象(用于保存该客户的信息) 并且产生s...
SP内置对象就是在编写JSP页面时,不需做任何声明就可以直接使用的对象。 常用的内置对象:out、request、response、session、application 1.out:javax.servlet.jsp.JspWriter类型,代表输出流对象。作用域为page。out对象用来向浏览器输出数据。其常用方法如下: out.print():输出各种类型数据 out.newLine():输...
out.print()即把打印内容都存入缓冲区,若调用flush方法,则强制把缓冲区内容打印并清空。 缓冲区问题:缓冲区类似于碗,全部的内容存放在碗中,我们将内容输出到客户端的时候,内容仍然存在于缓冲区(碗)中,缓冲区(碗)只有在满了之后,即碗中的所有数据都被读出到浏览器(客户端)之后,缓冲区才会自动清空(即将碗中的数据全部倒掉,碗空之后再重新盛一满碗数据),而flush()函数相当于外挂的存在,...
一 内置对象简介 JSP内置对象是Web容器创建的一组对象,不使用new关键字就可以使用的内置对象。 例如: 二 JSP的九大内置对象 三 Web程序的请求响应模式 用户发送请求(request) 服务器给用户响应(response) 查看图片附件...
JSP九大内置对象 1.request对象 、2.response对象、 3.pageContext对象、4.session对象、5.application对象、6.out对象、7.config对象、8.page对象、9.exception对象 Jsp有九大内置对象,这九大内置对象我们常用的也就三四个,下面我来给大家说一下这些内置对象的作用和常用的方法 reques...
函数都有prototype属性,它指向原型对象。 实例对象有__proto__属性,它指向对象原型 每一个原型对象都有constructor输赢,指向构造函数,每一个原型对象又具有__proto__属性,这个指向Object.prototype.在这里插入图片描述...
I'm currently trying out the google cloud messaging service with its sample application "Guestbook." https://developers.google.com/cloud/samples/mbs/ I'm attempting to send notifications tha...
Now I came across an article that distinguishes between an Asynchronous function and Synchronous functions. From my understanding of the different examples and explanations, synchronous functions are ...
Good day all I'm busy creating a small costing calculator for the signage department. I'm not getting the calculator to output the amount. Brief Description: You enter the height and width and then wh...
I have 3 models created with Flask-SQLalchemy: User, Role, UserRole role.py: user.py: user_role.py: If I try (in the console) to get all users via User.query.all() I get AttributeError: 'NoneType' obj...
I have many particles that follow an stochastic process in parallel. For each particle, there is a PRNG associated to it. The simulation must go through many repetitions to get average results. For ea...