HttpsservletRequest和HttpservletResponse讲解 详解

【HttpServletRequest】

  客户端浏览器发出的请求被封装成一个httpServletRequest对象,该对象中包含了所有的信息包括请求的地址,请求的参数,提交的数据,上传的文件客户端的IP甚至客户端操作系统等。HttpServletResponse继承了ServletResponse接口,并提供了Http协议有关的方法。

一.获取客户端提交的数据

 

1.getParameter(Stringarg0):String

 获取指定名称的参数值

2.getParameterMap():Map

 返回一个保存了请求消息中的所有参数名和值的Map对象。Map对象的key是字符串类型的参数名,value是这个参数所对应的object类型的值数组。

3.getParameterNames():Enumeration

 返回一个包含请求消息中的所有参数名的Enumeration对象

4.getParameterValues(Stringarg0):String[]

 获取指定名称参数的所有值数组

 5.getInputStream():ServletInputStream

     获取请求的输入流中的数据

6.getSession():HttpSession

      返回和客户端相关的session,若没有给客户端分配session,则返回null

7.getSession(boolean arg0):HttpSession

    返回和客户端相关的session,若没有给客户端分配session,则创建一个session并返回

8.getCookies():Cookie[]

    返回客户端发送的cookie

9.getAttributeNames():Enumeration

     返回当前请求的所有属性的名字集合

10.getAttribute(String arg0):Object

     返回name指定的属性值

 

二.获取连接消息

1.getRemoteAddr():String

 返回客户端的ip地址

2.getRemoteHost():String

 返回客户端的主机名,若无法解析,则返回IP地址

3.getRemotePort():int

 返回客户端的端口号

4.getLocalAddr():String

 返回服务器的IP地址

5.getLocalName():String

 返回服务器的主机名

6.getLocalPort():int

 返回服务器的端口号

7.getServerName():String

 返回http请求消息的host字段的主机号部分

8.getServerPort():int

 返回http请求消息的host字段的端口号部分

9.getScheme():String

 返回请求的协议名

10.getRequestURL():StringBuffer

 返回完整的请求URL(?之前的部分)

 11.getServerPath():String

      获取请求的文件的路径

 

三.获取请求头消息

1.getHeader(String arg0):String

 返回指定的头字段的值

2.getHeaders(String arg0):Enumeration

 返回重名头字段的值,该方法返回一个java.util.Enumeration

3.getHeaderNames():Enumeration

 返回一个包含所有头字段名字的Enumeration对象

4.getIntHeader(Stringarg0):int

 返回指定的头字段的值,并将其转换为int

5.getDateHeader(Stringarg0):long

 返回指定的头字段的值,并将其转换为long

6.getContentType():String

 返回请求正文的内容类型

7.getContentLength():int

 返回请求正文的长度,单位是字节,如未指定长度,则返回-1

8.getCharacterEncoding():String

 返回请求正文的字符集编码。如没有指定,则返回null。

9.getReader():BufferedReader

  获取请求体的数据流

 

四.获取请求行消息

1.getMethod():String

 返回请求行中的请求方法(如get、post)

2.getRequestURI():String

 返回请求行中的资源部分(不包括参数)

3.getQueryString():String

 返回查询字符串(即请求行中的参数部分),该查询字符串在一个URL中由一个?引出,如果没有查询字符串,返回null。

4.getProtocol():String

 返回请求行中的协议部分

5.getContextPath():String

 返回该请求所属的Web应用的路径

 

【HttpServletResponse】

 

   对于一个Servlet在每次请求访问时,Servlet引擎都会创建一个描述请求消息和一个描述响应消息的对象。其中描述响应消息的对象实现了HttpServletResponse接口。

1.addCookie(Cookiearg0):void

  将指定的cookie加入到当前的响应中

2.addDateHeader(Stringarg0,long arg1):void

  用给定的名称和日期添加一个响应头

3.addHeader(Stringarg0,String arg1):void

  将指定的名字和值加入到响应的头信息中

4.addIntHeader(Stringarg0,int arg1):void

  添加一个给定名称的响应头和整数值

5.containsHeader(Stringarg0):boolean

 该方法用于检查某个字段是否在响应消息头中存在,如果存在,则返回true,否则返回false。

6.encodeURL(Stringarg0):String

  编码指定的URL

7.getOutputStream():ServletOutputStream

  如果响应正文是非字符文本的数据或者是不需要进行编码转换的字符文本,建议使用字节输出流的方式返回响应正文。

①将字符文本的响应正文转换为字节后返回

 

 
  1. OutputStream out = response.getOutputStram();

  2. out.write("操作成功".getBytes());

  3. //out.write("操作成功".getBytes("utf-8"));

 

②将字节流转换为OutputStreamWriter后直接输出字符文本。 

 

 
  1. OutputStream out = response.getOutputStream();

  2. OutputStreamWriter writer = new OutputStreamWriter(out);

  3. writer.write("操作成功");

  4. writer.close();//必须写

 

8.getWriter():PrintWriter  

  如果响应正文全部是字符文本,并且需要进行编码转换,建议使用gatWriter方法。

从getWriter方法返回的PrintWriter对象不仅能很方便的向客户端返回相应正文,而且还会根据响应消息头的Content-Type所指定的字符编码格式自动转换响应正文(PrintWriter返回的响应正文是编码转换后的文本)。 

 

 
  1. response.setContentType("text/html;charser=utf-8");

  2. PrintWriter out = response.getWriter();

  3. out.println("操作成功");  

 

 注意:

①建议尽量手动关闭PrintWriter对象(虽然Servlet引擎会自动关闭PrintWriter对象)。

②不要在同一个response进程中同时使用getWriter()和outputStreamWriter()

9.sendError(intarg0):void

  使用指定状态码发送一个错误到客户端

10.sendRedirect(Stringarg0):void

  Arg0指定重定向的URL,该URL既可以是绝对的,也可以是相对的。该方法用更快捷的方式来设置响应状态码302,表示需要客户端重定向URL。

11.setCharacterEncoding(Stringarg0):void

  这个方法实际上是设置Content-Type字段的字符集部分。

注意:

 在使用这个方法之前,如果Content-Type不存在,则必须先添加Content-Type,否则该方法设置的字符集类型也不会出现在响应消息头上。 

12.setContentLength(intarg0):void

  该方法用于设置相应正文的大小,单位是字节。Servlet引擎会根据向客户端实际输出的响应正文的大小自动设置Content-Length字段的值。 

13.setContentType(Stringarg0):void

  该方法设置Content-Type字段的值。(即设置MIME类型)

14.setDateHeader(Stringarg0,long arg1):void

  将给出的名字和日期设置响应的头部

15.setHeader(Stringarg0,String arg1):void

  将给出的名字和值设置响应的头部

16.setIntHeader(Stringarg0,int arg1):void

  设置一个给定名称的响应头和整数值

17.setStatus(intarg0):void

  给当前响应设置状态码

你可能感兴趣的:(servlet)