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只存在于一次请求中。

posted @ 2014-10-26 20:32  meiyouor  阅读(342)  评论(0编辑  收藏  举报