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