request和response

来源:互联网 发布:高铁抢票用什么软件 编辑:程序博客网 时间:2024/05/16 10:16

response代表响应

响应首行  协议/版本号  状态码  状态码描述

   void setStatus(int sc)  只设置状态码

   void setStatus(int sc, String sm)   设置状态码和描述
   void sendError(int sc) 只设置状态码,错误的

    void sendError(int sc, String msg)  设置状态码和描述

响应头  key:value

   添加响应头:

   void setHeader(String name,String value)设置响应头,如果key一样会覆盖

           setIntHeader(String name,int value)

           setDateHeader(String name,long date)

   void addHeader(String name,String value) 设置响应头,无论如何都新增

   void addIntHeader(String name, int value)
   void addDateHeader(String name, long date) 

响应空行

响应正文

        发送字节流
            getOutputStream
        发送字符流
            getWriter


实现重定向:response.setRedirect("http://www.baidu.com");

通过访问Servlet向浏览器传递一个图片

// 获取图片输入流InputStream is = getServletContext().getResourceAsStream("/WEB-INF/mm.jpg");// 获取浏览器的输出流byte[] buffer = new byte[1024];// 将图片篇输入流写出到浏览器中int len = -1;while((len = is.readBuffer(buffer)) != -1){    os.write(buffer, 0, len);    os.flush();}

request  封装了浏览器发送来的请求信息

请求首行  请求方式  请求路径  协议/版本号

        request.getMethod(): GET
        request.getRequestURI(): /request/AServlet
        request.getServletPath(): /AServlet
        request.getContextPath(): /request
        request.getScheme(): http

请求头

请求空行

请求正文 : 键值对


获取表单提交的参数

1.GET

   乱码问题:确保编码和解码一致

      浏览器负责编码

      服务器负责解码,默认使用ISO-8859-1,可以设置server.xml添加属性URIEncoding="UTF-8",会影响整个服务器

2.POST

    解码:request.setCharacterEncoding("UTF-8");


获得表单参数的方法:String getParameter 根据键获得值


request的请求转发和包含功能


转发和重定向对比:

   1.转发不会改变地址栏,重定向会

   2.转发是请求一次,重定向请求两次

   3.转发过程中只有一个request对象产生,重定向两个

   4.转发不能转发到站外,重定向可以发送到站外

   5.重定向的第二个请求方式是get;转发中第二个取决于第一个


request域的应用

  原理:在request中有一个map

  操作:
        1.setAttribute  存入一个键值对
        2.getAttribute  通过键取出值
        3.getAttributeNames 获得域中所有键
        4.removeAttribute 跟据键移除一个键值对   
  范围:一个request对象对应一个request域

原创粉丝点击