zoukankan      html  css  js  c++  java
  • Request

    图解原理:

     1. request对象和response对象的原理

      1.request和response对象由服务器创建,我们来使用

      2.request对象来获取请求信息,response对象来设置响应消息

    2. request对象继承体系结构:
      ServletRequest -- 接口
        | 继承
      HttpServletRequest -- 接口
        | 实现
      org.apache.catalina.connector.RequestFacade 类(tomcat)

    3. request功能:
      1. 获取请求消息数据
        1. 获取请求行数据
          * GET /day14/demo1?name=zhangsan HTTP/1.1
          * 方法:
            1. 获取请求方式 :GET
              * String getMethod()
            2. (*)获取虚拟目录:/day14  重点掌握
              * String getContextPath()
            3. 获取Servlet路径: /demo1
              * String getServletPath()
            4. 获取get方式请求参数:name=zhangsan
              * String getQueryString()
            5. (*)获取请求URI:/day14/demo1  重点掌握
              * String getRequestURI(): /day14/demo1
              * StringBuffer getRequestURL() :http://localhost/day14/demo1
              * URL:统一资源定位符 : http://localhost:8080/day14/demo1 中华人民共和国
              * URI:统一资源标识符 : /day14/demo1 共和国
            6. 获取协议及版本:HTTP/1.1
              * String getProtocol()
            7. 获取客户机的IP地址:
              * String getRemoteAddr()

        2. 获取请求头数据
          * 方法:
            * (*)String getHeader(String name):通过请求头的名称获取请求头的值
            * Enumeration<String> getHeaderNames():获取所有的请求头名称
        3. 获取请求体数据:
          * 请求体:只有POST请求方式,才有请求体,在请求体中封装了POST请求的请求参数
          * 步骤:
            1. 获取流对象
              * BufferedReader getReader():获取字符输入流,只能操作字符数据
              * ServletInputStream getInputStream():获取字节输入流,可以操作所有类型数据

            2. 再从流对象中拿数据

      2. 其他功能:(重要)
        1. 获取请求参数通用方式:不论get还是post请求方式都可以使用下列方法来获取请求参数
          1. String getParameter(String name):  根据参数名称获取参数值 username=zs&password=123
          2. String[] getParameterValues(String name):  根据参数名称获取参数值的数组,hobby=xx&hobby=game
          3. Enumeration<String> getParameterNames():  获取所有请求的参数名称
          4. Map<String,String[]> getParameterMap():  获取所有参数的map集合
          * 中文乱码问题:
            * get方式:tomcat 8 已经将get方式乱码问题解决了
            * post方式:会乱码
              * 解决:在获取参数前,设置request的编码request.setCharacterEncoding("utf-8");
        2. 请求转发:一种在服务器内部的资源跳转方式。一次请求访问多个资源
          1. 步骤:
            1. 通过request对象获取请求转发器对象:RequestDispatcher,getRequestDispatcher(String path)
            2. 使用RequestDispatcher对象来进行转发:forward(ServletRequest request,ServletResponse response)
          2. 特点:
            1. 浏览器地址栏路径不发生变化
            2. 只能转发到当前服务器内部资源中。
            3. 转发是一次请求。浏览器控制台可以看到只发送了一次请求
        3. 共享数据:
          * 域对象:一个有作用范围的对象,可以在范围内共享数据
          * request域:代表一次请求的范围,一般用于请求转发的多个资源中共享数据
            * 方法:
              1. void setAttribute(String name,Object obj):  存储数据
              2. Object getAttitude(String name):  通过键获取值
              3. void removeAttribute(String name):  通过键移除键值对
        4. 获取ServletContext:
          * ServletContext getServletContext()

    4. login.html中form表单的action路径的写法
      * 虚拟目录+Servlet的资源路径
    5. BeanUtils工具类,简化数据封装
      * 用于封装JavaBean的
        1. JavaBean:标准的Java类
          1. 要求:
            1. 类必须被public修饰
            2. 必须提供空参的构造器
            3. 成员变量必须使用private修饰
            4. 提供公共setter和getter方法
          2. 功能:封装数据
        2. 概念:
          成员变量:
          属性:setter和getter方法截取后的产物
          例如:getUsername() --> Username--> username
        3. 方法:
          1. setProperty()
          2. getProperty()
          3. populate(Object obj , Map map):将map集合的键值对信息,封装到对应的JavaBean对象中

  • 相关阅读:
    打造基于CentOS7的xfce最简工作环境
    Linux下C程序的编辑,编译和运行以及调试
    修正 XE6 TListView 上方 SearchBok 右边的清除钮显示
    TabControl 显示彩色的图示 (XE6 Firemonkey)
    TSwitch 中文简繁显示支持(XE6 Android)
    改变 TMemo 的背景颜色 (Firemonkey)
    修正 XE5 Android 键盘三个问题
    Delphi 收藏
    展示 Popup 的使用方法
    ListView 下拉更新 (支持 Android)
  • 原文地址:https://www.cnblogs.com/elian91/p/15308554.html
Copyright © 2011-2022 走看看