request:请求:处理请求相关
response:响应:处理响应相关
什么是请求:浏览器,访问服务器,
什么是响应:服务器,反馈浏览器
request:域对象(一次请求)
    getParameter():获取单个数据(input框)
    getParameterValues();获取多个数据(checkedbox)
    getParameterMap():获取所有的参数
    key:name值
    value:name对应的value值
    获取请求头信息:request.getHeader("");
    获取请求方式:request.getMethod();
    获取项目路径:getContextPath();
    //请求转发:
    request.getRequestDispatcher("/hello.html").forward(request,response );
    地址栏不变,页面发生跳转
    如果发生了请求转发,还是一次请求
    路径相关;
        内部路径;直接写资源
        相对:./ ../
        绝对:
           带主机和协议的路径(访问站外资源)
           不带主机和协议的路径(最常用的)
           /项目名/资源路径
response对象:
    响应码(状态码):
        200: 成功
        404:访问的资源不存在
        500:服务器代码有问题
        304:读缓存
        302:重定向
    常用方法:
        //设置编码
        response.setContentType("text/html;charset=utf-8");
        //回写数据
        response.getWriter().print("我已收到请求!!!");
        getOutputStream():获取字节流
        注意:两个流是互斥的 不能同时存在
        自己写的:字符流
        其他所有:字节流
        sendRedirect():重定向 页面发生跳转
        地址栏要发生改变,两次请求
    请求转发和重定向的区别:
        1、重定向2次请求,请求转发1次请求
        2、重定向地址栏变化,请求转发地址栏不变
        3、重定向转发通过浏览器,请求转发通过服务器内部
        4、重定向可以访问站外资源(除开当前服务器以外),请求转发不能访问站外资源
    setHeader(); 设置响应头
    addHeader();添加响应头,如果有就覆盖 ,没有就添加
    响应头:
        location:配合状态码 实现重定向
        refresh:刷新
        cookie:小饼干
        Content-Disposition:下载相关
    //重定向
    方式一:
        sendRedirect():
    方式二:
        response.setStatus(302);
        response.setHeader("location", "/myServlet6");
    //定时刷新
    response.setHeader("refresh", "3;url=http://www.baidu.com");