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只存在于一次请求中。
每当夜深人静的时候,想想今天发生了什么,失去了什么,得到了什么,做了什么,没做什么,该做什么,不该做什么,明天要做什么!

浙公网安备 33010602011771号