• 请求转发、重定向、Cookie


    请求转发:

      * 作用:实现多个servlet联动操作处理请求,这样避免代码冗余,让servlet的职责更加明确。
      * 使用:
        * req.getRequestDispatcher("要转发的地址").forward(req, resp);
        * 地址:相对路径,直接书写servlet的别名即可。
        * 特点:
      * 一次请求,浏览器地址栏信息不改变。
      * 注意:
        * 请求转发后直接return结束即可。
      *reuqet作用域:
        * 解决了一次请求内的servlet的数据共享问题

    重定向:

    * 解决了表单重复提交的问题,以及当前servlet无法处理的请求的问题。
    * 使用:
    * resp.sendRedirect(String uri);
    * 示例:
    * resp.sendRedirect("/login/main");
    * 特点:
    * 两次请求,两个request对象。
    * 浏览器地址栏信息改变
    * 时机:
    * 如果请求中有表单数据,而数据又比较重要,不能重复提交,建议使用重定向。
    * 如果请求被Servlet接收后,无法进行处理,建议使用重定向定位到可以处理的资源。

    Cookie:

      * 作用:解决了发送的不同请求的数据共享问题
      * 使用:
        * Cookie的创建和存储
          * 创建Cookie对象
          * Cookie c=new Cookie(String name, String value);
        * //设置cookie(可选)
          * 设置有效期
          * c.setMaxAge(int seconds);
          * 设置有效路径
            * c.setPath(String uri)
        * //响应Cookie信息给客户端
          * resp.addCookie(c);
      * Cookie的获取
        * 获取Cookie信息数组
          * Cookie[] cks=req.getCookies();
        * 遍历数组获取Cookie信息
        * 使用for循环遍历即可,示例:
            if(cks!=null){
              for(Cookie c:cks){
                String name=c.getName();
                String value=c.getValue();
                System.out.println(name+":"+value);
              }
            }
      * 注意:
        * 一个Cookie对象存储一条数据。多条数据,可以多创建几个Cookie对象进行存储。
      * 特点:
        * 浏览器端的数据存储技术。
        * 存储的数据声明在服务器端。
        * 临时存储:存储在浏览器的运行内存中,浏览器关闭即失效。
        * 定时存储:设置了Cookie的有效期,存储在客户端的硬盘中,在有效期内符合路径要求的请求都会附带该信息。
        * 默认cookie信息存储好之后,每次请求都会附带,除非设置有效路径

  • 相关阅读:
    AcWing 222 青蛙的约会
    AcWing 203. 同余方程
    AcWing 90. 64位整数乘法
    AcWing 89. a^b
    数论专题
    桌面软件开发框架大赏
    【Java/Oracle】利用user_tab_comments获取oracle表注释
    【Mybatis】使用结果嵌套方式完成一对多映射
    【MyBatis】一对一配置
    【java/Network】获得本机IP
  • 原文地址:https://www.cnblogs.com/kilig/p/12215474.html
Copyright © 2020-2023  润新知