首页 > 其他分享 >response、reques对象的基本使用

response、reques对象的基本使用

时间:2023-02-13 14:36:18浏览次数:37  
标签:浏览器 请求 get 对象 reques 提交 response

response、reques对象的基本使用

http协议

  1. 请求
  2. 请求头
  3. 请求正文、参数
  4. 请求对象servletRequest 响应对象servletResponse

响应数据

  1. getOutputStream(): 字节流数据
  2. getWriter(): 字符流数据
  3. getOutputStream()和getWriter()互斥

原因

当调用getOutputStream()或getWriter(),服务器进行接收后。将数据进行处理,处理成HTTP所认可的格式处理完成之后,会检查会检查流对象是否关闭,如果没有关闭,服务器会自动关闭

HTTPServletRequest对象:

  1. 请求对象,从客户端发送请求,服务将会创建此对象

  2. 有哪些请求

    1. 在浏览器地址栏,直接输入URL地址
    2. 超链接
    3. JavaScript中location.herf="url"
    4. form表单的提交

    注意:如果使用get提交 那么所提交的内容是追加到后方,以?name=value&password=value这样的方式追加,前三种都是get方式提交,第四种如果methed以get方式提交,也是get方式,若是post方式提交,则是post方式

    get方式和post方式提交的区别

    get方式

    1. 长度有限
    2. 安全性较差
    3. 效率相较post较高

    post方式

    1. 长度不限
    2. 安全性较好
    3. 效率相对get较差

重定向

基本介绍

当我们使用重定向时,由response.sendRedirect("url或servlet"),服务器会根据新的url,重新发起一个新的请求用户第一次通过手动方式通过浏览器访问OneServelet.OneServelet工作完毕后,将Twoservlet地址写入到响应头location属性中,使Tomcat将302状态码写入到状态栏行。

实现命令

    response.sendRedirect();
    // 将地址写入到响应包中的响应头

缺点

重定向解决方案需要在浏览器与服务器之间进行多次往返,大量时间消耗在往返次数上,增加用户等待时间

请求转发

基本介绍

用户第一次通过手动方式要求浏览器访问servelet1,servlet1工作完毕后通过当前的请求对象向tomcat发送请求,申请调用servlet2,tomcat在接收到这个请后自动调用servlet2来完成剩余任务

实现命令

请求对象代替浏览器来向tomcat发送命令

// 1. 通过当前请求对象生成资源文件申请报告对象
        RequestDispatcher requestDispatcher = request.getRequestDispatcher("/资源文件名");
        //注:一定要以‘/’开头
// 2. 将报告对象发送给tomcat
    requestDispatcher.forward("当前请求对象,当前响应对象");
    //也就是repose和request

优点

无论本次请求涉及到多少个servlet,用户只需要手动浏览器发送一次请求
servlet之间调用发生在服务端计算机上,节省服务端与浏览器之间的往返次数,增加服务处理速度

特征

请求次数

在请求转发过程中,浏览器只发送一次请求

请求地址

只能向Tomcat服务器申请调用当前网站下资源文件地址
request.getRequestDispatcher("/资源文件名") 注:不要写网站名,只能访问内部资源,无法访问外部资源,重定向没有此限制

请求方式

在请求转发的过程中,浏览器只发送了一个http请求协议包,参与本次请求的所有servlet共享一个请求协议包。因此,这些servlet所接收的请求方式,与浏览器发送的请求方式保持一致

数据乱码的解决

提交数据乱码的解决

    //post提交:设置
    reques.setCharacterEncoding("utf-8");
    //get提交:需要转换
    String name=request.getParameter("name")
    name = new String(name.getBytes("iso-8859-1"),"utf-8");
<!--  还可以通过设置tomcat实现 -->
<Connector port="8080" protocol="HTTP/1.1"
                connectionTimeout="20000"
                redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true">

响应数据乱码的解决

    //设置在网络传递的编码,默认是iso-8859-1
    response.setCharacterEncoding("utf-8")
    //设置浏览器的编码
    response.setContentType("text/html;charSet=utf-8")

标签:浏览器,请求,get,对象,reques,提交,response
From: https://www.cnblogs.com/xiaoxu137/p/17116185.html

相关文章

  • jQuery遍历List对象
    jQuery遍历List对象在​​jQuery​​​中,可以使用​​each()​​​方法以一种非常直观的方式来模拟​​break​​​和​​continue​​​关键字的功能。只需在回调函数中编......
  • 事件对象与target属性 js 230213
    事件对象target属性它代表了事件针对的目标它有时与this是一样的有时与this是不一样的......
  • bootstrap-suggest插件处理复杂对象时的解决方案
    文章目录​​一、问题描述:​​​​二、解决办法:​​​​后端代码:​​​​jsp页面:​​​​js代码渲染:​​​​实现效果:​​​​三、插件下载地址:​​一、问题描述:在用bootst......
  • 面向对象和面向过程的区别
    前言壹哥相信,经过你对前面文章中技术点的学习,现在的你应该已经对Java具备了初步的了解和掌握,这为我们继续往后学习奠定了良好的基础。我们知道,Java是面向对象的编程语言,......
  • 【JavaScript】11_枚举属性+可变类型+修改对象和属性与方法
    4、枚举属性枚举属性,指将对象中的所有的属性全部获取for-in语句\-语法:for(letpropNamein对象){语句...}\-for-in的循环体会执行多次,有几个属性就会执行几次,每次执......
  • JSON解析器Jackson_java对象转json_List&Map与Json转java对象
    1.复杂java对象转换1.List:数组2.Map:对象格式一致packageorg.example.text;importcom.fasterxml.jackson.databind.ObjectMapper;importorg.example.dom......
  • tp5.1 几种引入对象并且实例化的方法
    第一,原始方法usethink\Model; 使用use$user=newsUser()缺点,使用一个都要引入在实例化第二,依赖注入也要引入use  usethink\Request;publicfunctiontest1(R......
  • 网站在线客服系统实时语音视频聊天实战开发,判断MediaStream对象是视频流还是音频流
    当我们接收到音视频流MediaStream对象以后,我们需要知道这是视频还是音频才能去以正确的标签展示,可以看下面的判断console.log("callstream",remot......
  • 面向对象特征
    面向对象:注重的是对象(参与者)需要做什么,更易于复用。扩展和维护https://blog.csdn.net/guorui_java/article/details/121178242封装封装性就是尽可能的隐藏对象内部细......
  • Java面向对象之函数式编程
    1函数式编程在数学中,函数就是有输入量、输出量的一套计算方案,也就是“用什么东西做什么事情”。相对而言,面向对象过分强调“必须通过对象的形式来做事情”,而函数式思想则尽......