前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一篇文章弄懂Request和Response

一篇文章弄懂Request和Response

作者头像
Java编程指南
发布2020-11-25 12:23:32
1.1K0
发布2020-11-25 12:23:32
举报
文章被收录于专栏:Java编程指南

一:HttpServletRequest

1.简介:

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

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

2.功能介绍:

2.1,接收用户请求参数:

代码语言:javascript
复制
String getParameter(String name):通过指定名称获取参数值;

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

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

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

2.2,请求头信息解析:

2.3,获取请求头信息:

代码语言:javascript
复制
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()方法来设置响应头,使用该方法设置的响应头最终会发送给客户端浏览器。

比如:

代码语言:javascript
复制
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一共提供了两个响应流对象:

比如:

代码语言:javascript
复制
PrintWriter out = response.getWriter():获取字符流;
ServletOutputStream out = response.getOutputStream():获取字节流;

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

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

代码语言:javascript
复制
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资源

区别:

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

代码语言:javascript
复制
有热门推荐?
1.Java学习路线(基础,源码,项目,实战)2.2019年Java基础学习阶段最新学习视频(限时领取)3.2019年Java高级进阶学习视频(限时领取)4.最新学习资源,看者有份,快来领取吧!5.阿里资深技术专家教你如何快速成长为技术大牛!       
关注Java编程指南公众号在后台回复:Java学习,我们为你整理了一份最新完整的学习线路,帮你快速成长。

点赞是最大的支持 
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java编程指南 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一:HttpServletRequest
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档