永发信息网

servlet无法跳转到jsp页面

答案:5  悬赏:10  手机版
解决时间 2021-03-01 22:59
RequestDispatcher dispatcher=request.getRequestDispatcher("/GoodsCar.jsp");
dispatcher.forward(request, response);
我把response.sendRedirect("login.jsp");放在第二句前面时,还可以跳转,但是放在第二句后面的时候,就不可以跳转了
最佳答案
首先要理解这两句话的意思
request.getRequestDispatcher().forward(request,response)这句话是把你的请求扔到了另外的服务上面了,像你上面这么写的话,就是把原来的请求扔给了GoodsCar.jsp去处理,如果你其他东西没有写错的话,页面应该会跳转到GoodsCar.jsp,而在这个jsp里面的request对象其实跟原来你的servlet里面的是同一个,servlet里面的request可以拿到的东西,这个jsp的request也可以拿到,因为它是servlet直接扔过来的,这个动作是由servlet发起的,所以客户端其实并不知道,留意一下你浏览器上面的url你就知道了,不管servlet里面forward到哪里去,你浏览器上面的url依然是这个servlet的地址,说明浏览器根本就不知道servlet已经把请求扔到别的地方去处理了。
response.sendRedirect()这句话是指示客户端重定向请求。客户端把请求发到servlet之后,servlet处理后给出来的响应是跟客户端说:“你去访问login.jsp吧”,然后客户端就会重新发送一个请求去login.jsp,但是这个请求跟之前发送给servlet的请求已经不是同一个。这个动作经历了三步,第一部是客户端发送请求到servlet,第二步是servlet返回相应,第三步是客户端重新定向请求。最后重定向的动作是由客户端发出的,所以你可以看到你的浏览器上面的地址是变了的。

最后解释一下你的问题,你把forward放在sendRedirect前面,servlet执行到forward的时候就已经把请求扔到别的地方去了,sendRedirect被活生生吞掉了。而如果你把sendRedirect放在前面的话,servlet执行到sendRedirect的时候,就已经把相应返回了,后面的forward也是被硬生生弄没了。如果你所有代码都写正确的话,那效果应该就是上述那样的,如果还是不行的话,我感觉就是你的路径写得有问题,仔细检查一下。
全部回答
dispatcher.forward(request, response); 已经跳转了啊
前两位的回答都比较明晰。 forward是服务器端跳转语句,看你的代码, dispatcher.forward(request, response);会跳到GoodsCar.jsp页面 而sendRedirect也是跳转语句,看你的代码,response.sendRedirect("login.jsp")会跳到login.jsp页面。 两个都是跳转语句,你说的把response.sendRedirect("login.jsp");放在第二句前面时,还可以跳转,是可以跳转到login.jsp页面;“放在第二句的后面,就不能跳转”这句话不对,如果放在第二句 的后面,会跳转到GoodsCar.jsp页面。 你能不能够理解?dispatcher.forward(request, response);和response.sendRedirect("login.jsp");都是跳转语句,执行任何一句,页面就会跳转了,下面的一句话当然不会执行了。
servlet使用requestdispatcher到jsp页面 string url="/eshop.jsp"; servletcontext sc = getservletcontext(); requestdispatcher rd = sc.getrequestdispatcher(url); rd.forward(req, res); servlet重定向jsp,并将数据发送到别一个jsp中: request.setattubute("messages",aaa); requestdispatcher requestdispatcher=request.getrequestdispatcher("/jsp/testbean.jsp"); requestdispatcher.forward(request,response); 该检查一下你的服务器设置,或者路径错了没有。
首先要理解这两句话的意思 request.getRequestDispatcher().forward(request,response)这句话是把你的请求扔到了另外的服务上面了,像你上面这么写的话,就是把原来的请求扔给了GoodsCar.jsp去处理,如果你其他东西没有写错的话,页面应该会跳转到GoodsCar.jsp,而在这个jsp里面的request对象其实跟原来你的servlet里面的是同一个,servlet里面的request可以拿到的东西,这个jsp的request也可以拿到,因为它是servlet直接扔过来的,这个动作是由servlet发起的,所以客户端其实并不知道,留意一下你浏览器上面的url你就知道了,不管servlet里面forward到哪里去,你浏览器上面的url依然是这个servlet的地址,说明浏览器根本就不知道servlet已经把请求扔到别的地方去处理了。 response.sendRedirect()这句话是指示客户端重定向请求。客户端把请求发到servlet之后,servlet处理后给出来的响应是跟客户端说:“你去访问login.jsp吧”,然后客户端就会重新发送一个请求去login.jsp,但是这个请求跟之前发送给servlet的请求已经不是同一个。这个动作经历了三步,第一部是客户端发送请求到servlet,第二步是servlet返回相应,第三步是客户端重新定向请求。最后重定向的动作是由客户端发出的,所以你可以看到你的浏览器上面的地址是变了的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
潘家园开翡翠的怎么样呀
2014年赤峰敖汉旗批发鲜红蘑多少钱 - 百度
黄龙洞旅游区停车场地址在什么地方,想过去办
十三四岁每天可以喝几瓶红牛?
自学中国及世界历史,哪些通史及文献比较好?
庸都宾馆停车场在什么地方啊,我要过去处理事
口袋妖怪单机版金手指怎么下?
在网络上查询以下的活期存款利息及抵押贷款利
海信彩电LED50K20JD 内存只有512M 。可以加内
疯狂猜成语里有个闻字外面门是透明的里面耳是
如果在淘宝上买东西,收藏时候价钱很低,现在涨
适合爱丽丝梦游仙境的纯音乐 1985年版的,求
有一首歌是邓紫棋唱的 有一段很快的
权力的游戏中snow在守夜人营地看到抱走婴儿的
大砬子沟地址在哪,我要去那里办事
推荐资讯
绿色植物在光合作用中制造的氧,超过了自身呼
守望者的世界任务在哪
你好朋友: 我想问问 如果我开车在路上出了交
被称为“第七营养素”的是膳食纤维
把文件直接交到领导手里算不礼貌吗?领导居然
三八妇女节公司发什么礼品
【休整的近义词】休整的近义词是什么
洁利干洗(胜利路45)地址在哪,我要去那里办事
kzj格式是什么格式,如何打开
淘宝棉花被黑心
国通快递怎么投诉
华叔冷冻批零店在哪里啊,我有事要去这个地方
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?