请求与响应

1.请求和响应的概述:
什么请求:在浏览器地址栏输入地址,点击回车请求服务器,这个过程就是一个请求过程。
什么响应:服务器根据浏览器发送的请求,返回数据到浏览器在网页上进行显示,这个过程就称之为响应。

2.HttpServletResponse对象
HttpServletResponse是一个接口,它的父接口是ServletResponse,在开发中通常使用HttpServletResponse
响应信息分为三部分:响应行、响应头、响应正文(响应体)

请求与响应_第1张图片

1发送响应体相关的方法:
    第一个方法:getOutputStream(),通过response向浏览器返回图片、视频等二进制数据的文件,当然也可以向浏览器、 返回文本数据。
    比如:
	ServletOutputStream out = response.getOutputStream();
	String value="itcast";
	out.write(value.getBytes());
    第二个方法:getWriter(),通常response向浏览器返回文本数据,不能向浏览器返回图片、视频等二进制文件。

请求与响应_第2张图片

3.HttpServletRequest请求对象
HttpServletRequest它是一个接口,它的父接口ServletRequest,在开发中,常用的是带协议的请求对象。
请求消息:请求行,请求头,请求参数。
1.1 HttpServletRequest请求对象
1.获取请求行消息的相关方法:
常用的请求行方法:
1.获取请求提交的方式: getMethod();
2.获取请求的协议: getProtocol();
3.获取项目名称:getContextPath();
4.获取servlet路径:getServletPath();
5.获取请求路径: getRequsetURI(),getRequestURL();
uri对应的值:/项目名称/servlet路径
url对应的值:http://localhost:8080/uri
请求与响应_第3张图片

	       2.获取请求消息头相关的方法
	   1. 根据消息头,获取值: String value = getHeader(消息头的名称);
	 2. 获取所有的消息头: Enumeration er = getHeaderNames();
	  	3.获取请求参数相关的方法:
 1.根据name属性值,获取用户输入的值:String value = getParameter(name属性对应的值);
	 2.根据name属性值,获取用户选择的值:String[] vaules = getParameterValues(name属性对应的值);
	  3.没有参数,获取所有值:Map map = getParameterMap();
	  	1.通过Requset对象传递数据
	  什么域对象:在一定的范围内,可以存值和取值。
	  request域对象:在一次请求中,可以存值和取值。
	   >>> 存值: setAttribute(String key,Object obj);
	   >>> 取值:Object obj = getAttribute(String key);
	   >>> 移除: removeAttribute(String key);

请求与响应_第4张图片

1 RequestDispatcher接口
	在开发中访问到一个web资源后,需要服务器跳转到另一个资源去处理请求,可以通过sendRedirect重定向
	方法来实现,也可以RequestDispatcher转发对象的forward方法来实现。
	得到转发对象:RequestDispatcher forwardObj = request.getRequestDispatcher("另一个资源的路径")
	1. 请求转发:
		    特点:发送了一次请求,响应一次,和request域对象配合使用,可以实现值的传递。
		    转发路径:转发动作是在服务器内部实现的,所以转发路径不要携带项目名称。
	   请求重定向:
		     特点:发送了两次请求,响应了两次,不能和request域对象配合使用。
		     重定向路径:重定向动作在浏览器端执行的,所以路径需要携带项目名称。
	2.请求包含:
	  请求包含:在服务器内部完成的,路径不需要携带项目名称。

请求与响应_第5张图片

你可能感兴趣的:(eclipse,java,tomcat)