3六、Request

请求和响应过程:一、tomcat服务器会根据请求url中的资源路径,建立对应的Servlet实现类对象程序员

                        二、tomcat服务器会自动建立request和response对象,request对象中封装请求消息数据数组

                        三、tomcat将request和response两个对象传递给service方法,而且调用service方法浏览器

                        四、程序员能够勇敢request对象获取请求消息数据,经过response对象设置响应消息数据tomcat

                        五、服务器在给浏览器做出响应以前,会从response对象中拿程序员设置的响应消息数据服务器

 

Request对象的继承体系结构:jsp

ServletRequest->HttpServletRequest->RequestFacade编码

 

request的功能url

一、获取请求消息spa

        获取请求行数据对象

                例如:GET /Web_servlet/demo?name = user HTTP/1.1

                方法:一、String getMethod()获取请求方式,GET

                         二、String getContextPath() 获取虚拟目录,/Web_ servlet

                         三、String getServeltPath()获取servlet路径,/demo

                         四、String getQueryString()获取get请求参数,name=user

                         五、String getRequestURI()获取请求URI,/Web_servlet/demo

                         六、String getRequesrURL()获取请求URL,http://localhost/Web_servlet/demo

                         七、String getProtocol()获取协议及版本,HTTP/1.1

                         八、String getRemoteAddr()获取客户端IP地址

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    /*request.getRequestDispatcher("/hello.jsp").forward(request,response);*/

    String method = request.getMethod();
    System.out.println(method);

    String contextPath = request.getContextPath();
    System.out.println(contextPath);

    String servletPath = request.getServletPath();
    System.out.println(servletPath);

    String queryString = request.getQueryString();
    System.out.println(queryString);

    String requestURI = request.getRequestURI();
    System.out.println(requestURI);

    StringBuffer requestURL = request.getRequestURL();
    System.out.println(requestURL);

    String protocol = request.getProtocol();
    System.out.println(protocol);

    String remoteAddr = request.getRemoteAddr();
    System.out.println(remoteAddr);


}

        获取请求头数据

                  方法:一、String getHeader(String name):经过请求头的名称获取请求头的值

                           二、Enumeration<String> getHeaderNames():获取全部的请求头名称                

        获取请求体数据

                    经过POST请求方式,才有请求体,在请求体中封装了POST请求的请求参数

                    步骤:一、获取流对象

                                        BufferedReader getReader():获取字符输入流,只能操做字符数据

                                        ServletInputStream getInputStream():获取字节输入流,能够操做全部类型的数据

                             二、再从流对象中拿数据                

二、其余功能

            获取请求参数通用方法:一、String getParameter(String name)根据参数名称获取参数值

                                             二、String[] getParameterValues(String name):根据参数名称获取参数值的数组

                                             三、Enumeration<String[]> getParameterNames():获取全部请求的参数名称

                                             四、Map<String ,String[] >getParameterMap():获取全部参数的map集合

                      注意:中文乱码问题:POST方式发送中文请求会产生乱码,解决方法:设置流的编码,request.setCharacterEncoding("UTF-8");

            请求转发:一种在服务器内部的资源跳转方式

                       步骤:一、经过request对象获取请求转发器对象:requsetDispatcher getRequsetDispatcher(String path)

                                二、使用RequsetDispatcher对象来进行转发:forward(ServletRequset requset,ServletResponse response)

                        特色:一、浏览器地址栏路径不发送变化

                                 二、只能转发到当前服务器内部资源中

                                 三、转发是一次请求

            共享数据:

                        域对象:一个有做用范围的对象,能够在范围内共享数据

                        request:表明一次请求的范围,通常用于请求转发的多个资源中共享数据

                        方法:一、setAttribute(String name ,Object obj):存储数据

                                 二、getAttribute(String name):经过键获取值

                                 三、removeAttribute(String name):经过键移除数据

            获取servletContext:

                        方法:getServletContext();

相关文章
相关标签/搜索