这个路径跳转不过去是什么原因啊

这个路径跳转不过去是什么原因啊

http://img1.sycdn.imooc.com//climg/5c62d2da000186c919110749.jpghttp://img1.sycdn.imooc.com//climg/5c62d2b80001bac215730932.jpg

修改密码的时候如果旧密码错误就不能修改密码并且重新跳转到这也修改密码的 页面,但是确是跳不过来,试了几次旧密码错误修改密码都不能重新跳转到 这个页面来,但是如果旧密码不错改新密码 就是可以修改,而且也可以正常的跳转页面,这是什么问题啊

正在回答

登陆购买课程后可参与讨论,去登陆

6回答

看着同学的控制台有报错信息:

看看是否第二次跳转到这个修改密码界面的时候,被登录拦截器给拦截了呢?

http://img1.sycdn.imooc.com//climg/5c63c04f0001bd7a13460781.jpg

建议同学打断点跟一下。

祝学习愉快。

提问者 huachun 2019-02-13 14:34:45
  • 提问者 huachun #1
    可以进入方法里面去但是就是不会再跳进change_password.jsp页面,旧密码输错了就是一个空白页面
    2019-02-13 14:36:17
好帮手慕阿莹 2019-02-13 14:09:41

1、建议同学如下图所示,在这两个地方都输出一下,在修改密码前,清空一下控制台,看看输错旧密码后,是否进入toChangePassword 了,是没有进入toChangePassword 方法,还是没有重新转发到chang_password.jsp 页面

http://img1.sycdn.imooc.com//climg/5c63b3ef000195cc13410353.jpg

祝学习愉快。

好帮手慕阿莹 2019-02-13 11:12:44

请问是用的老师的代码吗?

如果不是,请同学贴一下你的selfController 代码。注意不要贴在回复里,会失去代码的格式。可以在回答里贴一下。

同学也可以自己在toChangePassword中输出一下,看看有么有跳转到这个方法里

http://img1.sycdn.imooc.com//climg/5c638b200001a88813120171.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!


  • 提问者 huachun #1
    change_password.jsp这页是可以正常跳转过去的
    2019-02-13 11:34:28
  • 好帮手慕阿莹 回复 提问者 huachun #2
    没有明白同学的意思,同学不是说修改密码输入旧密码错误时,跳转不到修改密码的页面吗?这个change_password.jsp就是修改密码的页面呀。 看同学的截图,同学是输入旧密码错误后,跳转到这个index.jsp 了吗?
    2019-02-13 11:55:29
  • 提问者 huachun 回复 好帮手慕阿莹 #3
    如果正常情况下是修改密码时候旧密码输错了还会跳转到修改密码这个界面,但是我的是旧密码输错了就没有页面跳转了,成空白了,如果旧密码输入正确就是可以直接更改密码了并且 可以跳转到登录页面去
    2019-02-13 12:05:23
提问者 huachun 2019-02-13 11:08:01

package com.imooc.sm.controller;

import com.imooc.sm.entity.Staff;
import com.imooc.sm.service.SelfService;
import com.imooc.sm.service.StaffService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@Controller("selfController")
public class SelfController {
   @Autowired
   private SelfService selfService;

   public void toLogin(HttpServletRequest request, HttpServletResponse response) throws IOException {
       response.sendRedirect("login.jsp");
   }

   public void login(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
       String account = request.getParameter("account");
       String password = request.getParameter("password");
       Staff staff = selfService.login(account, password);
       if (staff == null) {
           response.sendRedirect("toLogin.do");
       } else {
           HttpSession session = request.getSession();
           session.setAttribute("USER", staff);
           response.sendRedirect("main.do");
       }
   }

   public void logout(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
       HttpSession session = request.getSession();
       session.setAttribute("USER", null);
       response.sendRedirect("toLogin.do");
   }

   public void main(HttpServletRequest request, HttpServletResponse response) throws IOException {
       response.sendRedirect("index.jsp");
   }

   // self/info.do
   public void info(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       request.getRequestDispatcher("../info.jsp").forward(request, response);
   }

   // self/toChangePassword.do
   public void toChangePassword(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       request.getRequestDispatcher("../change_password.jsp").forward(request, response);
   }

   // self/changePassword.do
   public void changePassword(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       String password = request.getParameter("password");
       String password1 = request.getParameter("password1");
       HttpSession session = request.getSession();
       Staff staff = (Staff) session.getAttribute("USER");
       if (!staff.getPassword().equals(password)) {
           response.sendRedirect("toChangePassword.do");
       } else {
           selfService.changePassword(staff.getId(), password1);
           //response.sendRedirect("logout.do");
           //在父窗口转向到logout.do的路径下
           response.getWriter().print("<script type=\"text/javascript\">parent.location.href=\"logout.do\"</script>");
       }

   }

}

好帮手慕阿莹 2019-02-13 10:52:11

同学是用的老师的代码吗?如果不是,请贴一下你的代码,使用老师的代码可以正常跳转的。:

另外,建议同学看一下是否进入了这个if的判断,可以打断点跟一下,也可以在这个if中输出个输出语句,打印一下。

注意不要贴在回复里,会失去代码的格式。可以在回答里贴一下。祝学习愉快。

  • 提问者 huachun #1
    可以进入这个If判断,而且在里面也可以输出
    2019-02-13 11:06:52
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

SSM主流框架入门与综合项目实战2018版
  • 参与学习           人
  • 提交作业       205    份
  • 解答问题       4317    个

Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师