Servlet自学第16讲:HttpServletResponse对象详解
来源:互联网 发布:vb.net asp网站实例 编辑:程序博客网 时间:2024/05/21 10:18
getWrite和getOutputStream方法的区别
用户没发出一次http请求,都会创建一个代码请求的对象和代表响应的对象。
HttpServletResponse中getWriter()与getOutputStream()的区别:
- getWriter() 用于向客户机回送字符数据
- getOutputStream() 返回的对象,可以回送字符数据,也可以回送字节数据(二进制数据),例如:
OutputStream os=response.getOutputStream();os.write("hello,world".getBytes());
我们怎么选择呢:如果我们是回送字符数据,则使用 PrintWriter对象 ,效率高;如果我们是回送字节数据(binary date) ,则只能使用 OutputStream 这两个流不能同时使用.
比如:
OutputStream os=response.getOutputStream();
os.write(“hello,world”.getBytes());
PrintWriter out=response.getWriter();
out.println(“abc”);
就会报错:
java.lang.IllegalStateException: getOutputStream() has already been called for this response
不能同时使用printWriter和outputstream的原因
Web服务器会自动检查并关闭流
从该图,我们也可以看出. 为什么我们没有主动关闭流,程序也没有问题的原因.
当然:你主动关闭流,更好。
sendRedirect()方法
该方法不仅可以实现重定向,而且还能携带数据给下一个页面,思考,使用所学知识实现数据的携带:
- 使用static方法
- 使用sendRedirect()方法(但是不能传递对象)
response.sendRedirect("/UsersManager/MainFrame?uname="+username+"&pwd="+password);
说明:
基本格式:
response.sendRedirect(“servlet的地址?参数名=参数值&参数名=参数值…”),这就相当于又执行了一次get的http请求。
参照值是String , 参数名应当使用 字母组合。
在接受数据的Servlet中: String 参数=request.getParameter(“参数名”)
3. 使用session 传递[后面讲]
这里,我们先预热.
A.传递字符串
放入session :
request.getSession.setAttribute("loginUser",username);
取出session 在JSP中通过session取出
request.getSession.getAttribute("loginUser");
B.传递对象
User user= new User();user.setName(“xiaoli”);user.setPassWord(“123”);
放入session
request.getSession.setAttribute("userObj",userObj);
取出session
User user=(User)request.getSession.getAttribute(“userObj”);
其中session在tomcat中相当于一张可供tomcat中web应用共享的表,如图:
- Servlet自学第16讲:HttpServletResponse对象详解
- Servlet自学第28讲:ServletContext详解
- Servlet自学第15讲:http响应详解
- Servlet自学第20讲:分页技术详解
- Servlet自学第23讲:Session会话技术详解
- Servlet自学第7讲:Servlet简介
- Servlet自学第8讲:Servlet生命周期
- Servlet自学第12讲:Servlet的load-on-startup元素及ServletConfig对象
- Servlet自学第0讲:开山篇
- Servlet自学第1讲:web入门
- Servlet自学第11讲:Servlet细节讲解
- Servlet自学第22讲:servlet会话技术介绍
- Servlet自学第3讲:Tomcat简介与配置
- Servlet自学第5讲:Tomcat目录结构
- Servlet自学第6讲:Tomcat虚拟目录的管理
- Servlet自学第14讲:深度剖析http请求
- Servlet自学第17讲:中文乱码处理
- Servlet自学第18讲:获取浏览器html参数
- BNUOJ 1010 Deli Deli
- linux shell的一些技巧(一)使用{X..Y}以及${!XXX}
- XSLFO BLOCK
- (9-4)词库分词
- c++程序设计——实验2
- Servlet自学第16讲:HttpServletResponse对象详解
- java 线程(二)
- Android Bound Service(二) ----- Using AIDL
- Windows 驱动开发 - 1
- c++程序设计——实验1
- 操作系统引论
- Tigase XMPP Server在CentOS部署与配置
- ubuntu下配置tomcat
- 【shell点滴】参数变量