转发和重定向的区别
重定向response.sendRedirect("success.jsp");
转发:request.getRequestDispatcher("success.jsp").forward(request,response);
第一段:跳转到新页面,并且是在新窗口中打开页面:
function openHtml()
{
//do someghing here...
window.open("xxxx.html");
}
window是一个javascript对象,可以用它的open方法,需要注意的是,如果这个页面不是一相相对路径,那么要加"http://",比如:
window.open("");
第二段:在本页面窗口中跳转:
如果直接使用location.assgin()也可以,但是window.location.assign()更合理一些,当前窗口的location对象的assign()方法.
另外,location对象还有一个方法replace()也可以做页面跳转,它跟assign()方法的区别在于:
replace() 方法不会在 History 对象中生成一个新的纪录.当使用该方法时,新的 URL 将覆盖 History 对象中的当前纪录.
说说servlet里面的方法:
public void?ValidateUserPass(String user,String pass){
RequestDispathcher?rd =null
//假使你的代码是从DB中获取
DBFactory?db=DBFactoryImpl.getDBFactoryInstance();//得到数据库链接
flg=db.findUser(user,pass);
//?这里是不存在用户
if(flg.hasNext()==-1){
//?登录时错误了,一般我们会给用户一个提示
session.setAttirbute("msg","对不起,用户名或密码错误");
RequestDispathcher?rd?=?req.getRequesDispatcher("login.jsp");
rd.forward(request,?reponse);//将请求对象和响应对象传递进来
}?//?这里是存在当前用户
else{
//当然这里登录成功时,我们要把当前用户写到session里面保存
session.setAttirbute("userName",user);
//这个请求转发语句
request.sendRedirect("index.html");
form
............
/form
====分割线====
而转发和重定向的代码是写在后台代码里的,因为并不是所有的业务都由同一个后台页面处理(例如统一管理平台),前端form填的是页面A,但实际上页面A在接收到form后并不进行处理,而是通过转发或者重定向的方式,发送给页面B,页面B处理后会把结果发送给A,然后A再反馈给前端.所以呢,这属于服务器向服务器发起请求
至于怎么判断啥时候使用转发,啥时候使用重定向,还请理解jsp的四大作用域之后再回头思考.
以上就是土嘎嘎小编为大家整理的java重定向跳转代码相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!