Servlet---Request

I. 的概述

1、Request和Response的原理

	  A.含义
		   a. Request  请求 "浏览器--->发送数据--->服务器"
		   b. Response 响应 "服务器--->回复数据--->浏览器"
	  B.创建对象的方式
		Request和Response 都是服务器内置的对象,服务器内部帮助你创建的对象,你可以直接拿过来使用的

2、Request 的体系结构

interface HttpServlet
Request extends ServletRequest
org.apache.catalina.connector.RequestFacade implements HttpServletRequest

II. Request 的常用方法 API

1、常用的方法

        A. String getMethod()     //获取请求方式 :GET             
        B. String getContextPath()   //【重点】获取虚拟目录:
        C. String getServletPath()   //获取Servlet路径:    
        D. String getQueryString()   //获取get方式请求参数:           
        E. String getRequestURI()    //【重点】获取请求URI  统一资源标识符 : 
        F. StringBuffer getRequestURL() //【重点】 URL:统一资源定位符 :
        G. String getProtocol()    //获取协议及版本:HTTP/1.1
        H. String getRemoteAddr()   //获取客户机的IP地址:

2、获取请求头的方法

    A. String getHeader(String name)  //【重点】通过请求头的名称获取请求头的值
    B. Enumeration<String> getHeaderNames() //获取所有的请求头名称

3、获取请求体的方法(只有POST请求才有请求体)

    A. BufferedReader getReader()     //获取字符输入流,只能操作字符数据
    B. ServletInputStream getInputStream()  //获取字节输入流,可以操作所有类型数据

4、获取请求参数的方法

  A. String getParameter(String name)     //【重点】根据参数名称获取参数值   
  B. String[] getParameterValues(String name) //根据参数名称获取参数值的数组     多选框
  C. Enumeration<String> getParameterNames() //获取所有请求的参数名称
  D. Map<String,String[]> getParameterMap() //【重点】获取所有参数的map集合

5、解决中文乱码的问题

	request.setCharacterEncoding("utf-8");  //设置请求request的编码方式是 utf-8
        response.setCharacterEncoding("utf-8");  //设置响应response的编码方式是 utf-8

III.Request 的转发和共享数据

1、请求转发

  A.含义
	   服务器内部资源之间的跳转方式
  B.步骤
	   a. RequestDispatcher dispatcher = request.getRequestDispatcher("需要跳转的路径"); //获取到请求转发器分发器的对象
	   b. dispatcher.forward(ServletRequest request, ServletResponse response);  //将请求和响应转发过去
  C.特点
	   a. 地址栏不变(浏览器的地址栏不会发生改变)
	   b. 转发内部资源(只能够转发服务器内部的资源,不能访问外部其他资源)
	   c. 转发是一次请求(转发是一次请求,不是多次)

2、共享数据

  A.request共享域:
   在服务器内部 之间转发的时候,这里就是共享域.在此期间,数据可以共享.
  B.几个方法
   a. void setAttribute(String name,Object obj)   //"增","改" 存储数据
   b. Object getAttitude(String name)    //"查"通过键获取值
   c. void removeAttribute(String name)   //"删"通过键移除键值对

3、获取ServletContext

  ServletContext  sc = request.getServletContext();

猜你喜欢

转载自blog.csdn.net/LIDIADIA/article/details/82813451
今日推荐