关于Request的用法疑问
现在加入我有login.jsp、welcome.jsp个页面,a.jsp中有一个表单
<form name="info" action="ValidateServlet" method="post">
<h1>用户登陆</h1>
<hr/>
<table border="0">
<tr>
<td class="td1">用户名:</td>
<td class="td2"><input class="input" type="text" name="userName"></td>
</tr>
<tr>
<tr>
<td class="td1">密 码:</td>
<td class="td2"><input class="input" type="password" name="userPwd"></td>
</tr>
<tr>
<tr>
<td colspan="2" style="text-align:center"><input type="submit" value="确定" name="btnSubmmit"></td>
</tr>
</table>
</form>
然后有一个servlet叫做ValidateServlet.java,通过从数据库中读取 数据来验证用户是否存在,在doPost()方法中有如下代码:
String name=request.getParameter("userName");
String password=request.getParameter("userPwd");
request.setAttribute("pageNow", "1");
if(ubc.checkUser(name,password)){//红色代码为验证的方法,这里省略了
request.getRequestDispatcher("PageServlet").forward(request,response);
}
else{
request.getRequestDispatcher("login.jsp").forward(request,response);
}
处理完后跳转到另一个servlet (PageServlet.java)中再进行其他处理,最后跳转到welcome.jsp中去。
我搞不明白的是以下两点:
1、通过表单提交的数据(例如上面的userName)和通过request.setAttribute("pageNow", "1"); 设置的PageNow的生存范围有什么不同,当在多个页面之间传递时会不会有什么变化或者消失?
2、request.getRequestDispatcher("PageServlet").forward(request,response);和response.sendRedirect("PageServlet")有什么不同,该如何选择?以及通过这两中方法传递的Request中的数据的生存期有何区别(例如通过表单提交的userName分别用以上两种方法传递会有什么区别,通过request.setAttribute()传递的数据又有何区别?
不知道我的问题是否描述清楚,请各位高手赐教