zoukankan      html  css  js  c++  java
  • 请求的转发(派发)以及请求范围

    请求转发(请求派发)

    整个转发过程在服务器内部完成。区分于重定向,重定向需要浏览器支持

     请求转发重定向
    执行过程 服务器内部完成 访问过程需要浏览器支持
    请求与响应次数 一次请求,一次响应 两次请求,两次响应

    请求转发是通过RequestDispatcher对象来进行程序分发:

    //转发语句
        req.getRequestDispatcher("转发路径");
            
    //转发方式
        
        forword(req,resp);
        //将处理请求的全部权利交给另外一个资源处理,并由交给的资源响应
        //(资源可以是servlet,也可以是静态页面)
    
        include(reqt,resp);
        //将处理请求交给另外一个资源处理,当请求资源处理完毕后,又重新交给自己处理

    请求的范围

    请求的范围,一次请求可以获得请求对象中的值,但是一旦请求借宿-响应回去后,值会被清空,下次无法访问(注意重定向无法获得-原因两次请求,两次响应)

    //请求对象保存值(键值对)
        req.setAttribute("键名",值);
        //键是字符串,值可以是任意数据类型
    
    //获取请求中的值
        String value = (String)req.getAttribute("键名");
        //根据存入的值的类型进行转换,如果不转换取出来的对象为Object

    多文件上传核心语句

    //得到所有的表单元素(part)
        Collection<Part> parts = req.getParts();
    
        for (Part part : parts) {
            
            //得到所有表单的name属性的值
            String  form_name =part.getName();
            
            //得到该表单元素的part部分 ,作用就是用来判断该表单元素是不是一个普通的收入控件
            Part  part1 =  req.getPart(form_name);
            
            // 得到提交文件的名字  如果是普通表单元素则为 null , 如果是文件元素则有值
            String  fileName =  part1.getSubmittedFileName();
            
            //如果不为null  则需要文件操作,为null 为普通元素
            if (fileName != null) {
                //上传文件表单处理语句
            }else{
                //普通表单文件处理语句
            }
            
        }

     

  • 相关阅读:
    【python cookbook】替换字符串中的子串(使用Template)
    python 学习sys
    【python cookbook】 替换字符串中的子串
    Python文件读写
    【python cookbook】python过滤字符串中不属于指定集合的字符
    【python cookbook】改变多行文本字符串的缩进
    python字符编码
    【python cookbook】python访问子字符串
    【python cookbook】python 控制大小写
    过关了
  • 原文地址:https://www.cnblogs.com/-Archenemy-/p/12713699.html
Copyright © 2011-2022 走看看