HttpServletRequest介绍和头信息的获取 - Go语言中文社区

HttpServletRequest介绍和头信息的获取


---------------------------------HttpServletRequest介绍和头信息的获取---------------------------------

1.Tomcat请求响应

 

Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象request和response对象即然代表请求和响应,那我们要获取客户机提交过来的数据,只需要找request对象就行了。要向客户机输出数据,只需要找response对象就行了

 

2.HttpServletRequest基本功能

 

1 HttpServletRequest的功能

HttpServletRequest在JavaWeb中非常重要的一个类。它是Servlet的service()方法的参数之一!所以你必须必须要掌握它!

request的功能可以分为以下几种:

  1. 封装了请求头数据;
  2. 封装了请求正文数据,如果是GET请求,那么就没有正文;
  3. request是一个域对象,可以把它当成Map来添加获取数据;
  4. 做请求的转发

 

2 request获取请求头数据

String value = request.getHeader(“请求头名称”);

request对象可以用来获取请求头数据,当然,这些请求数据都是Tomcat封装到request中去的。我们在service()方法中可以直接来获取!

request与请求头相关的方法有:

  1. String getHeader(String name):获取指定名称的请求头;
  2. Enumeration getHeaderNames():获取所有请求头名称;
  3. int getIntHeader(String name):获取值为int类型的请求头。

 

package com.rl.servlet;

 

import java.io.IOException;

import java.util.Enumeration;

 

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

public class HelloServlet extends HttpServlet {

 

       public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

              //根据投信息的key获得值

              String headVal = request.getHeader("Host");

              System.out.println("Host:" + headVal);

              // Host:localhost:8080

             

              //通过getHeaderNames获得所有头名字的Enumeration集合

              Enumeration<String> headNames = request.getHeaderNames();

              while(headNames.hasMoreElements()){

                     String headName = headNames.nextElement();

                     System.out.println(headName+":"+request.getHeader(headName));

              }

//  打印结果:          

//           host:localhost:8080

//           connection:keep-alive

//           cache-control:max-age=0

//           upgrade-insecure-requests:1

//           user-agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36

//           accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8

//           accept-encoding:gzip, deflate, sdch, br

//           accept-language:zh-CN,zh;q=0.8

 

       }

 

}

 

3 request获取请求相关的其它方法

request中还提供了与请求相关的其他方法,有些方法是为了我们更加便捷的方法请求头数据而设计,有些是与请求URL相关的方法。

  1. int getContentLength():获取请求正文的字节数,GET请求没有正文,没有正文返回-1;
  2. String getContentType():获取请求类型,如果请求是GET,那么这个方法返回null;如果是POST请求,那么默认为application/x-www-form-urlencoded(理解为字符串类型),其它类型以后再学;
  3. String getMethod():返回请求方法,例如:GET
  4. Locale getLocale():返回当前客户端浏览器支持的Locale。java.util.Locale表示国家和言语,这个东西在国际化中很有用;
  5. String getCharacterEncoding():获取请求编码,如果没有setCharacterEncoding(),那么返回null。表示使用ISO-8859-1编码;
  6. void setCharacterEncoding(String code):设置请求编码,只对正文有效!注意,对于GET而言,没有正文!!!所以此方法只能对POST请求中的参数有效!

http://localhost:8080/hello/oneServlet?name=zhangSan

  1. String getContextPath():返回上下文路径,例如:/项目名称
  2. String getQueryString():返回请求URL中的参数,例如:name=zhangSan
  3. String getRequestURI():返回请求URI路径,例如:/hello/oneServlet
  4. StringBuffer getRequestURL():返回请求URL路径,例如:http://localhost/hello/oneServlet,即返回除了参数以外的路径信息;
  5. String getServletPath():返回Servlet路径,例如:/oneServlet
  6. String getRemoteAddr():返回当前客户端的IP地址;
  7. String getRemoteHost():返回当前客户端的主机名,但这个方法的实现还是获取IP地址;
  8. int getRemotePort():返回客户端的端口号,每次请求都会变;
  9. String getSchema():返回请求协议,例如:http;
  10. String getServerName():返回主机名,例如:localhost
  11. int getServerPort():返回服务器端口号,例如:80

    System.out.println("request.getContentLength(): " + request.getContentLength());

    System.out.println("request.getContentType(): " + request.getContentType());

    System.out.println("request.getContextPath(): " + request.getContextPath());

    System.out.println("request.getMethod(): " + request.getMethod());

    System.out.println("request.getLocale(): " + request.getLocale());

       

    System.out.println("request.getQueryString(): " + request.getQueryString());

    System.out.println("request.getRequestURI(): " + request.getRequestURI());

    System.out.println("request.getRequestURL(): " + request.getRequestURL());

    System.out.println("request.getServletPath(): " + request.getServletPath());

    System.out.println("request.getRemoteAddr(): " + request.getRemoteAddr());

    System.out.println("request.getRemoteHost(): " + request.getRemoteHost());

    System.out.println("request.getRemotePort(): " + request.getRemotePort());

    System.out.println("request.getScheme(): " + request.getScheme());

    System.out.println("request.getServerName(): " + request.getServerName());

    System.out.println("request.getServerPort(): " + request.getServerPort());

 

 

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_41547486/article/details/81266697
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-08 10:41:21
  • 阅读 ( 1331 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢