Copyright: please indicate the source https://blog.csdn.net/EdwardDrew/article/details/77506458
error code:
public class InitialPwdInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
String userName = SsoUserUtil.getUserFromSession(request.getSession());
if (userName != null) {
String DbPwd = SsoService.Instance().getSsoPwdByName(userName);
String InitialPwd = MD5Util.md5Hex("123456");
if (DbPwd.equals(InitialPwd)) {
//如果密码没修改重定向到修改密码
response.sendRedirect("/v2/common/teacherPwd.html");
}
}
return true;
}
}
错误信息:java.lang.IllegalStateException: Cannot forward after response has been committed
The reason: response duplicate submission
Modified Code 1:
public class InitialPwdInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
String userName = SsoUserUtil.getUserFromSession(request.getSession());
if (userName != null) {
String DbPwd = SsoService.Instance().getSsoPwdByName(userName);
String InitialPwd = MD5Util.md5Hex("123456");
if (DbPwd.equals(InitialPwd)) {
//如果密码没修改重定向到修改密码
response.sendRedirect("/v2/common/teacherPwd.html");
return false;
}
}
return true;
}
}
Error: infinite loop
reason: Redirect success, but did not return true;
Change Password 2:
public class InitialPwdInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
String url = request.getServletPath();
if ("/v2/common/teacherPwd.html".equals(url)) {
//如果是老师修改密码页面了,直接过
return Boolean.TRUE;
}
String userName = SsoUserUtil.getUserFromSession(request.getSession());
if (userName != null) {
String DbPwd = SsoService.Instance().getSsoPwdByName(userName);
String InitialPwd = MD5Util.md5Hex("123456");
if (DbPwd.equals(InitialPwd)) {
//如果密码没修改重定向到修改密码
response.sendRedirect("/v2/common/teacherPwd.html");
return false;
}
}
return true;
}
}
success
Thoughts: To understand the use of spring mvc interceptor HandlerInterceptor.