HttpServletRequest详解

  HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。

      例如:http://localhost:8080/demo/queryUserList.html?pageNum=1&pageSize=20

       getRequestURL方法返回客户端发出请求时的完整URL。

       http://localhost:8080/demo/queryUserList.html
  getRequestURI方法返回请求行中的资源名部分。

       /demo/queryUserList.html
  getQueryString 方法返回请求行中的参数部分。

       pageNum=1&pageSize=20
  getPathInfo方法返回请求URL中的额外路径信息。额外路径信息是请求URL中的位于Servlet的路径之后和查询参数之前的内容,它以“/”开头。

  getRemoteAddr方法返回发出请求的客户机的IP地址。

  getRemoteHost方法返回发出请求的客户机的完整主机名。
  getRemotePort方法返回客户机所使用的网络端口号。
  getLocalAddr方法返回WEB服务器的IP地址。
  getLocalName方法返回WEB服务器的主机名

       获取请求头

       getHeader(string name)方法:String 
  getHeaders(String name)方法:Enumeration 
  getHeaderNames()方法

       例如:String value = request.getHeader("Accept-Encoding");//获取Accept-Encoding请求头对应的值

       获得客户机请求参数(客户端提交的数据)

  • getParameter(String)方法(常用)
  • getParameterValues(String name)方法(常用)
  • getParameterNames()方法(不常用)
  • getParameterMap()方法(编写框架时常用)

      String userid = request.getParameter("userid");//获取填写的编号,userid是文本框的名字,<input type="text" name="userid">

//request对象封装的参数是以Map的形式存储的
        Map<String, String[]> paramMap = request.getParameterMap();
        for(Map.Entry<String, String[]> entry :paramMap.entrySet()){
            String paramName = entry.getKey();
            String paramValue = "";
            String[] paramValueArr = entry.getValue();
            for (int i = 0; paramValueArr!=null && i < paramValueArr.length; i++) {
                if (i == paramValueArr.length-1) {
                    paramValue+=paramValueArr[i];
                }else {
                    paramValue+=paramValueArr[i]+",";
                }
            }
            System.out.println(MessageFormat.format("{0}={1}", paramName,paramValue));
        }

 

posted on 2019-01-06 21:24  溪水静幽  阅读(471)  评论(0)    收藏  举报