java面试基础-SpringMVC登录注册注销

User
private Integer userId;
private String userName;
private Integer userPwd;
private String name;
Controller层 LoginController
@Controller
public class LoginController {
	
	@Autowired
	private LoginService loginService;
    //登录
	@RequestMapping("/login")
	public String login(User user,HttpServletRequest request,Model model){
		int flag = loginService.login(user,request);
		model.addAttribute("flag",flag);
		if(flag==1){
			return "index";
		}else{
			return "redirect:queryUser.do";
		}
	}
	//注册
	@RequestMapping("/regUser")
	public String regUser(User user,Model model){
		int flag = loginService.regUser(user);
		model.addAttribute("flag",flag);
		if(flag==3){ 
			return "index";
		}else{
			return "regUser";
		}
	}
	//注销
	@RequestMapping("/exitUser")
	public String exitUser(HttpServletRequest request){
         //从session工厂中取到登录的对象(用户)
		User user = (User) request.getSession().getAttribute("user");
          //如果有用户  则从session工厂中移除该数据 使用removeAttribute方法
		if(user!=null){
			request.getSession().removeAttribute("reuser");
		}
          //返回登录页面
		return "index";
	}
}
Service层 LoginServiceImpl
@Service
public class LoginServiceImpl implements LoginService {

	@Autowired
	private LoginDao loginDao;
    
    //登录
	@Override
	public int login(User user,HttpServletRequest request) {
		//首先将登录信息作为条件进行查询
		String hql = " from User where userName='"+user.getUserName()+"' and userPwd='"+user.getUserPwd()+"'";
		// 空指针异常: null.method()
		User reUser = loginDao.queryUserByHql(hql);
		//通过判断查询返回的对象是否为空,则得出账号密码是否正确
		if(reUser==null){
			//此时证明账号或者密码有误
			return 1;
		}else{
			//如果登录成功,则将登录用户信息存入session
			request.getSession().setAttribute("reuser", reUser);
			return 2;//此时证明登录信息正确,登录成功
		}
	}
    //注册
	@Override
	public int regUser(User user) {
		//验重:验证有没有重复的用户账号
		String hql = " from User where userName='"+user.getUserName()+"'";
		User reUser = loginDao.queryUserByHql(hql);
		//判断reUser是否为空
		if(reUser==null){
			//此时证明账号可用,执行新增用户
			loginDao.addUser(user);
			return 3;
		}else{
			return 4;
		}
	}
	
}
Dao层
@Repository
public class LoginDaoImpl implements LoginDao{
	
	@Autowired
	private SessionFactory sessionFactory;

    //登录
	@Override
	public User queryUserByHql(String hql) {
		return (User) sessionFactory.getCurrentSession().createQuery(hql).uniqueResult();
	}
    //注册
	@Override
	public void addUser(User user) {
		sessionFactory.getCurrentSession().save(user);
	}

}
前台登录代码 index.JSP
  <body>
  		<form action="${pageContext.request.contextPath }/login.do" method="post">
  			用户账号:<input type="text" name="userName"><br>
  			用户密码:<input type="password" name="userPwd">
  				<c:if test="${flag==1}"><font color="red">账号或者密码有误!!!</font></c:if>
  			<br>
  			<input type="submit" value="登录">
  			<input type="button" value="注册" onclick="toReg()">
  		</form>
  		
  		<script type="text/javascript">
  			function toReg(){
  				location.href = "${pageContext.request.contextPath }/regUser.jsp";
  			}
  		</script>
  </body>
前台注册代码 regUser.JSP
<body>
  		<form action="${pageContext.request.contextPath }/regUser.do" method="post" enctype="multipart/form-data">
  			用户账号:<input type="text" name="userName">
  				<c:if test="${flag==4 }"><font color="red">用户名已存在!!!</font></c:if>
  			<br>
  			用户密码:<input type="password" name="userPwd" id="pwdId">
  			<input type="button" value="显"  onmousedown="showPwd()" onmouseup="hiddenPwd()">
  			<br>
  			用户昵称:<input type="text" name="name"><br>
  			用户头像:<input type="file" name="upFile"><br>
  			<input type="submit" value="注册"><br>
  		</form>
  		<script type="text/javascript">
  			function showPwd(){
  				document.getElementById("pwdId").type="text";
  			}
  			function hiddenPwd(){
  				document.getElementById("pwdId").type="password";
  			}
  		</script>
  </body>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

50W程序员都在看

qiugan

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值