Java Web转发和重定向问题

0x01:转发情况。转发过程中,只请求一次,request对象设置了之后会一直存在,直到下一次请求。

0x02:重定向情况。会发生两次请求,如果设置了request对象,那么重定向之后,request设置的值将不会存在,如下所示。


转发:

//设置转发过去的信息
			request.setAttribute("name", name);
			request.getRequestDispatcher("success.jsp").forward(request, response);

//接收servlet传过来的名字
    String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8");
    request.setCharacterEncoding("utf-8");

这样就能接受转发过去的用户名


重定向:

	//设置session,传递错误原因
			request.getSession().setAttribute("error", name_empty);
			response.sendRedirect("error.jsp");

 //接收session信息
      
       String error = (String)session.getAttribute("error");
       session.invalidate();

此时必须要设定session才能够接收到值,如果是使用
request.setAttribute("name", name);
//将不会接收到传过来的值,因为是两次请求,request只存在于一次请求中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值