欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

HttpServletRequest接口

程序员文章站 2024-02-04 13:58:10
...

1.介绍:
1)HttpServletRequest接口来自于Servlet规范中,在Tomcat中存在servlet-api.jar

2)HttpServletRequest接口实现类由Http服务器负责提供

3)HttpServletRequest接口负责在doGet/doPost方法运行时读取Http请求协议包中信息

4)开发人员习惯于将HttpServletRequest接口修饰的对象称为【请求对象】
2.作用:
1)可以读取Http请求协议包中【请求行】信息

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

                    //1.通过请求对象,读取【请求行】中【url】信息
                    String url = request.getRequestURL().toString();
                    //2.通过请求对象,读取【请求行】中【method】信息
                    String method = request.getMethod();

                    //3.通过请求对象,读取【请求行】中uri信息
                    /*
                    * URI:资源文件精准定位地址,在请求行并没有URI这个属性。
                    *      实际上URL中截取一个字符串,这个字符串格式"/网站名/资源文件名"
                    *      URI用于让Http服务器对被访问的资源文件进行定位
                    */
                    String uri =  request.getRequestURI();// substring

                    System.out.println("URL "+url);
                    System.out.println("method "+method);
                    System.out.println("URI "+uri);

            }

2)可以读取保存在Http请求协议包中【请求头】或则【请求体】中请求参数信息

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

                    //1.通过请求对象获得【请求头】中【所有请求参数名】
                    Enumeration paramNames =request.getParameterNames(); //将所有请求参数名称保存到一个枚举对象进行返回
                    while(paramNames.hasMoreElements()){
                        String paramName = (String)paramNames.nextElement();
                        //2.通过请求对象读取指定的请求参数的值
                        String value = request.getParameter(paramName);
                        System.out.println("请求参数名 "+paramName+" 请求参数值 "+value);
                    }
              }

3)可以代替浏览器向Http服务器申请资源文件调用

  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                    //通知请求对象,使用utf-8字符集对请求体二进制内容进行一次重写解码
                    request.setCharacterEncoding("utf-8");
                    //通过请求对象,读取【请求体】参数信息
                    String value = request.getParameter("userName");
                    System.out.println("从请求体得到参数值 "+value);

            }

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

                    //通过请求对象,读取【请求头】参数信息
                    String userName = request.getParameter("userName");
                    System.out.println("从请求头得到参数值 "+userName);
             }