response和request

.服务器处理请求的流程:
服务器每次接收到一个新的请求时,都会为这个请求开辟一个新的线程
服务器把客户端的请求数据封装到request对象中,request就是请求数据的载体
服务器还会创建response对象,这个对象与客户端连接在一起,他可以用来向客户端发出响应。


1.response

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

response对象的功能分为以下四种:
设置响应头信息;
发送状态码;
设置响应正文;
重定向;

二、重定向:
1、 重定向是两次请求;
2、 重定向的URL发生变化
3、 重定向的响应头为302,并且必须要有Location响应头;

response.setStatus(302); 
response.setHeader("Location", "http://www.itcast.cn"); 
//客户端浏览器解析到响应码为302后,就知道服务器让它重定向,所以它会马上获取响应头Location,然发出第二个请求。  
response.sendRedirect()方法会设置响应头为302,以设置Location响应头。
//如果要重定向的URL是在同一个服务器内,那么可以使用相对路径
//response.sendRedirect("/hello/BServlet");

三、request概述
request是Servlet.service()方法的一个参数,类型为javax.servlet.http.HttpServletRequest。在客户端发出每个请求时,服务器都会创建一个request对象,并把请求数据封装到request中,然后在调用Servlet.service()方法时传递给service()方法,这说明在service()方法中可以通过request对象来获取请求数据
1、request常用方法有:


String getParameter(String name):获取指定名称的请求参数值,适用于单值请求参数
String[] getParameterValues(String name):获取指定名称的请求参数值,适用于多值请求参数
Map<String,String[]> getParameterMap():获取所有请求参数,其中key为参数名,value为参数值。
请求转发: RequestDispatcher rd
= request.getRequestDispatcher("/MyServlet");
rd.forward(request,response);

2、request域
Servlet中三大域对象:request、session、application,都有如下三个方法:
     void setAttribute(String name, Object value)
     Object getAttribute(String name)
     void removeAttribute(String name);
同一请求范围内使用request.setAttribute()、request.getAttribute()来传值!前一个Servlet调用setAttribute()保存值,后一个Servlet调用getAttribute()获取值。

原文地址:https://www.cnblogs.com/lxzwhite/p/10634528.html