您的位置:首页 > 编程语言 > Java开发

javaweb_09-response实现请求重定向和response的一些细节

2013-02-16 10:13 267 查看
09-response实现请求重定向和response的一些细节

response实现请求重定向和response的一些细节

注意:1+2 等效 3;

1,response.setStatus(302);

2,response.setHeader("location","/day06/index.jsp"); 3,response.sendRedirect("/day06/index.jsp");
* 重定向的特点: * 1,浏览器会向服务器发送两次,意味着就有2个request\response * 2,用重定向技术,浏览器地址栏会发生变化 * 3,用户登录 ** 用户登录和显示购物车时,通常使用重定向,一般情况下不使用,用forward.如下:
this.getServletContext().getRequestDispatcher("/message.jsp").forward(request,response);


response实现请求重定向

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
				System.out.println("ResponseDemo8");
					//response.setStatus(302);
					//response.setHeader("location","/day06/index.jsp");
				response.sendRedirect("/day06/index.jsp");
			}


response的一些细节

getOutputStream和getWriter方法分别用于得到输出二进制数据、输出文本数据的ServletOuputStream、Printwriter对象。

如果同时出现字节流和字符流

response.getOutputStream();

response.getWriter();

就会出现下面的异常:
java.lang.IllegalStateException: getOutputStream() has already been called for this response

getOutputStream和getWriter这两个方法互相排斥,调用了其中的任何一个方法后,就不能再调用另一方法。
Servlet程序向ServletOutputStream或PrintWriter对象中写入的数据将被Servlet引擎从response里面获取,Servlet引擎将这些数据当作响应消息的正文,然后再与响应状态行和各响应头组合后输出到客户端。
Serlvet的service方法结束后,Servlet引擎将检查getWriter或getOutputStream方法返回的输出流对象是否已经调用过close方法,如果没有,Servlet引擎将调用close方法关闭该输出流对象
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐