转发(注意路径是相对于web站点根目录):
request.setAttribute(“name”, “xiaomapiwaer”);
request.getRequestDispatcher("/index.jsp").forward(request, response);
重定向(路径是相对于webapps,):
response.sendRedirect("/WebDemo/MyHtml.html");
1.重定向带参数:
response.sendRedirect("/Jsp2/test.jsp?test=lanhaoren");
2.带中文参数:
在servlet中:
String test = URLEncoder.encode(“烂好人”, “UTF-8”);
System.out.println(test);
response.sendRedirect("/Jsp2/test.jsp?test="+test);
在jsp中:(现在jsp中不用转了,以前需要转)
<% String test = new String(request.getParameter(“test”).getBytes(“iso8859-1”),“utf-8”);
%>
欢迎<%=test%>
servlet中 :URLDecoder.decode(request.getParameter(“infor”), “utf-8”)
转发和重定向的区别:
转发地址不会发生变化
重定向相当于请求了两次(产生了两对request和response)
重定向的地址会变化
ServletContext可以转发,但是很容易产生安全问题,所以以后再实际开发中一般都用request实现转发。