JSP最常用的五种内置对象(out,request,response,session,application)

为了简化开发过程,JSP提供了一些内置对象,它们由容器实现和管理。开发者在JSP页面中无需声明无需实例化就可使用。主要有out,request,response,session,application,pageContext,page,config和exception这九个,其中前五个最常用。

out



out对象为客户打开输出流,向客户端发送输出流。简单来说就是向客户端输出数据。

常用方法:

out.print("hello world");   //输出到浏览器
out.print(23.5f);           //同上,可输出基本类型,字符数组,日期等多种类型
out.println("hello world"); //输出并换行
out.isAutoFlush();          //判断是否自动刷新缓冲区
out.getBufferSize();        //获取缓冲区大小
out.getRemaining();         //获取缓冲区剩余空间大小
out.flush();                //清除缓冲区里的数据,并输出到客户端显示
out.clear();                //清除缓冲区里的数据,不输出到客户端
out.close();                //关闭输出流

request



当用户访问一个服务器页面时,就会提交一个HTTP请求。JSP内置的request对象封装了用户提交的信息,开发者可以通过从中获取用户提交表单中的信息。

常用方法示例:

request.getMethod();                    //获取请求方式,通常是get或post
request.setAttribute("age",20);         //设置一个叫age的属性,并赋值为20
request.getAttribute("age");            //获取上面的age属性的值,若属性不存在,返回null
request.removeAttribute("age");         //删除name为age的属性值request.getAttributeNames();            //返回所有属性的名字集合
request.getCaracterEncoding();          //返回编码格式,通常在解决乱码时候用
request.getParameter("user");           //用户提交的form中有一个name为"user"的input框(结点),可以用这种方式获取input框(结点)的内容
request.getParameterValues("hobbies");  //用户提交的form中有一个name为"hobbies"的复选框,可以获取到其中选中部分的值

response



服务器收到用户发来的请求后,会做出响应。response对象封装了JSP响应信息,被发送到客户端。

因为输出流是缓冲的,所以可以设置HTTP状态码(常见的404,500,504等)和response头。

常用方法:

response.addCookie(Cookie cook);              //添加一个用于保存用户信息的Cookie对象
response.addHeader(String name,String value); //添加信息到头文件中,如果已存在就覆盖
response.containsHeader(String name);         //判断指定名字的HTTP头是否已存在
response.sendError(int);                      //返回错误信息
response.sendRedirect(String location);       //重定向
response.setHeader(String name,String value); //设置指定名字的HTTP文件头的值。

session



敲黑板!!咣咣咣!!!这个很重要!

很多朋友对session都有种既熟悉有陌生的感觉,这个词在开发中太常见了!但是很多地方的理解都很模糊。

这里说的session是用来保存每个用户信息的内置对象,以便跟踪每个用户的操作状态

为什么要跟踪用户状态呢?因为HTTP是一种无状态协议,当客户向服务器发送一个请求(request)后,服务器返回一个(response),连接就关闭了(故也称为一次性连接)。当下一次连接时,服务器无法判断当前连接与之前的是否是同一用户。(例如用户在同一个网站中访问不同的页面时,总不能访问一个页面登录一次吧。。。)这时就用到了session来记录有关连接的信息。

session从用户打开浏览器与服务器建立连接开始,到用户关闭浏览器离开服务器结束。服务器将sessionID写入到浏览器的Cookie中,作为这个用户的唯一标识。每个用户都有自己的sessionID,当用户退出系统时,session会自动消失。

session的信息保存在服务端,session的ID保存在客户端Cookie中。如果客户端禁用Cookie,同一用户在不同页面间的session对象有可能是不同的

常用方法,getAttribute(),setAttribute(),removeAttribute()等,均是对对象中的属性进行增删改查,在此就不一一赘述了

举个例子,通过session我们可以构造一个简单的购物车功能模块。

1.用户登录购物商城,JSP引擎自动创建session对象

2.向session中添加两个属性goods(购买的商品),price(价格),方式如下

session.setAttribute("goods"," ");

session.setAttribute("price"," ");

3.在不同的页面(生活用品类,食物类)选择商品添加到购物车,每一次添加商品,就向goods和price中追加内容,例如

session.setAttribute("goods",session.getAttribute("goods")+"鸡蛋");//其中session.getAttribute("goods")可以从session中获取已添加到购物车的商品

session.setAttribute("price",session.getAttribute("price")+15);//其中session.getAttribute("price")可以从session获取当前购物车中所有商品的价格

application



application对象为所有的用户保存共享信息。

虽然application和session都可以为用户保存信息,但是这两个是不同的:

1.服务器为每个用户创建一个session对象,每个人的session都是不同的;而application是为多个应用程序保存公用信息,对于一个容器而言,所有用户的application对象是同一个

2.session和application的生命周期不同。session的生命周期是从用户打开浏览器建立与服务器的连接开始,到关闭浏览器离开服务器结束的这段时间;而application的生命周期是从服务器启动服务器关闭的这段时间。

应用场景示例:

例如网站上常见的本站点击量统计,就可以使用application来实现。定义一个字段count用来计数,每次点击就++,然后将count保存在application对象中,application.setAttribute("Counter",count);获取当前点击量时,application.getAttribute("Counter")即可。

原文地址:https://www.cnblogs.com/optblogs/p/8306773.html

时间: 2024-10-05 20:29:56

JSP最常用的五种内置对象(out,request,response,session,application)的相关文章

JSP脚本中的9个内置对象

JSP脚本中包含9个内置对象,这9个内置对象都是Servlet API接口的实例,只是JSP规范对它们进行了默认初始化(由JSP页面对应Servlet的_jspService()方法来创建这些实例). application:javax.servlet.ServletContext的实例,该实例代表JSP所属的Web应用本身,可用于JSP页面,或者在Servlet之间交换信息,常用的方法有getAttribute(String attName).setAttribute(String attNa

Webform(五)——内置对象(Response、Request)和Repeater中的增删改

一.内置对象 (一)Response对象 1.简介:response 对象在ASP中负责将信息传递给用户.Response对象用于动态响应客户端请求,并将动态生成的响应结果返回到客户端浏览器中,使用Response对象可以直接发送信息给浏览器,重定向浏览器到另一个URL或设置cookie的值等. 2.方法:①.write方法:response.write ** 功能:向客户端发送浏览器能够处理的各种数据,包括:html代码,脚本程序等. 实例:response.write "I LOVE YOU

Java Script基础(五) 内置对象Date

在JavaScript中,系统的内置对象有Date对象.Array对象.String对象和Math对象等. 1.Date:用于操作日期和时间. 2.Array:用于在单独的变量名中存储一系列的值. 3.String:用于支持对字符串的处理. 4.Math:用于执行数学任务,包含了若干数学常量和函数. 1.Date对象 常用的属性和方法参考! http://www.w3school.com.cn/jsref/jsref_obj_date.asp 示例: var today=new Date() -

jsp内置对象out 和response.getwriter().write()的区别

两者的主要区别: 1. 这两个对象的类型是完全不同的:内置对象out的类型是JspWriter:response.getWrite()返回的类型是PrintWriter 2. 获取方式不同:JspWriter是JSP的内置对象,直接使用即可,对象名out是保留字,也只能通过out来调用其相关方法.此外还可以通过内置对象pageContext.getOut();获得:PrintWriter则是在用的时候需要通过内置对象response.getWriter();获得 3. JspWriter的pri

ASP.NET 常用内置对象详解-----Response

利用提供的内置对象,可以实现页面之间的数据传递及实现一些特定的功能,如:缓冲输出,页面重定向等等. Response :响应,反应 Request:请求 Server:服务器 Application:应用,申请,应用程序: Session:回话,会议 Cookie:饼干 一. Response:  作用: 将动态生成的信息嵌入到HTML文档中,然后发送到客户端: 缓冲输出数据: 重定向浏览器到另一个URL: 向浏览器输出Cookie文件. 其类名为httpResponse 常用方法: : Res

JavaScript 3种内置对象

前面我们学了对象,如何创建对象及使用对象. 内置对象不需要实例化,就可以使用. 可以通俗地理解,在内存里的东东是对象,也就是实例化好的.在磁盘里的东东是类,需要实例化才能使用.实例化后的东东在内存里.未实例化的东东在磁盘里. 接下来我们学习三组已经创建好的对象,且这3组对象在日常工作中使用频率非常高. 这3组对象是: 1.浏览器对象模型 2.文档对象模型 3.全局JavaScript对象 一 浏览器对象模型 浏览器对象模型用于创建浏览器窗口的模型. 最顶端是window对象. window对象对

重温ASP.NET内置对象之Request

Active ServerPages 提供内建对象,这些对象使用户更容易收集通过浏览器请求发送的信息.响应浏览器以及存储用户信息.ASP.NET 包含一系列类,用于封装这些上下文信息. ASP.NET主要包含六大类: 1.      Response提供对当前页的输出流的访问. 2.      Request提供对当前页请求的访问,其中包括请求标题.Cookie.客户端证书.查询字符串等. 3.      Server对象的属性反映了Web服务器的各种信息,它提供了服务器可以提供的各种服务. 4

内置对象之request对象

内置对象就是(容器)已经创建好的对象,可以被直接使用.当用户发送一个请求给容器,它就会自动创建一个对象来处理客户端发送来的消息,如request这个对象,可以获取到用户(客户端)发送来的信息.它的常见方法如下: String getHeader(String var1);取得请求头信息,根据请求头名称取得对应的值 String getMethod();取得请求的方式 String getPathInfo();取得额外路径 String getContextPath();取得当前项目的根路径 St

jsp提交表单数据乱码,内置对象,以及过滤器

jsp提交表单数据乱码解决方案 通过form表单给服务器提交数据的时候,如果提交的是中文数据,那么可能会出现乱码,如果表单的请求方式是post请求,那么可以使用如下方案解决乱码: 在调用getParameter()之前,设置请求对象request的编码方式. <% request.setCharacterEncoding("utf-8");%> 002.如果是通过get方式提交的form,两种处理乱码方案: 01.通过new String(str.getBytes(“iso