原理图
转发
登录页面login
<body>
<%
String userName = request.getParameter("userName");
String msg = (String)request.getAttribute("msg");
if(msg==null)
msg = "";
%>
<form action="login2.jsp" method="post">
用户名:<input type="text" name="userName" /><br/>
密码:<input type="password" name="pwd" /><span style="color:red"><%=msg %></span><br/>
<input type="submit" value="登录" /><br/>
</form>
</body>
转接页面login2
<body>
<%
String userName = request.getParameter("userName");
String pwd = request.getParameter("pwd");
if("admin".equals(userName) && "123456".equals(pwd)){
response.sendRedirect("success.jsp");
}else{
request.setAttribute("msg","密码错误");
request.getRequestDispatcher("login3.jsp").forward(request, response);
}
%>
</body>
在登陆页面随便输入账号密码后会跳转到第二个页面
点击登录以后跳转到login2.jsp页面,并输出错误提示,这是转发,只有1次请求
重定向
打开登录页面,输入用户名:admin和密码:123456
点击登录以后跳转到login2.jsp页面,判断账号密码是否正确
login2.jsp判断后跳转到success.jsp登录成功页面,这是重定向,有2次请求