学习JavaWeb之Servlet_Response

来源:互联网 发布:淘宝好评怎么走返利 编辑:程序博客网 时间:2024/05/21 17:07

  之前看了Request对象,接下来我们来看下与其相对应的Response对象。

1)关于HttpServletResponse 

  HttpServletResponse,继承自ServletResponse,主要用于将经过处理后的数据发送至服务器,其实现也是基于Http协议,跟Request一样,为了提高开发的效率,将原生的Socket方式进行了封装,形成这比较方便好用的HttpServletResponse。

2)HttpServletResponse的常用方法
  Response中也包含了大量的方法,不过有一些方法并不常用,所以我们这里就不进行介绍,需要的话查看官方的文档即可,下面介绍一些比较常用的方法:

addHeader() // 添加一个响应头信息setHeader() // 设置一个响应头信息addIntHeader() //设置一个整型类型的头信息setStatus()  // 设置状态码sendError() //发送错误状态码addCookie() //添加一个cookie(后面相关部分介绍)getOutputStream() // 获取输出流getWriter() // 获取一个PrintWritesetContentType() // 设置该文件的MIME类型

下面介绍一下常用方法的具体使用

3)getWriter()

  该方法放回一个PrinterWrite 类型的对象,用于向浏览器输出数据,例如输出HTML代码,相关的信息等等

PrintWriter writer = response.getWriter();writer.write("Hello Servlet");
也可以直接输出格式化的HTML代码( 输出后的代码会被浏览器进行解析 )

writer.write("<html><body>Hello World</body></html>");

4)setContentType()

  当然,为了能够浏览器能够正常解析响应的内容,例如HTML代码,中文字符等,所以需要对输出的内容以及编码方式进行设置,通常的做法就是根据所要输出的文件的MIME类型进行指定,编码方式一般都是设置为utf-8,那么为了正确解析上面的HTML代码,我们可以进行这样的设置

response.setContentType("text/html;charset=utf-8");
而且该设置必须在写出之前进行设置,也就是在调用write方法之前调用,具体的原因是因为write方法一旦获取得到数据,便会马上将其输出到浏览器,所以,必须在调用该方法之前进行ContentType的设置

5)getOutputStream()

该方法是打开一个输出流,主要是用于将文件、图像、音频等等这些非文本类型的数据输出,当然输出的时候同样需要设置ContentType类型

<span style="white-space:pre"></span>response.setContentType("text/html;charset=utf-8");<span style="white-space:pre"></span>FileReader file = new FileReader(getServletContext().getRealPath("/form.html"));<span style="white-space:pre"></span>char[] buffer = new char[2048];<span style="white-space:pre"></span>file.read(buffer);<span style="white-space:pre"></span>BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(response.getOutputStream()));<span style="white-space:pre"></span>bw.write(buffer);
  这里有一个需要注意的地方就是,获取指定文件的时候,由于是部署之后的文件的地址,所以需要使用getServletContext.getRealPath("url");来获取工程中的问价,具体原因目前还不太了解,正在学习中。


0 0
原创粉丝点击