(5A)HttpServletResponse:getWriter和getOutputStream()、sendRedirect()、session(简单理解)、文件下载、页面缓存

一、getWriter()、getOutputStream()向客户端输出数据
这里写图片描述
getWriter:只能会送字符流
getOutputStream:可以会从字符流和字节流(二进制)

PrintWriter out = response.getWriter();
        out.println("hello world");

        //OutputStream也可以输出字符流
        OutputStream os=response.getOutputStream();
        os.write("hello ".getBytes());

如何选择:如果会送字符数据,则使用PrintWriter对象,效率高
如果需要回送的字节数据,则只能选择OutputStream
注意:PrintWriter和OutputStream不能在一个servlet中同时使用
否则报错:java.lang.IllegalStateException: getWriter() has already been called for this response
解释如下:
这里写图片描述
从该图可以看出:为什么有时流不关闭,程序也没有问题(服务器给关了)

二、sendRedirect()方法:将信息传递给下一个页面
①语法:sendRedirect(“welcome?uname=xiaoming”);
welcome代表你要跳转的那个servlet的URL
servlet URL名与变量之间要有?
如果要传递参数两个以上,他们之间要用&分开
response.sendRedirect(“welcome?uname=xiaoming&pass=111”);
新页面的URL:http://localhost:8080/UserManager1/MainFrame?uname=admin
优点:传递信息的速度比较快
缺点:它只能传递字符串,而不能传送一个对象
也可以用session传递信息,可以传递对象(后面讲)
接收端:String 参数=requst.getParameter(“参数名”);
String uname=request.getParameter(“uname”);
案例:在web网页中显示登陆用户的姓名

session简单理解:
这里写图片描述
request.getSession().setAttribute(“loginuser”, username);

三、文件下载Content-Disposition
讲解:在servlet类别中(4)中响应头中②

四、页面缓存
讲解:在servlet类别中(4)中响应头中③

posted @ 2017-08-27 21:16  测试开发分享站  阅读(126)  评论(0编辑  收藏  举报