• Serlect的笔记二(request 、 ersponse)


    Web服务器收到客户端的http请求,会针对每一次请求,
    分别创建一个用于代表请求的request对象、和代表响应的response对象。

    下面这两个对象的基本理解:


    一、HttpServletRequest

      1、请求行
          Get http://localhost:8080/day09/servlet/req1?username=zs http/1.1
            getMethod(); 获得请求方式
            * getRequestURL(); 返回客户端发出请求时的完整URL。
            * getRequestURI(); 返回请求行中的资源名部分。
            **getContextPath(); 当前应用的虚拟目录 /day09_01_request
            getQueryString() ; 返回请求行中的参数部分。

      2、请求消息头
          * String getHeader(String name) 根据头名称得到头信息值
             Enumeration getHeaderNames() 得到所有头信息name
             Enumeration getHeaders(String name) 根据头名称得到相同名称头信息值

      3、请求正文(重要)

        与获取表单数据相关的方法:
          *** getParameter(name) 根据表单中name属性的名,获取value属性的值方法
          *** getParameterValues(String name)专业为复选框取取提供的方法
             getParameterNames() 得到表单提交的所有name的方法
          *** getParameterMap 得到表单提交的所有值的方法 //做框架用,非常实用
             getInputStream 以字节流的方式得到所有表单数据

        与操作非表单数据相关的方法(request也是一个域对象,即内部管理一个Set集合):
          *** void setAttribute(String name, Object value); 向request的Set集合中存入一个键值对
          *** Object getAttribute(String name); 从request集合中取出一个键值对
             Void removeAttribute(String name); 从request集合中移除一个键值对

        与请求转发相关的方法:
             RequestDispatcher getRequestDispatcher(String path) //得到请求转发或请求包含的协助对象
          *** forward(ServletRequest request, ServletResponse response) //转发的方法
             include(ServletRequest request, ServletResponse response) //请求包含

        与请求编码相关的方法:
          (1)解决post方式编码:
            *****request.setCharacterEncoding("UTF-8"); //告诉服务器客户端是什么编码,只能处理post请求方式
            (2)解决get方式编码:
            String name = new String(name.getBytes(“iso-8859-1”),"UTF-8");

    二、HttpServletResponse
      1、响应行 HTTP/1.1 200 OK
         setStatus(int sc) 设置响应状态码
      2、响应头
        ***** sendRedirect(String location) 请求重定向(是两行代码的结合)

                  (response.setStatus(302);//告诉客户端要重新定向新的资源

                   response.setHeader("location", "URL地址");//告诉浏览器要去访问哪个URL

               setHeader(String name, String value) 设置响应头信息

            response.setHeader("content-type", "text/html;charset=UTF-8");
              告知浏览器使用什么码表

        //告知客户端不缓存
            response.setHeader("pragma", "no-cache");
            response.setHeader("cache-control", "no-cache");
            response.setDateHeader("expires", 0);

        Referesh刷新

            response.setIntHeader("refresh", 1);

      3、响应正文(主体)
        *** getWrite(); 字符输出流
           getOutputStream(); 字节输出流
           setCharacterEncoding(String charset) 告知服务器使用什么编码
        ***** setContentType(String type) 告之服务器和客户端使用什么编码

      4, 设置服务器和浏览器 的编码方式 

          

    //设置浏览器和服务器的编码方式(两种方法)
        response.setHeader("content-type", "text/html;charset=UTF-8");
        response.setCharacterEncoding("UTF-8");
        //response.setContentType("text/html;charset=UTF-8");

  • 相关阅读:
    DOS下读取4GB内存
    开始了
    PHP函数补完:var_export()
    php 调试相关
    css选择符
    javascript的urlencode
    用CSS代码绘制三角形 纯CSS绘制三角形的代码
    Jquery 操作Cookie
    提高PHP编程效率的53种方法
    执行phpinfo();时提示:date_default_timezone_set()
  • 原文地址:https://www.cnblogs.com/soficircle/p/6880497.html
Copyright © 2020-2023  润新知