---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
RequestDispatcher的forward方法称作请求转发。而resp.sendRedirect()是重写向。
下面是重定向的例子以及重定向与请求转发的区别:
public class Forward extends HttpServlet
{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException
{
String username = req.getParameter("username");
//RequestDispatcher rd = req.getRequestDispatcher("oneday/sendRedirect.jsp ");
req.setAttribute("user", username);
//rd.forward(req, resp);
resp.sendRedirect("oneday/sendRedirect.jsp");
}
}
<body>
sendRedirect:<br>
<%=request.getAttribute("user") %>
</body>
请求转发的结果:
sendRedirect:
aaa
重定向的结果:
sendRedirect:
null
上面的两种结果还可以从得到的对象可得,一个是从request对象得到的,一个是从response对象得到的,因为响应一旦调用这个请求就结束了。
重定向是向客户端返回应该访问哪个页面,然后客户端收到响应之后就去发送另一个请求。
Js的小验证:
<script type="text/javascript">
function a()
{
var username = document.getElementById("username");
var password = document.getElementById("password");
var repassword = document.getElementById("repassword");
if(username.value == "" || username.value == null)
{
alert("用户名不能为空");
}
if(password.value == "" )
alert("hehe");
if(password.value.length < 6)
alert("66");
return false;
}
function b()
{
alert("hehe");
return false;
}
</script>
首先获得值要通过value这个属性获得,然后可以得到其长度,也就是说通过byId获得的相当于一个对象,然后可以通过对象获得相应 的属性和方法。
也可以这样获得:document.getElementsByName(“username”)[0];因为这返回的是一个List。所以可以相数组一样获得其相应 的元素。