百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

一篇文章弄懂Request和Response(建议收藏复习)

yuyutoo 2024-12-26 17:35 1 浏览 0 评论

一:HttpServletRequest

1.简介:

HttpServletRequest 是专用于HTTP协议的ServletRequest 子接口,它用于封装 HTTP 请求消息。

它在每次请求service()方法的时候,都会由容器创建一个新的对象,如图:

2.功能介绍:

2.1,接收用户请求参数:

String getParameter(String name):通过指定名称获取参数值;

String[] getParameterValues(String name):通过指定名称获取参数值数组,有可能一个名字对应多个值,例如表单中的多个复选框使用相同的name时;

Enumeration getParameterNames():获取所有参数的名字;

Map getParameterMap():获取所有参数对应的Map,其中key为参数名,value为参数值。

2.2,请求头信息解析:

2.3,获取请求头信息:

getRemoteAddr方法返回发出请求的客户机的IP地址,其格式为“192.168.0.3”这种形式的字符文本。 (*) 

getRemoteHost方法返回发出请求的客户机的完整主机名。

getRemotePort方法返回发出请求的客户机所使用的网络接口的端口号。

getLocalAddr方法返回WEB服务器上接收当前请求的网络接口的IP地址。

getLocalName方法返回WEB服务器上接收当前请求的网络接口的IP地址所对应的主机名。

getLocalPort方法返回WEB服务器上接收当前请求的网络接口的端口号。

getServerName方法返回当前请求所指向的主机名。 

getServerPort方法返回当前请求所连接的服务器端口号。

getScheme方法返回请求的协议名,例如http、https或ftp。
getRequestURL方法返回客户端发出请求时的完整URL。   


HttpServletResponse

1.简介:

Response是Servlet.service方法的一个参数,类型为javax.servlet.http.HttpServletResponse。在客户端发出每个请求时,服务器都会创建一个response对象,并传入给Servlet.service()方法。response对象是用来对客户端进行响应的,这说明在service()方法中使用response对象可以完成对客户端的响应工作。

2.功能介绍:

主要分为以下四种:

l 设置响应头信息;

l 发送状态码;

l 设置响应正文;

l 重定向;

下面分别详解这四个功能:

2.1,设置响应头信息:

可以使用response对象的setHeader()方法来设置响应头,使用该方法设置的响应头最终会发送给客户端浏览器。

比如:

response.setHeader(“content-type”, “text/html;charset=utf-8”):
设置content-type响应头,该头的作用是告诉浏览器响应内容为html类型,编码为utf-8。
而且同时会设置response的字符流编码为utf-8,即response.setCharaceterEncoding(“utf-8”);

2.2,response响应正文

response是响应对象,向客户端输出响应正文(响应体)可以使用response的响应流,repsonse一共提供了两个响应流对象:

比如:

PrintWriter out = response.getWriter():获取字符流;
ServletOutputStream out = response.getOutputStream():获取字节流;

2.3,设置状态码及其他方法

简单举几个设置响应码案例:

response.setContentType("text/html;charset=utf-8"):等同与调用response.setHeader(“content-type”, “text/html;charset=utf-8”);

response.setCharacterEncoding(“utf-8”):设置字符响应流的字符编码为utf-8; 

response.setStatus(200):设置状态码;

2.4,设置重定向

说到重定向,我先说一下转发,然后你们再看对比:

2.4.1,请求转发

转发:将请求在服务器内部交给另一个组件再去执行,同时共享request中的连接。

2.4.2,重定向

重定向:就是将请求发送回浏览器。然后由浏览器再重新向服务器自动的发送一个请求。web资源受到客户端请求后,通知客户端去访问另外一个web资源

区别:

两者的区别就是转发是由服务器内部进行请求的,而重定向是浏览器请求后,返回一个状态码,浏览器自己再去请求返回的地址。

好了今天的文章就到这里了,觉得对自己有帮助的话关注一下小编哦。

相关推荐

了解一点ESB 了解一点点的意思的成语

如何进行系统集成?点对点方式VS数据总线方式企业服务总线,即ESB全称为EnterpriseServiceBus如上图所示,企业服务总线是将多个系统(一般是公司内部的多个系统)进行集成,避免服...

基础回顾Servlet系列:request,response,ServletContext

Servlet系列:(HttpServletRequest、HttpServletResponse、ServletContext、ServletConfig)详解HttpServletRequestH...

主动写入流对@ResponseBody注解的影响

作者:京东零售柯贤铭问题回溯2023年Q2某日运营反馈一个问题,商品系统商家中心某批量工具模板无法下载,导致功能无法使用(因为模板是动态变化的)商家中心报错(JSON串):...

setCharacterEncoding和setContentType的区别

setCharacterEncoding:只是设置字符的编码方式response.setCharacterEncoding("utf-8");...

重定向与转发 重定向和转发的区别及应用

请求转发(forward):发送一次请求,将表单数据或封装到url中的数据一并转发到新页面。...

多人同时导出 Excel 干崩服务器!参考阿里大佬给出的解决方案

前言业务诉求:考虑到数据库数据日渐增多,导出会有全量数据的导出,多人同时导出可以会对服务性能造成影响,导出涉及到mysql查询的io操作,还涉及文件输入、输出流的io操作,所以对服务器的性能会影响的比...

一篇文章弄懂Request和Response(建议收藏复习)

一:HttpServletRequest1.简介:HttpServletRequest是专用于HTTP协议的ServletRequest子接口,它用于封装HTTP请求消息。它在每次请求serv...

谷歌Chrome 130稳定版登场:改进文档画中画、增强CSS嵌套声明

IT之家10月16日消息,谷歌公司今天(10月16日)发布新闻稿,面向安卓、ChromeOS、Linux、macOS和Windows系统,正式推出Chrome130稳定版浏览...

Google发布新版Gmail API gmail update apk

今天的I/O大会,Google发布了新版的GmailAPI(Beta),相比以往的IMAP,新API的最大优势就是资源获取速度的提高。通过以往的IMAP,第三方App每执行一次操作都需要全盘调用用...

谷歌开放语音识别 API,与 Nuance 展开正面较量

谷歌今天向第三方开发者开放了语音识别API,计划与Nuance和其他语音识别公司展开正面竞争。为了吸引开发者,GoogleCloudSpeechAPI一开始将免费提供,以后再进行收费。过...

谷歌Gemini 2.0发布,引入代理AI 谷歌mini diva

谷歌宣布对AI模型Gemini进行重大更新,发布“2.0”更新。更新后的AI模型具有更广泛的多模式推理,并在其软件包中引入了代理AI。Gemini2.0Flash是Gemini2.0完整套件的低...

Google这款工具再次限免,需要的速度了。再次错过就可惜了

Google将恢复对GoogleTranslate网站翻译器小部件的支持,并将其免费提供给非商业用途。  Google再次支持GoogleTranslate网站翻译工具,以帮助人们在COVID-1...

谷歌地图API的三大开源替代品 谷歌地图开发

CSDN移动将持续为您优选移动开发的精华内容,共同探讨移动开发的技术热点话题,涵盖移动应用、开发工具、移动游戏及引擎、智能硬件、物联网等方方面面。如果您想投稿、寻求《近匠》报道,或给文章挑错,欢迎发送...

Go 官宣:新版 Protobuf API protobuffer golang

原文作者:JoeTsai,DamienNeil和HerbieOng原文链接:https://blog.golang.org/a-new-go-api-for-protocol-buffer...

全自动翻译国际化(支持一键翻译多国语言,不入侵业务代码)

前言Hi~大家好,今天给大家介绍一个关于国际化的vite插件vite-plugin-auto-i18n,一个自动翻译的关于i18n的vite插件。做过国际化的朋友都知道,国际化通常都是用i18n...

取消回复欢迎 发表评论: