response &request
Web服务器收到客户端的http请求时,会针对每一次请求分别创建一个用于代表请求的request对象以及代表响应的response对象;
request和response对象即代表请求和响应,那么我们要获取到客户机提交过来的数据时使用request对象;要向客户机发送数据(输出数据)时使用response对象;
HttpServletResponse
httpservletResponse是ServletResponse的子接口,代表服务器的响应,HttpServlet类的重载servcie()方法及doGet()和doPost()方法都有一个HttpServletResponse类型的参数:这个对象中封装了服务器向客户机发送数据(响应体)、响应头、状态码的方法;
HttpServletRequest
HttpservletRequest对象代表客户端的请求。当客户端通过Http协议访问服务器时,Http请求中的所有信息都封装进这个对象中,我们可以通过该对象获取到以下信息:
1、获取客户机信息
2、获取请求头信息
3、获取请求参数
4、利用请求域传递对象
Response
response对象是用来对客户机进行响应的,主要有以下四种功能:
1、设置响应头信息
2、设置响应内容(响应体)
3、重定向
4、发送状态码
例如:我们在为前端提供的接口类中声明的就是response对象,用于返回数据以及状态码给前端;
@Controller
@RequestMapping("interfaces/szx")
public class ZxcxwdController {
@RequestMapping("wdcx")
@ResponseBody
public static String wdcx(ServletResponse response)
throws IOException{
HttpServletResponse res = (HttpServletResponse) response;
//日前浏览器为了数据的安全,所有请求被严格限制在同一域名下为了从不同服务器(不同域名)上获取数据,那么需要使用跨域Http请求
res.setHeader("Access-Control-Allow-Origin", "*");//允许所有域名访问
res.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");//允许所有方式访问
String url = "http://10.5.2.50:61001/baseifsys/thirdparty/restful/send?_servicecode=" + "20200320144117"+"&_token="+"c0a283b41252e7efc62f4904534dd8a4"+"&_orgId="+"001"+"&_refuladdress="+"ZXWD";
String dataStr = HttpClientUtil.getInfo(url, "utf-8");
return dataStr;
}
}
原文链接:Response、Request、ServletResponse接口和HttpServletResponse接口