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