HTTP协议 HttpServletRequest与HttPServletResponse 常用方法汇总

本文详细介绍了HTTP请求与响应的工作原理,包括如何通过HttpServletRequest和HttpServletResponse处理请求与响应。涵盖了请求与响应对象的创建、使用方法及转发与重定向的区别。

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

一、HttpServletResponse
    响应行
        response.setStatus() 设置响应状态码
    响应头
        response.setHeader()
        //不使用缓存
        response.setHeader("pragma","no-cache");
        response.setHeader("cache-control","no-cache");
        response.setHeader("expires","0");
        //刷新
        response.setHeader("refresh","3;url=...");
        //告诉浏览器下载文件
        //fileName = URLEncoder.encode(fileName,"UTF-8");
        fileName = new String(fileName.getBytes("UTF-8"),"ISO_8859_1");
        response.setHeader("content-disposition","attachment;filename="+fileName);
        response.setHeader("content-type","image/jpeg");
        //重定向
        response.setStatus(302); //告诉客户端要重新定向新的资源
        response.setHeader("location","url...");  //告诉浏览器要去访问哪个URL
        response.sendRedirect("url..."); //相当于以上两个
    响应正文
        response.setCharacterEncoding("UTF-8"); //告诉服务器使用什么编码
        response.setHeader("content-type","text/html;charset=utf-8"); //告诉浏览器使用什么编码
        response.setContentType("text/html;charset=UTF-8"); //相当于以上两个
        response.getWriter().write("你好"); //字符流
        response.getOutputStream().write("你好".getBytes()); //字节流
二、HttpServletRequest
        请求行
        getMethod(); //获得请求方式
        ***getRequestURL();//返回客户端发出请求时的完整URL。
        ***getRequestURI(); //返回请求行中的资源名部分。
        *****getContextPath();//当前应用的虚拟目录  /项目名
        getQueryString() ; //返回请求行中的参数部分 username=zs
    请求消息头
          * String   getHeader(String name)  根据头名称得到头信息值
          Enumeration   getHeaderNames()  得到所有头信息name
          Enumeration   getHeaders(String name)  根据头名称得到相同名称头信息值
    请求正文
        *** getParameter(name) 根据表单中name属性的名,获取value属性的值方法
        *** getParameterValues(String name)专业为复选框取取提供的方法
                getParameterNames() 得到表单提交的所有name的名字
        *** getParameterMap 到表单提交的所有值的方法   //做框架用,非常实用
            getInputStream // 以字节流的方式得到所有表单数据   上传文件时使用
    Request域对象
        *** void setAttribute(String name, Object value);
        *** Object getAttribute(String name);
        Void removeAttribute(String name);
    转发
        getRequestDispatcher(String path)
        *** forward(request,response) //转发的方法
    编码相关
        ****request.setCharacterEncoding("UTF-8"); //告诉服务器客户端什么编码,只能处理post请求方式

        String name = new String(name.getBytes(“iso-8859-1”),”UTF-8”);

转发与重定向的区别:







评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值