Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。
request和response对象即然代表请求和响应,那我们要获取客户机提交过来的数据,只需要找request对象就行了。要向客户机输出数据,只需要找response对象就行了。

一、HttpServletResponse对象介绍

  aaarticlea/png;base64,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" alt="" width="950" height="329" />

  HttpServletResponse对象代表服务器的响应。这个对象中封装了向客户端发送数据、发送响应头,发送响应状态码的方法。查看HttpServletResponse的API,可以看到这些相关的方法。

1.1、负责向客户端(浏览器)发送数据的相关方法

  aaarticlea/png;base64,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" alt="" />

1.2、负责向客户端(浏览器)发送响应头的相关方法

  aaarticlea/png;base64,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" alt="" />

  aaarticlea/png;base64,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" alt="" />

1.3、负责向客户端(浏览器)发送响应状态码的相关方法

  aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAb4AAAAxCAIAAAAqflsHAAAET0lEQVR4nO2c0XWrMAxAPVcGYh5GyBSZ4m3AEmxAP5qeR4wlS8aAaO89/UiMkIXBtzg0TUsY5nl+Pp9XVwEAUCfNAADgJD3DMM/z1SUAAJhIV9/2/mdmwQ4ANwF1AgC4QZ0AAG5QJwCAG9QJAODmNHVO4+MxTuuW15A+WlAnANyFK+86p3FAnQBwR1DnxaQU4jOTIGUA3IU+E+Y1pJQe4zSNj5Qe47RM4yOl77b19nf4z9YTF+xp+Lf+OagXL1thXagw7Algp9dsed9BTuP4WpZpfAyvdfPHq+U1fG894q6zaMZ1YxbgNWlf8zbb6gjNoU4AO/1my2sYXm8pRlanfVOXeC3VDlUdpDnsCWCk41RZP0MvLdhTSunHme8F+8eSvahOaaG9bcwiM8FJLXq8Jf/6rV5n3sWnp35GJGUt6xfrsCxYohgsZUCdAEYCTZWtOqWFdtsC3KjUhvwNdS6Cp4o+3W4yOq64i5IHdQIYCTRV9LvOYqN0l6f00qDaZnVK9b832dRZfa3jurVEnQBGAk0V5bNOr++UXoypsjW4Hq/fXYqNp6jTtS/qBDASaKoct2C/Kr6u1NofJ+1Up2vBjjcB7ASaLZI6q2v2LI/rWU0xfrtLdQ1ejNf7XTbmyp7eZE9ypIdICsrjIJ4RAewh0Gzh20QXEqQMgLsQaML8TXUCwB2Jq87tEvh3/Fw4wgDQi7jqBAAIC+oEAHCDOgEA3KBOAAA3qDMW3v/ucXQlFxZwL7oM15mnXu+Fs18l0Oigzmh/o355Afdi53Cd/80u1LmHQKODOtvU2esSr34r9CD2fB8/FB3VeQRXnd/fSqCxQ51tlzLqDALq/FMEGjvUuchXc/FTMOWDUddnplJwKn2VXqnH24WxfkuSLKZtHLJdjMdbLdXeoyXP+q2xCyV5MYmS1j6eep1Skm3+7Qspft0iHYUyFJaD+khljDsB1PlN8Xzb31oCpH71StZXpyt/3/rt8Q3j4D3eLuMjhen9St258kvH4q1H6XRbp/d8SQdrid/Trw7qDIr0K7Eq1mKLt8diS3Zp2n9R6wHS1ubj9TrFUoklf/P4SL0blW3Eq8Iu11VxF2l8Oo6/pb1ajw7qjItRAdWr09ud1NKsJL0eqf5qGZYA1zgcNHWNxFfn4r+uqifXkr+XOo35jaDOQLRNxeqJb77K+6qhmtYY4I2vtnt3/MvqdAVIMd4LsqM6LfFGUGcg2i6FZpXoezXXU818qDrXNxQN41DUk0VhO/sthkVT587xrOaxtB9xN6q0K8eIOgORPpE2STta8lgKyJLob43zx1X/dpfi1mL8emvbOHjHf9uvHq/0aOm37aCyUreHuR3AbReurvVgV35Xnobj0usRD1A//jNBnQCwparpSwhUE+oEgAzjTe75BCoIdQLAXUCdAABuUCcAgBvUCQDgBnUCALhJMwAAOEnPMMzzfHUJAAAmWLADALhBnQAAbr4AWdWpW2F4mXgAAAAASUVORK5CYII=" alt="" />

1.4、响应状态码的常量

  HttpServletResponse定义了很多状态码的常量(具体可以查看Servlet的API),当需要向客户端发送响应状态码时,可以使用这些常量,避免了直接写数字,常见的状态码对应的常量:

  状态码404对应的常量

  aaarticlea/png;base64,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" alt="" />

  状态码200对应的常量

  aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnMAAAAyCAIAAAC4Scq5AAAFcElEQVR4nO3bwXmjPBCHcdVFQVTzHVxCqvBha/g6cAN7TAfag50YC81oRggbiff37MHGQoyE4B+TbIgxfn9/f319xa70WDMA4AxC7DOleqwZAHAGj2QFAABNPL+z9qXHmgEAZ8DTYAAAWiJZAQBoiWQFAKAlkhUAgJZIVgAAWtovWW+Xabrc9mgcI8kKADgqT7LeLrOSfvqnW+R6JlkBAMfkSdbrrH2v1D/dItczyQoAOCYlWW+XKYQQQpgutxivc1i8e34Y5mtcfXp/v8jDn8+z4fvS+DqHaZrknh+yNYf5/+W/4nZxUuQe/vvz194PAOCE1GRNHsK+bviJvPmab754X/46u2h8u0zz9WWT7WnwMu0sryW/bbLhauwEAHBa6tPgxxfTaZ1wP/EXr7MpWX8aSV66nh/fiuuTVd+okNI0vn7xtXcIADgbOVmfz3ufyTqtH9Kmz4d/Anf5rDh9dpx4aXyd7y8Wj4hfen5QngbrWwrTYUhWe28AgBMa7f+zJvnHd1YAwJuNlqx31b8TJVkBABuRrPkd12/5CyYAgMU4ycrfBgMAjmC0ZM0+sPU+yOX/swIAqo2TrAAAHMFJkzX5gst3UABAK4MkazYp3/DvgzMAADimQZIVAICDIFkBAGiJZMUphBAO3iGAYZCsGN9OKUi4AsgiWTsWXn26nPaajGvdgzJp0hGV7a5K6oaT7Lj36X7/chp1AQ/Ge5qOfFr1O0CD207sM6V6rLmt5NwfdgVv1DxZlbe/r6U22evQVUn1cMZO1jjuAh6M9zQd/LRK5ZGs52UPjIrejmNjYcUs9KbpxnCtNtgD7U9N46cMM7phbix3JGuqx5rb0s/9MBcAybrrUUjW9xhmdMPcWO5I1lSPNTen/EYw+9uC7PZs+2wbyyGUUo31GEu1HDR6fv7YO1mVGZA+jbkh6zNgn2fpJFbUKXWlV7g+rqv+4vD1IStVLcebDF/vJzs01+RIu+j1ZAerbLfUr89PXXtppPY613OSvK6oUyosW0n2bb6H2GdK9VjzHqQTXFxD+lulQXFHvRhLP972xkMbC/Me11iJsntx7JYypPbe8+6tUylSUde/8RDJTbDYj+u4deukemaq65det+q/op6sivOun9/kRcP1b9nx2SD2mVI91rwf++0+LLh6kFZ8RW2u/pfbE1uOrhzIWI/lEJZ6Wt2p9TLs531LndX5offvPe/ZNlI/rdZhcf6LZestvdej5Q6Q1O+dH1d7iXf+pT7XOya7ZNePa/aM5/rRJvaZUj3WvCvLilFW57q9vrKzy9RSWLF/7x2kydEr6ikeYtfjuspwnXdvnXGxHqQCtvRfcd6Li7/iuJZ6lOvCOznrfrz17LTde9wjJGuT9a/Ulu8h9plSPdbc1sY778b2xe3eHXdK1uyOljtvdcJtLKZ5stbVv2vy7d3/p5LV0q1XdT0k6/1Fq/UvdSghWXv1zmRd/vhcccvIXhWWK2fjcS07umqz55mxGHs9luF751nqp6LOX9netvS/cb0V+5dee9d/3Tzb65TqsYzFUmfD61FZt2sdJWsUrsR8PbHPlOqx5rbCK6mBsktxiSybJS8q7qR6PVLxycXsPe7vjtmDOq4ToUhXDeuD6m9jbh70+S/Oc3HI3jrXvbkmxDIPynil4euTY/woGaZej37oKC8t+xCkeqJw3qXtxf6lfizzoLRXBqu/zW6Rhr98kd1r2UzpShqXNNJ0e+wzpXqsGR+kXN4H6bBTYXV3/lQlTfReP3ZlXx4kK4BNlJ/x+zLGKNBcxcIgWQEAaIlkBQCgJZIVAICWSFYAAFoiWQEAaOmRrAAAoInnd9a+9FgzAOAMeBoMAEBLJCsAAC39A9NvXyLcP1dwAAAAAElFTkSuQmCC" alt="" />

  状态码500对应的常量

  aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA/MAAAAxCAIAAAAZVm7WAAAJJklEQVR4nO2cMY7jNhiFdS7fIdfwKfYIKabYKtV0aRcpXKRMGWyT2u0WQYAgcwOm8IxHFsmf7ycpy5S/D4tApqjHx1+k9NZrZAohvL29vb6+hqEY0TMAAAAAwHpMIYQ3AAAAAAAYnPdk/zoaI3oGAAAAAFiPz2S/8T8eOBnRMwAAAADAepDsAQAAAAD2AMkeAAAAAGAPkOwBAAAAAPYAyR4AAAAAYA+sl+zPL4fDy3mNziGQ7AEAAAAAbvEk+/PL0Ujf9tkWUsokewAAAACAOZ5kfzpa36vbZ1tIKZPsAQAAAADmGMn+/HKYpmmapsPLOYTTcZp9+jw5HU8hOnv5PMvjH+eT4f+m8+k4HQ6HvPI7Sc/T8fv8T7E9XZHbzpf+1+Ofvp5zp+xGo7OtP++QNGlPx65Ptc+ff/87ea2ooxdf9JPUL64EV/UAAAAAHhwz2S9+BHPb8BG5j6d099nn8tf5s87nl8PxdNOk/RonDnz2sU0uJv709Rxr/vbXf/NQXucnp2/7UebS4me947v5TIZ73Q8AAADAKJi/xnn/Yv4QJ+yP+B1ORynZf3TKcSN9fP9Xgfpkbzcq6Mn+evZyqjh0RbKfjt9//fNfI6HWzajFp32s6LT47JXmSfYAAACwJ/LJ/vP3Np/J/hD/SGb5+5yPwD//rc7ytzsLbjqfjpeD2U90bpTfMX6NY7eodUlJffn2Yzp+/+WPf1zJPpkyr38U/S7JPneJ1+fl1PXXOC06tkm9bnF7MdnrfgAAAABGYW//P3s74en0SvZ2EhX1eyX7ENWnwmcwk71Lx3ao1y3XOfmRWA8AAAB7ZW/J/kLue1+dXsk+ljLajWRfDK/Vs/P6DFXf2euGK+oWtxeTve4HAAAAYBRI9gWFecuXbz/CLGcvznp/Z59M9rG+ctwyO6/PUEr2uk7Rm6JDsgcAAAC4sJ9k3zcN90324nF1slfm1aKZnK/R8gg+i38TEP0AAAAAjMLekn0udifbkyx05unQDotxZBR1ct3mHcT/f7w+rzqfCzWjaKJOsfgVdYtnl7tT+qoAAAAAeHz2k+wBAAAAAJ6ZJ032Fd95D8Eo8xrFJwAAAMBA7CTZF3+pwh/+GH82XMkAAAAAvdhJsgcAAAAAeHJI9gAAAAAAe4BkD0/BNE0PLggAAADQCMke9s9KKZxwDwAAAA8FyX5gplu2ttOfLvNaKEwRyohGu8tJ3XQWF659u/e6nNamV92KOt1vUF/nV6l4ry32nd7e7u2RseeoV+AZamUgTr9vlbZapeK4xT6xTrJ/TsfQ36om9xzxYSHZj8oURdKtnKxK+7z0Qs0fbUq7117Lc2d+4drPL56PdfSqm6LT/Qb1EkzunXgH2e05nR3TJdnbOs/AnZP94rHcRXONcXN9kjpGfVztm7xHnnz9XyHZj4r95vOu74fdD43G9CwupvnGcF/NSqM87H0Hm7vti0Zl8blU9LP7hbpS/Qelyzcgd7h8q2r38rmVTi+2eh1vheNv+GHMlDyi577Y93iUJ1QRkv2qozzsfQcbkv3OINnPIdn3HZdkvw9I9k+B8U9gV3Kn7P7JPsoQhlXRj2hVGTTkd37STPJjMWG0VyB3NqSmbFdAr3PuJlb4zEkVSzFF6811f+3iKMdeHcVM3GifNYZWppxrLPqMRRSfir7+0WgXL8z5tOsz/5g7Nj4WdWyHIVXtnIgtm+wvmln4yQ3qradet6L4FK2B3LyMU8WKFce1dXK1ctWtwn881qLP4ipFx6hPTqeoHzfaZ+vqsHBS1BfFk1KGzuJU8sKiTnJqruIEkv3o5G5zcs3pH40OxQttM4qOt7849LUlqVk9X9GJ4sewpEy/om4587pPw6SivHhy6VL2+snZi9srdHRXQatb8WPSm37hej6TysZLyLvekiKKQvX97aVjm0we9Nrv3n1kzLG9PnX7Pbkech9d87W7iZfb/evq5nrUuOpjaN6/XXnO6HdhvedYcN7H3HGv/aLbfu8ZxkzJI3pej+I+n7cnX5b6k6LLs0/XX7wJcv69o7vGtQVdBamuc6MN/b63+HQ9kRd+vI8wYz3ok7LH9S715CV1+8il02Vf9NL3rlvRTxFDuXqdLDp7dRRlcf3r9anYR7mPuf1SrINSt4r5Vujk0NdhhY7SqK8Ecdxe+27t9mIdDLVG/dy61cUNHWVeih/bmKMyYcyUPKLnVVF2srF5XE+K9u1h6IvtIsWrqnemPoTrcnFclw3Xfff6DLP1kDOg+BGNKR1crx97XrYHZYi6fVS9Trr79Op7163oRxw6rmfLOmnUyfWM/xuLVO/3xn1UnLJSB6VuW83XpVan43rOGAeucXvtu7XbO75HXPpdHuaGjvc9bu8j/b2QFQljpuQRPfel8cnY2L/Y7r2wZSe4DDSOW/ciMfr3GrfXG7TRZ5G6+SoOi6dcb1zFgzJEXcFXfWOtqr/SevMivkGNdn1BOl63T5Dsuyz49ebrUqvTcT1njAPXuL323drtozzHcpfcOc9U540pjJmSR/Tcl3sm+2maqhNYLFXUmfdpGVcfSPTWnj9c9yVZB2Ncb51zOhU+ryTVFJ21E0muvUJHd2XoV9yXjvuil8+icq/1VqTCvzFE3T71+lSeRcYQFftd96MMqlzSa/3XPSdzuB4RXh1X3YwD17jxA7loaZP2Xu8Rr37Fc7LlfZEcV3luV+yLtM8wZkoe0XNfpltyHYxLkmeT/edni+PabnN+cuYXm8E77vXCopnFuEq7y0aybvbHkKqDXf9inXNnq33Gat5SFIdTdAzzRrtXR59UciKLulVbDbd3zWt1IWX7dOnr0zeuMnoqQ8cXxu12kUP+pe7VsZWVQtlD1BXcnpQ+aPKUMoTiM9diWEpeZZgx3BoKho63bvOP84M6/zm1ZP9N2u3pL+ZiFCGedVE/mOsnqZnr7D21mKbtxx46ROsz2y2MmZJH9Awboj8pthIclOonMgBsDhsWHoGdvUc290+yB4Am9O9CAOBxYNvC47Cb98gjzIJkDwAAAACwB0j2AAAAAAB7gGQPAAAAALAHSPYAAAAAAHuAZA8AAAAAsAfekz0AAAAAAAzN53f2YzGiZwAAAACA9eDXOAAAAAAAe4BkDwAAAACwB/4HZ/P4m6iYDEsAAAAASUVORK5CYII=" alt="" width="950" />

二、HttpServletResponse对象常见应用

2.1、使用OutputStream流向客户端浏览器输出中文数据

使用OutputStream流输出中文注意问题:

  在服务器端,数据是以哪个码表输出的,那么就要控制客户端浏览器以相应的码表打开,比如:outputStream.write("中国".getBytes("UTF-8"));使用OutputStream流向客户端浏览器输出中文,以UTF-8的编码进行输出,此时就要控制客户端浏览器以UTF-8的编码打开,否则显示的时候就会出现中文乱码,

  那么在服务器端如何控制客户端浏览器以以UTF-8的编码显示数据呢?可以通过设置响应头控制浏览器的行为,例如:

response.setHeader("content-type", "text/html;charset=UTF-8");

通过设置响应头控制浏览器以UTF-8的编码显示数据。

范例:使用OutputStream流向客户端浏览器输出"中国"这两个汉字

package gacl.response.study;

import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; public class ResponseDemo01 extends HttpServlet { private static final long serialVersionUID = 4312868947607181532L; public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
outputChineseByOutputStream(response);//使用OutputStream流输出中文
} /**
* 使用OutputStream流输出中文
* @param request
* @param response
* @throws IOException
*/
public void outputChineseByOutputStream(HttpServletResponse response) throws IOException{
/**使用OutputStream输出中文注意问题:
* 在服务器端,数据是以哪个码表输出的,那么就要控制客户端浏览器以相应的码表打开,
* 比如:outputStream.write("中国".getBytes("UTF-8"));//使用OutputStream流向客户端浏览器输出中文,以UTF-8的编码进行输出
* 此时就要控制客户端浏览器以UTF-8的编码打开,否则显示的时候就会出现中文乱码,
      *那么在服务器端如何控制客户端浏览器以以UTF-8的编码显示数据呢?
* 可以通过设置响应头控制浏览器的行为,例如:
* response.setHeader("content-type", "text/html;charset=UTF-8");//通过设置响应头控制浏览器以UTF-8的编码显示数据
*/
String data = "中国";
OutputStream outputStream = response.getOutputStream();//获取OutputStream输出流
response.setHeader("content-type", "text/html;charset=UTF-8");//通过设置响应头控制浏览器以UTF-8的编码显示数据,如果不加这句话,那么浏览器显示的将是乱码
/**
* data.getBytes()是一个将字符转换成字节数组的过程,这个过程中一定会去查码表,
* 如果是中文的操作系统环境,默认就是查找查GB2312的码表,
* 将字符转换成字节数组的过程就是将中文字符转换成GB2312的码表上对应的数字
* 比如: "中"在GB2312的码表上对应的数字是98
* "国"在GB2312的码表上对应的数字是99
*/
/**
* getBytes()方法如果不带参数,那么就会根据操作系统的语言环境来选择转换码表,如果是中文操作系统,那么就使用GB2312的码表
*/
byte[] dataByteArr = data.getBytes("UTF-8");//将字符转换成字节数组,指定以UTF-8编码进行转换
outputStream.write(dataByteArr);//使用OutputStream流向客户端输出字节数组
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}

运行结果如下:

客户端浏览器接收到数据后,就按照响应头上设置的字符编码来解析数据,如下所示:

  aaarticlea/png;base64,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" alt="" />

2.2、使用PrintWriter流向客户端浏览器输出中文数据

使用PrintWriter流输出中文注意问题:

  在获取PrintWriter输出流之前首先使用"response.setCharacterEncoding(charset)"设置字符以什么样的编码输出到浏览器

注意:区别于:OutputStream的response.setHeader("content-type", "text/html;charset=UTF-8");如:

response.setCharacterEncoding("UTF-8");

设置将字符以"UTF-8"编码输出到客户端浏览器,然后再使用response.getWriter();获取PrintWriter输出流,这两个步骤不能颠倒,如下:

response.setCharacterEncoding("UTF-8");//设置将字符以"UTF-8"编码输出到客户端浏览器
/**
* PrintWriter out = response.getWriter();这句代码必须放在response.setCharacterEncoding("UTF-8");
* 之后,否则response.setCharacterEncoding("UTF-8")这行代码的设置将无效,浏览器显示的时候还是乱码
*/
PrintWriter out = response.getWriter();//获取PrintWriter输出流

然后再使用response.setHeader("content-type", "text/html;charset=字符编码");设置响应头,控制浏览器以指定的字符编码编码进行显示,例如:

 //通过设置响应头控制浏览器以UTF-8的编码显示数据,如果不加这句话,那么浏览器显示的将是乱码
response.setHeader("content-type", "text/html;charset=UTF-8")
;

除了可以使用response.setHeader("content-type", "text/html;charset=字符编码");设置响应头来控制浏览器以指定的字符编码编码进行显示这种方式之外,

还可以用如下的方式来模拟响应头的作用

/**
* 多学一招:使用HTML语言里面的<meta>标签来控制浏览器行为,模拟通过设置响应头控制浏览器行为
*response.getWriter().write("<meta http-equiv='content-type' content='text/html;charset=UTF-8'/>");
* 等同于response.setHeader("content-type", "text/html;charset=UTF-8");
*/
response.getWriter().write("<meta http-equiv='content-type' content='text/html;charset=UTF-8'/>");

范例:使用PrintWriter流向客户端浏览器输出"中国"这两个汉字

package gacl.response.study;

import java.io.IOException;
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 ResponseDemo01 extends HttpServlet { private static final long serialVersionUID = 4312868947607181532L; public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
outputChineseByPrintWriter(response);//使用PrintWriter流输出中文
} /**
* 使用PrintWriter流输出中文
* @param request
* @param response
* @throws IOException
*/
public void outputChineseByPrintWriter(HttpServletResponse response) throws IOException{
String data = "中国"; //通过设置响应头控制浏览器以UTF-8的编码显示数据,如果不加这句话,那么浏览器显示的将是乱码
//response.setHeader("content-type", "text/html;charset=UTF-8"); response.setCharacterEncoding("UTF-8");//设置将字符以"UTF-8"编码输出到客户端浏览器
/**
* PrintWriter out = response.getWriter();这句代码必须放在response.setCharacterEncoding("UTF-8");之后
* 否则response.setCharacterEncoding("UTF-8")这行代码的设置将无效,浏览器显示的时候还是乱码
*/ PrintWriter out = response.getWriter();//获取PrintWriter输出流
/**
* 多学一招:使用HTML语言里面的<meta>标签来控制浏览器行为,模拟通过设置响应头控制浏览器行为
* out.write("<meta http-equiv='content-type' content='text/html;charset=UTF-8'/>");
* 等同于response.setHeader("content-type", "text/html;charset=UTF-8");
*/
out.write("<meta http-equiv='content-type' content='text/html;charset=UTF-8'/>");
out.write(data);//使用PrintWriter流向客户端输出字符
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}

当需要向浏览器输出字符数据时,使用PrintWriter比较方便,省去了将字符转换成字节数组那一步。

2.3、使用OutputStream或者PrintWriter向客户端浏览器输出数字

比如有如下的代码:

package gacl.response.study;

import java.io.IOException;
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 ResponseDemo01 extends HttpServlet { private static final long serialVersionUID = 4312868947607181532L; public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { outputOneByOutputStream(response);//使用OutputStream输出1到客户端浏览器 } /**
* 使用OutputStream流输出数字1
* @param request
* @param response
* @throws IOException
*/
public void outputOneByOutputStream(HttpServletResponse response) throws IOException{
response.setHeader("content-type", "text/html;charset=UTF-8");
OutputStream outputStream = response.getOutputStream();
outputStream.write("使用OutputStream流输出数字1:".getBytes("UTF-8"));
outputStream.write(1);
} }

运行上面代码显示的结果如下:

  aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA50AAADICAIAAADk5RLEAAAgAElEQVR4nOy9eXQU153of/vNeX/83py3zJl5895v3kxmxo4dL5mA7Tgxv8QhLwkIDAJbjcFLkonNgONl4thggY2NJGOBkWwTIxsI8iYJEAhr65bUaqm1r72o933fV/VevUrA749bVV1VXd1akNdpnc/Rqaq+de+te29Vf/rbt6rBwAD3ypXL586d2f/cv+954te33LHun+/4Ac4td6y75Y51t9xJ4tY7191653oSdxFAN67Dt3z37nso3Hb3vTm+Twbdfs9td9/z3bvW57hz/XfvXPfdOwlb7oJZQQi53X3vbbCgu+6BaQjJiEXfc1texWgq+f3CYFkVzeQeYia3f//e279/HwYxq7zjheTlQC69SP3vhS1wK+TO9bdA7lj/z3esI3LLHetuwToRa1L8uDDwfDBuueueW+4kAbdjDZ5rOsLxlihRokSJEism96501z35UIWkxH8w9u/fd/jwoffee/ejjxovX24Fly+3NjScPnbszVvuWHf73evOftSMpBepZK4llgeSuUaz+9LAHen2TS0gqYU4AbhlOdnGUwvx9GK8eBpaUovxFGkLsao0KVEWYhik7bn01+K53a/hOcRQFmLJhVgyG0sukEgtxHJpCGAJopDEQjSBLWNbIomFSCIbRlBC8WwonoEEY5lgLBPEVkPxDEwTQffKEU4shJGFMJINQeLZUDwbzANuD6FlLYQTC5HEYo7k8kiUKFGiRIlvGsu8wi+DKB03m09qWdC/1dKSvhZD39BXCUImu3jt6b37Ftf674MPz6xthmf/sPaVXPXfk2W/XFi8du7j5u99f/2td61/4YXnT5yoPXfuLDh79sNjx9782//3H85/0uKNpBVOZNYUxeGbonxzTGiJC62I0IqIIDYSc1ZkzorMwVVrXGSNiSxxkTUutMSE5qjQHBGaIgJTRGCK8DEE5ojAHBVaokJLTGSNi6zxORsyZ43jiCxRoTkqNIcFxpDAGOIbQ3xjkG8MCowhgSksMEWE5qjIEhVZYyJrLLcXSkxgjvJNEb4xjBcHy8KLE0IsMYElxjdH+ejxRmZNkVkjhik6a47yzTG+JcY3xwSWON8SF1gRviU+a47NmmKzpuisMTpjjEwbwlP68BT8rw9P68NThsi0ITJtjM6YojOm2Kwp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" alt="" />

  运行的结果和我们想象中的不一样,数字1没有输出来,下面我们修改一下上面的outputOneByOutputStream方法的代码,修改后的代码如下:

/**
* 使用OutputStream流输出数字1
* @param request
* @param response
* @throws IOException
*/
public void outputOneByOutputStream(HttpServletResponse response) throws IOException{
response.setHeader("content-type", "text/html;charset=UTF-8");
OutputStream outputStream = response.getOutputStream();
outputStream.write("使用OutputStream流输出数字1:".getBytes("UTF-8"));
//outputStream.write(1);
outputStream.write((1+"").getBytes());
}

1+""这一步是将数字1和一个空字符串相加,这样处理之后,数字1就变成了字符串1了,然后再将字符串1转换成字节数组使用OutputStream进行输出,此时看到的结果如下:

  aaarticlea/png;base64,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" alt="" />

  这次可以看到输出来的1了,这说明了一个问题:

  在开发过程中,如果希望服务器输出什么浏览器就能看到什么,那么在服务器端都要以字符串的形式进行输出。

  如果使用PrintWriter流输出数字,那么也要先将数字转换成字符串后再输出,如下:

/**
* 使用PrintWriter流输出数字1
* @param request
* @param response
* @throws IOException
*/
public void outputOneByPrintWriter(HttpServletResponse response) throws IOException{
response.setHeader("content-type", "text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();//获取PrintWriter输出流
out.write("使用PrintWriter流输出数字1:");
out.write(1+"");
}
1+""的作用就是把数字转换成为字符串。

2.4、文件下载

  文件下载功能是web开发中经常使用到的功能,使用HttpServletResponse对象就可以实现文件的下载

文件下载功能的实现思路:

  1.获取要下载的文件的绝对路径

  2.获取要下载的文件名

  3.设置content-disposition响应头控制浏览器以下载的形式打开文件

  4.获取要下载的文件输入流

  5.创建数据缓冲区

  6.通过response对象获取OutputStream流

  7.将FileInputStream流写入到buffer缓冲区

  8.使用OutputStream将缓冲区的数据输出到客户端浏览器

范例:使用Response实现文件下载

package gacl.response.study;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.URLEncoder;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @author gacl
* 文件下载
*/
public class ResponseDemo02 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
downloadFileByOutputStream(response);//下载文件,通过OutputStream流
} /**
* 下载文件,通过OutputStream流
* @param response
* @throws FileNotFoundException
* @throws IOException
*/
private void downloadFileByOutputStream(HttpServletResponse response)
throws FileNotFoundException, IOException {
//1.获取要下载的文件的绝对路径
String realPath = this.getServletContext().getRealPath("/download/1.JPG");
//2.获取要下载的文件名
String fileName = realPath.substring(realPath.lastIndexOf("\\")+1);
//3.设置content-disposition响应头控制浏览器以下载的形式打开文件
response.setHeader("content-disposition", "attachment;filename="+fileName);
//4.获取要下载的文件输入流
InputStream in = new FileInputStream(realPath);
int len = 0;
//5.创建数据缓冲区
byte[] buffer = new byte[1024];
//6.通过response对象获取OutputStream流
OutputStream out = response.getOutputStream();
//7.将FileInputStream流写入到buffer缓冲区
while ((len = in.read(buffer)) > 0) {
//8.使用OutputStream将缓冲区的数据输出到客户端浏览器
out.write(buffer,0,len);
}
in.close();
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}

运行结果如下所示:

  

范例:使用Response实现中文文件下载

  下载中文文件时,需要注意的地方就是中文文件名要使用URLEncoder.encode方法进行编码(URLEncoder.encode(fileName, "字符编码")),否则会出现文件名乱码。

package gacl.response.study;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.URLEncoder;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @author gacl
* 文件下载
*/
public class ResponseDemo02 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
downloadChineseFileByOutputStream(response);//下载中文文件
} /**
* 下载中文文件,中文文件下载时,文件名要经过URL编码,否则会出现文件名乱码
* @param response
* @throws FileNotFoundException
* @throws IOException
*/
private void downloadChineseFileByOutputStream(HttpServletResponse response)
throws FileNotFoundException, IOException {
String realPath = this.getServletContext().getRealPath("/download/张家界国家森林公园.JPG");//获取要下载的文件的绝对路径
String fileName = realPath.substring(realPath.lastIndexOf("\\")+1);//获取要下载的文件名
//设置content-disposition响应头控制浏览器以下载的形式打开文件,中文文件名要使用URLEncoder.encode方法进行编码,否则会出现文件名乱码
response.setHeader("content-disposition", "attachment;filename="+URLEncoder.encode(fileName, "UTF-8"));
InputStream in = new FileInputStream(realPath);//获取文件输入流
int len = 0;
byte[] buffer = new byte[1024];
OutputStream out = response.getOutputStream();
while ((len = in.read(buffer)) > 0) {
out.write(buffer,0,len);//将缓冲区的数据输出到客户端浏览器
}
in.close();
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}

运行结果如下所示:

  

  文件下载注意事项:编写文件下载功能时推荐使用OutputStream流,避免使用PrintWriter流,

因为OutputStream流是字节流,可以处理任意类型的数据,而PrintWriter流是字符流,只能处理字符数据,如果用字符流处理字节数据,会导致数据丢失。

范例:使用PrintWriter流下载文件

package gacl.response.study;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.URLEncoder;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @author gacl
* 文件下载
*/
public class ResponseDemo02 extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
downloadFileByPrintWriter(response);//下载文件,通过PrintWriter流
} /**
* 下载文件,通过PrintWriter流,虽然也能够实现下载,但是会导致数据丢失,因此不推荐使用PrintWriter流下载文件
* @param response
* @throws FileNotFoundException
* @throws IOException
*/
private void downloadFileByPrintWriter(HttpServletResponse response)
throws FileNotFoundException, IOException {
String realPath = this.getServletContext().getRealPath("/download/张家界国家森林公园.JPG");//获取要下载的文件的绝对路径
String fileName = realPath.substring(realPath.lastIndexOf("\\")+1);//获取要下载的文件名
//设置content-disposition响应头控制浏览器以下载的形式打开文件,中文文件名要使用URLEncoder.encode方法进行编码
response.setHeader("content-disposition", "attachment;filename="+URLEncoder.encode(fileName, "UTF-8"));
= new;
int len = 0;
char[] buffer = new char[1024];
PrintWriter out = response.getWriter();
while ((len = in.read(buffer)) > 0) {
out.write(buffer,0,len);//将缓冲区的数据输出到客户端浏览器
}
in.close();
} public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}

运行结果如下:

  

正常弹出下载框,此时我们点击【保存】按钮将文件下载下来,如下所示:

  

可以看到,只下载了5.25MB,而这张图片的原始大小却是

  

这说明在下载的时候数据丢失了,所以下载不完全,所以这张图片虽然能够正常下载下来,但是却是无法打开的,因为丢失掉了部分数据,如下所示:

  

  所以使用PrintWriter流处理字节数据,会导致数据丢失,这一点千万要注意,因此在编写下载文件功能时,要使用OutputStream流,避免使用PrintWriter流,因为OutputStream流是字节流,可以处理任意类型的数据,而PrintWriter流是字符流,只能处理字符数据,如果用字符流处理字节数据,会导致数据丢失。

孤傲苍狼

只为成功找方法,不为失败找借口!

javaweb学习总结(七)——HttpServletResponse对象(一)

  Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象、和代表响应的response对象。
request和response对象即然代表请求和响应,那我们要获取客户机提交过来的数据,只需要找request对象就行了。要向客户机输出数据,只需要找response对象就行了。

一、HttpServletResponse对象介绍

  

  HttpServletResponse对象代表服务器的响应。这个对象中封装了向客户端发送数据、发送响应头,发送响应状态码的方法。查看HttpServletResponse的API,可以看到这些相关的方法。

1.1、负责向客户端(浏览器)发送数据的相关方法

  

1.2、负责向客户端(浏览器)发送响应头的相关方法

  

  

1.3、负责向客户端(浏览器)发送响应状态码的相关方法

  

1.4、响应状态码的常量

  HttpServletResponse定义了很多状态码的常量(具体可以查看Servlet的API),当需要向客户端发送响应状态码时,可以使用这些常量,避免了直接写数字,常见的状态码对应的常量:

  状态码404对应的常量

  

  状态码200对应的常量

  

  状态码500对应的常量

  

二、HttpServletResponse对象常见应用

2.1、使用OutputStream流向客户端浏览器输出中文数据

使用OutputStream流输出中文注意问题:

  在服务器端,数据是以哪个码表输出的,那么就要控制客户端浏览器以相应的码表打开,比如:outputStream.write("中国".getBytes("UTF-8"));使用OutputStream流向客户端浏览器输出中文,以UTF-8的编码进行输出,此时就要控制客户端浏览器以UTF-8的编码打开,否则显示的时候就会出现中文乱码,那么在服务器端如何控制客户端浏览器以以UTF-8的编码显示数据呢?可以通过设置响应头控制浏览器的行为,例如:response.setHeader("content-type", "text/html;charset=UTF-8");通过设置响应头控制浏览器以UTF-8的编码显示数据。

范例:使用OutputStream流向客户端浏览器输出"中国"这两个汉字

按 Ctrl+C 复制代码
按 Ctrl+C 复制代码

运行结果如下:

  

  客户端浏览器接收到数据后,就按照响应头上设置的字符编码来解析数据,如下所示:

  

2.2、使用PrintWriter流向客户端浏览器输出中文数据

使用PrintWriter流输出中文注意问题:

  在获取PrintWriter输出流之前首先使用"response.setCharacterEncoding(charset)"设置字符以什么样的编码输出到浏览器,如:response.setCharacterEncoding("UTF-8");设置将字符以"UTF-8"编码输出到客户端浏览器,然后再使用response.getWriter();获取PrintWriter输出流,这两个步骤不能颠倒,如下:

按 Ctrl+C 复制代码
按 Ctrl+C 复制代码

  然后再使用response.setHeader("content-type", "text/html;charset=字符编码");设置响应头,控制浏览器以指定的字符编码编码进行显示,例如:

1 //通过设置响应头控制浏览器以UTF-8的编码显示数据,如果不加这句话,那么浏览器显示的将是乱码
2 response.setHeader("content-type", "text/html;charset=UTF-8");

  除了可以使用response.setHeader("content-type", "text/html;charset=字符编码");设置响应头来控制浏览器以指定的字符编码编码进行显示这种方式之外,还可以用如下的方式来模拟响应头的作用

按 Ctrl+C 复制代码
按 Ctrl+C 复制代码

范例:使用PrintWriter流向客户端浏览器输出"中国"这两个汉字

按 Ctrl+C 复制代码
按 Ctrl+C 复制代码

  当需要向浏览器输出字符数据时,使用PrintWriter比较方便,省去了将字符转换成字节数组那一步。

2.3、使用OutputStream或者PrintWriter向客户端浏览器输出数字

比如有如下的代码:

按 Ctrl+C 复制代码
按 Ctrl+C 复制代码

  运行上面代码显示的结果如下:

  

  运行的结果和我们想象中的不一样,数字1没有输出来,下面我们修改一下上面的outputOneByOutputStream方法的代码,修改后的代码如下:

按 Ctrl+C 复制代码
按 Ctrl+C 复制代码

  1+""这一步是将数字1和一个空字符串相加,这样处理之后,数字1就变成了字符串1了,然后再将字符串1转换成字节数组使用OutputStream进行输出,此时看到的结果如下:

  

  这次可以看到输出来的1了,这说明了一个问题:在开发过程中,如果希望服务器输出什么浏览器就能看到什么,那么在服务器端都要以字符串的形式进行输出。

  如果使用PrintWriter流输出数字,那么也要先将数字转换成字符串后再输出,如下:

按 Ctrl+C 复制代码
按 Ctrl+C 复制代码

2.4、文件下载

  文件下载功能是web开发中经常使用到的功能,使用HttpServletResponse对象就可以实现文件的下载

文件下载功能的实现思路:

  1.获取要下载的文件的绝对路径

  2.获取要下载的文件名

  3.设置content-disposition响应头控制浏览器以下载的形式打开文件

  4.获取要下载的文件输入流

  5.创建数据缓冲区

  6.通过response对象获取OutputStream流

  7.将FileInputStream流写入到buffer缓冲区

  8.使用OutputStream将缓冲区的数据输出到客户端浏览器

范例:使用Response实现文件下载

按 Ctrl+C 复制代码
按 Ctrl+C 复制代码

运行结果如下所示:

  

范例:使用Response实现中文文件下载

  下载中文文件时,需要注意的地方就是中文文件名要使用URLEncoder.encode方法进行编码(URLEncoder.encode(fileName, "字符编码")),否则会出现文件名乱码。

HttpServletResponse对象(一)的更多相关文章

  1. java web学习总结(七) -------------------HttpServletResponse对象(一)

    Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象.request和response对象即然代表请求和响应,那我们要 ...

  2. JAVAWEB学习总结 HttpServletResponse对象(一)

    Web服务器收到客户端(浏览器)的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象,和代表响应的response对象. request和response对象既然代表请求和响 ...

  3. HttpServletResponse对象 学习

    Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象.request和response对象即然代表请求和响应,那我们要 ...

  4. JavaWeb---总结(七)HttpServletResponse对象(一)

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

  5. javaweb学习总结(七)——HttpServletResponse对象(一)

    Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象.request和response对象即然代表请求和响应,那我们要 ...

  6. 三HttpServletResponse对象介绍(1)

    转载自http://www.cnblogs.com/xdp-gacl/p/3789624.html Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象 ...

  7. java web 学习七(HttpServletResponse对象1)

    Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象.request和response对象即然代表请求和响应,那我们要 ...

  8. javaweb笔记6多个响应头以及 HttpServletResponse对象

    1 常见的响应头 Location: http://www.it315.org/index.jsp     重定向的地址.配合302的状态码一起使用,实现重定向效果. Content-Type: te ...

  9. HttpServletRequest对象请求转发和HttpServletResponse对象请求重定向之间的区别

    HttpServletRequest对象request代表浏览器请求对象,HttpServletResponse对象代表服务器响应对象,当用浏览器访问web服务器,发出请求时,Servlet调用ser ...

  10. javaweb学习总结(七)——HttpServletResponse对象(一)(转)

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

随机推荐

  1. Statistical Artifact (error)

    In natural science and signal processing, an artifact is any error in the perception or representati ...

  2. httpModules 不起作用 modules 不起作用 血泪经验

    本人也搜索了哏多解决方案.最后都没有解决... 劝您还会放弃把.. 如果非要用,劝您吧代码写到  Global.asax   里...(血泪经验)

  3. 【未解决】centos 6.4 xen4.2 在关机的时候很慢

    centos xen 在关机的时候 下面的关闭DomUs虚拟机 耗时很长... stopping xenconsoled daemon: [OK] sending shutdown to all Do ...

  4. CentOS 6和CentOS 7防火墙的关闭

    CentOS6.5查看防火墙的状态: 1 [linuxidc@localhost ~]$service iptable status 显示结果: 1 2 3 4 5 [linuxidc@localho ...

  5. ML、DL相关资源

    1. http://x-algo.cn/index.php/category/nlp/

  6. linux bash关闭标准输出1(exec 1<&-)后重新打开

    linux bash shell的再次学习. 文件描述符: stdin,stdout 和 stderr 的文件描述符分别是 0,1 和 2(一个文件描述符说白了就是文件系统为了跟踪这个打开的文件而分配 ...

  7. Fixing the JavaScript typeof operator

    https://javascriptweblog.wordpress.com/2011/08/08/fixing-the-javascript-typeof-operator/javascript 类 ...

  8. Intercepting a 404 in IIS 7 and up

      Lately I've been working on a system that needs to serve flat files, which is what IIS is very goo ...

  9. GPUImage API 文档之GPUImageOutput类

    GPUImageOutput类将静态图像纹理上传到OpenGL ES中,然后使用这些纹理去处理进程链中的下一个对象.它的子类可以获得滤镜处理后的图片功能.[本文讲的很少,由于有许多地方不清楚,以后会更 ...

  10. selenium之 chromedriver与chrome版本映射表(更新至v2.38)

    https://blog.csdn.net/huilan_same/article/details/51896672 看到网上基本没有最新的chromedriver与chrome的对应关系表,便兴起整 ...