看一个实例:

运行结果:

出现了一个很奇怪的现象,这个outer对象输出的字符串,跑到顶部去了。这个呢也就说明了response对象获得的writer对象的输出总是前于我们的内置对象。(response的writer对象在打印的时候呢,它是提前于我们的内置的out对象)。所以解决这个问题呢,刚好要利用out内置对象的flush()方法,也就是强制把缓冲区的内容写到浏览器上。代码如下:

运行结果:

还有一个常用的方法,叫做sendRedirect(String location)方法,重定向客户端的请求。也就相当于给客户端发了一个新的请求。让它重定向到一个新的集。比方说,我让当前界面执行的时候,跳转到登录界面去。代码如下:

这样写,当加载response.jsp的时候,会立刻跳转到reg.jsp界面。这个就说明,这句话起作用,response的sendRedirect()方法就说明是在让客户端在请求重定向,相当于让客户端发了一个新的请求,定位到我们的reg.jsp界面。

OK,那这些就是我们response内置对象常用的一些方法。

说到请求重定向,这里再描述下“请求重定向和请求转发的区别”:

举个例子:

修改reg.jsp页面的action。让数据参数提交到“response.jsp”。

然后再response.jsp中,做一个请求重定向。跳转到“request.jsp”:

然后我们根据运行结果,来观察“request.jsp”页面当中是否能接收到这个用户名、和爱好数据,如果能被接收,说明它前置请求的对象数据参数被保存了,如果不能够正常接收,说明这是一次新的请求。运行结果如下:

这个地方用户名为null,爱好也没有数据,而且它的地址栏,本来应该是从reg.jsp提交给“response.jsp”去处理的,但现在因为“response.jsp”做了请求重定向,定向到了“request.jsp”。相当于让客户端发了一个新的请求,请求到了“request.jsp”。又因为是一次新的请求,所以它上一次请求提交的用户名、爱好信息不会被保存。(也就是前面说的,“请求重定向就相当于做了两次请求,前一次的请求对象不会保存,而且地址栏上的地址会发生改变”)。

接着,现在再测试一下“请求转发”。请求转发属于我们的“request”对象。如下:

ok,测试一下:

这次呢,参数就能正常取出来,而且最终的这个界面实际上是“request.jsp”上的界面信息,但是地址栏上还是“response.jsp”。说明呢,这个地址栏并没有发生变化。

所以呢,“请求转发”呢,这是一个服务器行为,它相当于一次请求,那么转发之后的请求呢,它会保存前面这个请求的对象,Url地址呢还是上一个请求的地址。这个就是就是“请求重定向”和}“请求转发”的一个区别。————(“请求重定向”是客户端行为,“请求转发”是服务端行为。)

JSP内置对象——response对象的更多相关文章

  1. JSP内置九个对象Request请求对象

    jsp内置对象是什么呢? 例如Java语言使用一个对象之前需要实例化(也就是所说的new一个对象),创建对象这个过程有点麻烦,所以在jsp中提供了一些内置对象,用来实现很多jsp应用.在使用内置对象时 ...

  2. JSP内置对象——response

    response对象response对象包含了响应客户端的有关信息,但在JSP中很少使用它.它是HttpServletResponse类的实例.response对象具有页面作用域,即访问一个页面时,该 ...

  3. jsp内置对象之response、out、config、exception、pageContext。

    本文是对Jsp内置对象的response.out.config.exception.pageContext知识点的详细总结. response对象 Response内置对象和request内置对象是相 ...

  4. JavaWeb——JSP内置对象request,response,重定向与转发 学习总结

    什么是JSP内置对象 九大内置对象 requestJSP内置对象 request对象常用方法 request练习 responseJSP内置对象 response练习 response与request ...

  5. jsp内置对象(三)-----response对象

    response对象  response对象包含了响应客户端请求的有关信息,但在JSP中很少直接用到它.他是HttpServletResponse类的实例,response对象具有页面作用域,即访问一 ...

  6. JSP内置对象1(request,response,session)

    request对象 response对象:请求重定向与请求转发的区别. session对象:表示客户端与服务器的一次会话,也就是用户浏览网站所花费的时间.在服务器的内存中保存着不同用户的session ...

  7. jsp内置对象浅谈

    jsp内置对象浅谈 | 浏览:1184 | 更新:2013-12-11 16:01 JSP内置对象:我们在使用JSP进行页面编程时可以直接使用而不需自己创建的一些Web容器已为用户创建好的JSP内置对 ...

  8. JSP内置对象有哪些呢?

    内置对象 request request 对象是 javax.servlet.httpServletRequest类型的对象. 该对象代表了客户端的请求信息,主要用于接受通过HTTP协议传送到服务器的 ...

  9. JSP内置对象-request

    JSP内置对象即无需声明就可以直接使用的对象实例,在实际的开发过程中,比较常用的JSP对象有request,response,session,out和application等,笔者在本文章中将简单介绍 ...

随机推荐

  1. Jenkins配置项目

    前提:服务器上部署了jenkins+Tomcat,并且安装了所需插件 1.新建项目 -- 项目配置 2.配置git地址 出现上述错误是因为该git地址,在jenkins服务器上无权限访问.在git上开 ...

  2. Python:使用异常处理来判断运行的平台

    try: import termios, TERMIOS 1 except ImportError: try: import msvcrt 2 except ImportError: try: fro ...

  3. .Net 鉴权授权

    在这里总结一下工作中遇到的鉴权和授权的方法 ① 固定token的方案 通过在nginx或者代码中写死token,或者通过在限制外网访问的方式已来达到安全授权的方式 ② session方案 分布式会话方 ...

  4. Android开发中实现https校验

    在安卓开发中需要自己写代码实现校验公钥的功能 当然,  如果是自己服务器,就不用校验, 如果是别人的服务器,比如银行,就需要校验 在这里, 小编采用从github上下载的开源框架实现,在开源框架中添加 ...

  5. PHP多进程系列笔记(一)

    本系列文章将向大家讲解pcntl_*系列函数,从而更深入的理解进程相关知识. PCNTL在PHP中进程控制支持默认是关闭的.您需要使用 --enable-pcntl 配置选项重新编译PHP的 CGI或 ...

  6. 分布式锁的两种实现方式(基于redis和基于zookeeper)

    先来说说什么是分布式锁,简单来说,分布式锁就是在分布式并发场景中,能够实现多节点的代码同步的一种机制.从实现角度来看,主要有两种方式:基于redis的方式和基于zookeeper的方式,下面分别简单介 ...

  7. springMVC上传文件简单案例

    html <form name="Form2" action="/SpringMVC006/fileUpload2" method="post& ...

  8. Solidity的自定义结构体深入详解

    一.结构体定义 结构体,Solidity中的自定义类型.我们可以使用Solidity的关键字struct来进行自定义.结构体内可以包含字符串,整型等基本数据类型,以及数组,映射,结构体等复杂类型.数组 ...

  9. 如何优雅的控制goroutine的数量

    1,为什么要控制goroutine的数量? goroutine固然好,但是数量太多了,往往会带来很多麻烦,比如耗尽系统资源导致程序崩溃,或者CPU使用率过高导致系统忙不过来.比如: ; i < ...

  10. Solr 清空数据的简便方法

    1. 首先访问你的 core,然后点击左侧的 Documents 2. 在 documents type 选择 XML 3. documents 输入下面语句 <delete><qu ...