目录
3.getWriter( ) 和 getOutputstream( ) 的区别
在servlet中HttpServletResponse对象有两种方式可以进行数据的回送。
1. getWriter( )方法
package com.servlet;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class shenruliejieServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");//设置编码格式,以防浏览器端出现中文乱码
PrintWriter printWriter = response.getWriter();//创建输出流
printWriter.println("hello<br>");
printWriter.println("<h1>这就是一个大表头,你们觉得大不大</h1>");
}
}
以上就是HttpServletResponse对象的getWriter( )方法的使用,其返回的是一个PrintWriter对象
2.getOutputStream( )方法
package com.servlet;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class shenruliejieServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
//this.getServletContext().getRealPath("/"); // 获取 服务器中当前WebRoot的物理路径
OutputStream outputStream = response.getOutputStream();
String realPath = this.getServletContext().getRealPath("zhenxiang.PNG");//使用this调用HttpServlet的getServletContext( )方法
System.out.println(realPath);
InputStream in = new FileInputStream(realPath);//通过文件的绝对路径名来创建输入流FileInputStream对象
int len = 0;
byte[] buffer = new byte[1024];
while ((len = in.read(buffer)) > 0) {
outputStream.write(buffer, 0, len);
}
for(int i=0;i<buffer.length;i++){
System.out.println(buffer[i]);
}
}
}
以上是使用getOutputStream( )方法回送的图片信息这种字节数据;
3.getWriter( ) 和 getOutputstream( ) 的区别
getWriter( ) 和 getOutputStream( )的区别其实本质上是:java输入输出系统中PrintWriter对象和OutputStream对象之间的区别。
getWriter( ) 方法得到的是PrintWriter对象,其用来向客户端回送字符数据;
getOutputStream( ) 方法得到的是OutputStream对象,用来向客户端回送字节数据,当然它也可以传送字符数据。如下:
public class shenruliejieServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
OutputStream outputStream = response.getOutputStream();
outputStream.write("hello world".getBytes());//先将字符串解码成字节序列
}
}
4.两种方法向浏览器回送数据的原理和过程