Request

作者: 随心者随心行 | 来源:发表于2018-04-24 11:32 被阅读0次

1.HttpSservletRequest

  • 我们在创建Servlet时会覆盖service()方法,或doGet()/doPost(),这些方法都有两个参数,一个为代表请求的request和代表响应response.

 //1.获得请求方式
    String method=request.getMethod();
    //2.获得请求资源相关内容
    String requestURI=request.getRequestURI();
    StringBuffer requestURL = request.getRequestURL();
    //3.获得web应用的名称
    String contextPath = request.getContextPath();
    //地址后的参数的字符串
    String queryString=request.getQueryString();
    //Request获得客户机的信息 
     request.getRomoteAddr() --获得访问的客户端IP地址
   //获得指定的头
    String header = request.getHeader("User-Agent");
    System.out.println(header);
    //获得所有头的名称
    Enumeration<String> headerNames = request.getHeaderNames();
    while (headerNames.hasMoreElements()){
        String headerNmae=headerNames.nextElement();
        String headerValue = request.getHeader(headerNmae);
        System.out.println(headerNmae+":"+headerValue);

    }


  refere:防盗链


   通过request获得请求体

 //1.获得单个表单值
    String username = request.getParameter("username");
    System.out.println(username);
    //2.获得多个表单值
    String[] hobbys = request.getParameterValues("hobby");
    for (String hobby:hobbys){
        System.out.println(hobby);
    }
    //3.获得所有的请求参数的名称
    Enumeration<String> paraemeterNames = request.getParameterNames();
    while (paraemeterNames.hasMoreElements()){
        System.out.println(paraemeterNames.nextElement());
    }
    //4.获得所有的参数 参数封装到MAP中 map<String,String[]>
    Map<String,String[]> parameterMap = request.getParameterMap();
    for (Map.Entry<String,String[]> entry:parameterMap.entrySet()){
        System.out.println(entry.getKey());
       for (String str:entry.getValue()){
           System.out.println(str);
       }
        System.out.println("-----");

    }

2.Request域对象和请求转发

setAttrlbute
getAttribute
removeAttrbute

request请求转发

  • 获得请求转发器
    RequestDispatcher getRequestDispachter

  • 通过转发器对象转发
    forward request ServletResponse


   //servlet1请求转发给2
    RequestDispatcher dispatcher = request.getRequestDispatcher("/Servlet2");
    //执行转发的方法
    dispatcher.forward(request,response);

ServletContext域与Request域的生命周期比较

servletContext:
创建:服务器启动
销毁:服务器关闭
域的作用范围:整个web应用

request:
   创建:访问时
   销毁:响应结束       
 域的作用范围:一次请求

转发与重定向的区别

转发是 地址不变 一次请求 只能访问站点内部资源
重定向 地址改变 两次请求 可以访问外部网站

相关文章

网友评论

      本文标题:Request

      本文链接:https://www.haomeiwen.com/subject/kpullftx.html