request对象

我们知道浏览器从服务器获取数据的时候需要向浏览器发送请求,当客户端向服务器发送请求的时候,服务器端会创建一个request对象,其中封装了和请求相关的一些内容,比如涉及到的数据。

常用方法

  1. String getParameter(String name)
    该方法的作用是根据表单名称获取提交数据。
  2. void setCharacterEncoding(String charset)
    该方法是指定请求的编码方式。
    当我们获取提交过来的数据时,如果数据时英文的时候不会出现什么问题,如果数据时中文的话就有可能出现乱码问题,因为客服端和服务器端的编码方式是不一样的。
    对于tomcat 8以上的版本,它自动解决了get请求方式下的乱码问题,但是对于post请求没有解决,需要我们手动解决,这就用到了该方法,使用方法是:
request.setCharacterEncoding("utf-8");

需要注意的是我们一般在最开始就进行编码方式的设置,否则先进行取数据操作再设置编码方式就不管用了,因为数据已经取出来了,除非再次获取数据。

转发

我们在编写web项目的时候经常会用到转发的功能,所谓的转发就是将该请求转给另一个servlet做处理,或者是抓到另一个页面显示最终的结果。
转发的作用是在服务器端将请求发送给服务器端的其他资源,以共同完成一次请求的处理,因为转发实际上相当于将用户的请求进行一下转接,因此request对象没有改变,实现方法如下:

request.getRequestDispatcher("/地址").forward(request, response);

request作用域数据传递

上述转发发生后就从服务器的一个资源跳转到另一个资源了,那么就会产生一个问题,直接跳转的话,那么在开始资源中的一些数据到了跳转到的资源中就不能继续使用了。
为了解决上面的问题,就用到了request作用域,request作用域是可以存储数据的空间,作用范围是一次请求有效(一次请求可以经过多次转发),因此我们可以将所用到的数据存储到其中等到用到的时候取出来即可。
存取数据涉及到两个方法,如下所示:

  1. 存数据:request.setAttribute(key,value);
  2. 取数据:request.getAttribute(key);

response对象

response对象用于响应客户请求并向客户端输出响应的信息。

常用方法

  1. setHeader(name,value)
    该方法用来设置响应消息的信息头。

  2. setContentType(String s)
    该方法是设置响应文件类型,响应式的编码格式。
    当我们想客户端输送中文时,有可能会出现乱码问题,可以使用这个方法来解决,如下所示:

response.setContentType("text/html;charset=UTF-8");
  1. setCharacterEncoding(String s)
    该方法是设置服务响应内容的编码格式。

  2. getWriter()
    该方法是获取字符输出流,用于向客户端输送信息。该方法会返回一个PrintWrite对象。

重定向

重定向作用在客户端,客服端将请求发送给服务器后,服务器响应给客户端一个新的请求地址,客户端重新发送新请求。
实现方法如下所示:

response.sendRedirect(url);

重定向发生了新的请求,因此不能使用requet作用域来传递数据,response对象也没有作用域,要想进行数据传递的话,只能将数据拼接到url中,进行传递。

转发和重定向的区别

  • 转发发生在服务器端,重定向发生在浏览器端。
  • 转发相当于服务器将用户请求转给另外的资源进行处理,重定向相当于服务器告知浏览器去再次请求需要的资源。
  • 因此转发期间只有一个请求,重定向发生了两次请求。
  • 转发的地址栏不会发生改变,重定向的地址栏会发生改变。
  • 转发由request对象来实现,重定向由response对象实现。

request对象和response对象及使用介绍相关推荐

  1. [JavaWeb-HTTP]request对象和response对象的原理

    request对象和response对象的原理 1. request和response对象是由服务器创建的.我们来使用它们2. request对象是来获取请求消息,response对象是来设置响应消息

  2. request对象与response对象

    一.request对象 1.通过request对象可以获得客户端输入的信息.request对象包含了从客户端传来的请求信息. 请求的参数是一个请求的组成部分,它们被作为字符串从客户端传送到JSP/Se ...

  3. Javaweb-Servlet总结(概述、接口使用、配置、获取请求方式、路径操作、Request对象、Response对象)

    文章目录 Servlet概述 Servlet核心接口和类 三种自定义Servlet接口的方法 1.实现Servlet接口 2.继承GenericServlet抽象类 3.继承HttpServlet抽象 ...

  4. java Request对象和Response对象详解

    一:概述 Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象一.Response对象1.Resonse的继承结构:S ...

  5. request 对象和 response 对象

    Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象 HttpServletResponse HttpServletR ...

  6. request对象和response对象

    一.请求响应流程图 服务器处理请求的流程: (1)服务器每次收到请求时,都会为这个请求开辟一个新的线程.   (2)服务器会把客户端的请求数据封装到request对象中,request就是请求数据的载 ...

  7. request对象、response对象、session对象

    仅仅是一些简单知识点的罗列,当做笔记,想具体学习的话,还是要找专业的书籍看看 request对象 作用:获取用户提供的信息 语法:是实现了ServletRequest接口类的一个实例使用表单向服务器的 ...

  8. 学习笔记(24):第一章: 路由与模板-Request对象与Response对象

    立即学习:https://edu.csdn.net/course/play/25568/305943?utm_source=blogtoedu Request和Response是客户端与服务器沟通的桥 ...

  9. ASP.NET(一):Reques对象和Response对象的区别,以及IsPostBack属性的用法

    导读:在ASP.NET的学习中,初步认识了其6大对象(严格说来只能算是属性):Request,Response,Application,Session,Server,OjectContext.这些对象 ...

最新文章

  1. 对于未来的多种可能,这几位中国科学家想说
  2. Creating my own systemd service files on Fedora 16(x86_64)
  3. luogu P1503 鬼子进村
  4. 照片转3d模型_三星使用AI将照片转换为3D模型
  5. Oracle定时器执行多线程
  6. 一个非常适合IT团队的在线API文档、技术文档工具 (ShowDoc)
  7. 进阶版启动jupyterlab教程
  8. 使用PLC编程(ST语言)开发的DES加密解密功能块
  9. hb100 微波雷达arduino_HB100微波雷达模块无线X波段雷达探测器探头传感器模块10.525GHz...
  10. 白云机场停车费一天要多少钱,广州白云机场t2航站楼最近停车场
  11. CAD二次开发(VB)代码整理
  12. CCF CSP刷题—小中大
  13. 刘强东「复出」搞团购,京东急什么?
  14. PS实用小技巧--修改图片上的文字
  15. 0xC0000005: 读取位置 0x00000001 时发生访问冲突
  16. 使用 @Transactional 时常犯的N种错误
  17. 【matlab】 隐函数作图函数 ezplot
  18. Cisco CCNP认证642-902题库资讯
  19. Metal 框架之使用 Metal Debugger 查看 GPU 工作负载
  20. 密码学实验题_03.3_AES实验_利用Sage构建AES的S盒和逆S盒(基于阅读Sage数学库的Python代码)

热门文章

  1. iOS:每个APP都用得上的SegmentedView(Swift版本),让你的开发效率提高一个Level
  2. uniapp利用scheme启动App
  3. 亲测!纯净不限速的驱动大师
  4. android qq分享失败,请检查读写权限,android 友盟QQ分享失败
  5. php遍历对象属性_php中遍历对象的方法
  6. DFT设计与验证介绍——第1节:DFT简介
  7. 磁盘检测工具smartctl
  8. mysql设置单个表的删除权限_Mysql管理命令-查看,创建用户、赋权、删除表用户数据库等操作...
  9. web UI 自动化测试
  10. USB 3.0 / SATA 3 速度对比