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

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方法关闭该输出流对象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值