用户登录跳转问题
来源:8-5 用户登录接口与界面开发-2
吐槽者
2018-06-23

登录跳转能跳转成功,但是后台报错,看了一下网上搜的,后面加上 return ; 也不行
9回答
-
加上那一行就不会有问题了啊,我的意思是你现在实际执行的代码不一定是你现在看到的这样,是可能受之前的缓存的影响。你可以清一下你执行的缓存,不排除可以选择重启电脑和开发工具,尤其是eclipse,经常会出现这类问题。
你最开始出现那个异常,加上return肯定就没问题了。那个异常的根本原因是页面跳转还继续使用了之前的request会和response,加上return就不存在这个问题了。032018-06-26 -
吐槽者
提问者
2018-06-23
老师的,源码
00 -
吐槽者
提问者
2018-06-23

除了上面标红的,这个真是老师写的
00 -
Jimin
2018-06-23
最新的代码运行应该不会出现你说的那个问题,如果还有,那应该走的是你之前编译的版本,不信你debug试试,return走过之后代码就走不到后面了,不可能出错
00 -
吐槽者
提问者
2018-06-23
这个是我现在改的,跟源码是一致的,而且加了个 return ;
不行的
@RequestMapping("/login.page")
public void login(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException {
String username=request.getParameter("username");
String password=request.getParameter("password");
SysUser sysUser=sysUserService.findByKeyword(username);
String errorMsg="";
String ret=request.getParameter("ret");
if(StringUtils.isBlank(username)){
errorMsg="用户名不可以为空";
}else if (StringUtils.isBlank(password)) {
errorMsg="密码不可以为空";
}else if(sysUser==null){
errorMsg="查询不到指定的用户";
}else if(!sysUser.getPassword().equals(MD5Util.encrypt(password))){
errorMsg="用户名或密码错误";
}else if(sysUser.getStatus() !=1){
errorMsg="用户已被冻结,请联系管理员";
}else {
//login success
request.getSession().setAttribute("user", sysUser);
System.out.println("---ret1----"+ret);
if(StringUtils.isNotBlank(ret)){
response.sendRedirect(ret);
}else{
response.sendRedirect("/admin/index.page"); //TODO
}
return;
}
//返回页面数据
request.setAttribute("error", errorMsg);
request.setAttribute("username", username);
if(StringUtils.isNoneBlank(ret)){
request.setAttribute("ret", ret);
}
String path="signin.jsp";
request.getRequestDispatcher(path).forward(request, response);
}
022018-06-23 -
吐槽者
提问者
2018-06-23
老师这个是你的源码
package com.mmall.controller;
import com.mmall.model.SysUser;
import com.mmall.service.SysUserService;
import com.mmall.util.MD5Util;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import javax.annotation.Resource;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@Controller
public class UserController {
@Resource
private SysUserService sysUserService;
@RequestMapping("/logout.page")
public void logout(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
request.getSession().invalidate();
String path = "signin.jsp";
response.sendRedirect(path);
}
@RequestMapping("/login.page")
public void login(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
String username = request.getParameter("username");
String password = request.getParameter("password");
SysUser sysUser = sysUserService.findByKeyword(username);
String errorMsg = "";
String ret = request.getParameter("ret");
if (StringUtils.isBlank(username)) {
errorMsg = "用户名不可以为空";
} else if (StringUtils.isBlank(password)) {
errorMsg = "密码不可以为空";
} else if (sysUser == null) {
errorMsg = "查询不到指定的用户";
} else if (!sysUser.getPassword().equals(MD5Util.encrypt(password))) {
errorMsg = "用户名或密码错误";
} else if (sysUser.getStatus() != 1) {
errorMsg = "用户已被冻结,请联系管理员";
} else {
// login success
request.getSession().setAttribute("user", sysUser);
if (StringUtils.isNotBlank(ret)) {
response.sendRedirect(ret);
} else {
response.sendRedirect("/admin/index.page"); //TODO
}
}
request.setAttribute("error", errorMsg);
request.setAttribute("username", username);
if (StringUtils.isNotBlank(ret)) {
request.setAttribute("ret", ret);
}
String path = "signin.jsp";
request.getRequestDispatcher(path).forward(request, response);
}
}
042018-06-23 -
Jimin
2018-06-23
if(StringUtils.isNotBlank(ret)){
response.sendRedirect(ret);
}else{
response.sendRedirect("/admin/index.page"); //TODO
}
return;
}022018-06-23 -
吐槽者
提问者
2018-06-23
package com.mmall.controller;
import java.io.IOException;
import javax.annotation.Resource;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import com.mmall.model.SysUser;
import com.mmall.service.SysUserService;
import com.mmall.util.MD5Util;
@Controller
public class UserController {
@Resource
private SysUserService sysUserService;
@RequestMapping("/login.page")
public void login(HttpServletRequest request,HttpServletResponse response) throws IOException, ServletException {
String username=request.getParameter("username");
String password=request.getParameter("password");
SysUser sysUser=sysUserService.findByKeyword(username);
String errorMsg="";
String ret=request.getParameter("ret");
if(StringUtils.isBlank(username)){
errorMsg="用户名不可以为空";
}else if (StringUtils.isBlank(password)) {
errorMsg="密码不可以为空";
}else if(sysUser==null){
errorMsg="查询不到指定的用户";
}else if(!sysUser.getPassword().equals(MD5Util.encrypt(password))){
errorMsg="用户名或密码错误";
}else if(sysUser.getStatus() !=1){
errorMsg="用户已被冻结,请联系管理员";
}else {
//login success
request.getSession().setAttribute("user", sysUser);
System.out.println("---ret1----"+ret);
if(StringUtils.isNotBlank(ret)){
response.sendRedirect(ret);
}else{
response.sendRedirect("/admin/index.page"); //TODO
}
}
//返回页面数据
request.setAttribute("error", errorMsg);
request.setAttribute("username", username);
if(StringUtils.isNoneBlank(ret)){
request.setAttribute("ret", ret);
}
String path="signin.jsp";
request.getRequestDispatcher(path).forward(request, response);
return ;
}
}
00 -
Jimin
2018-06-23
你把登录那个方法的代码贴一下看看
00
相似问题

