「这是我参与2022首次更文挑战的第4天,活动详情查看:2022首次更文挑战」
项目中我们会遇到中文乱码问题,为了解决这个问题,我们可以在web.xml文件中加上UTF-8编码的配置。
<!-- 乱码问题-->
<filter>
<filter-name>encoding</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
一、注册登录
基础而又最常见的功能是注册登录功能。 逻辑是这样的,我们先注册用户,填上用户的基本信息,这样就算注册成功了。使用注册的用户名,密码,校验用户名,密码,如果校验成功,那么就能正常登录。
1、前端页面
后续可以加上用户的基本信息,比如年龄,性别等
<form id="form1" name="form1" action="user?action=login" method="post">
<li><span class="left">用户名:</span> <span style=""> <input id="userName" name="userName" type="text" class="txt" value="${userName }" /> </span></li>
<li><span class="left">密 码:</span> <span style=""> <input id="password" name="password" type="password" class="txt" value="${password }" onkeydown= "if(event.keyCode==13)form1.submit()"/> </span></li>
</form>
2、后端代码
注册功能
@RequestMapping("/reg")
@ResponseBody
public ReturnVoCommon reg(TFrontuser user,HttpServletRequest request){
ReturnVoCommon vo = new ReturnVoCommon();
TFrontuserExample example = new TFrontuserExample();
Criteria createCriteria = example.createCriteria();
createCriteria.andUsernameEqualTo(user.getUsername());
List<TFrontuser> list = userMapper.selectByExample(example);
if(list.size() == 1){
vo.setCode(-1);
vo.setErrMsg("用户名存在!");
return vo;
}
user.setIsdelete("0");
userMapper.insert(user);
return vo;
}
登录功能
@RequestMapping("/login")
@ResponseBody
public ReturnVoCommon login(TFrontuser user,HttpServletRequest request){
ReturnVoCommon vo = new ReturnVoCommon();
TFrontuserExample example = new TFrontuserExample();
Criteria createCriteria = example.createCriteria();
createCriteria.andUsernameEqualTo(user.getUsername());
createCriteria.andPasswordEqualTo(user.getPassword());
List<TFrontuser> list = userMapper.selectByExample(example);
if(list.size() < 1){
vo.setCode(-1);
vo.setErrMsg("用户名或者密码错误!");
return vo;
}
vo.setCode(0);
request.getSession().setAttribute("currentUser", list.get(0));
request.getSession().setAttribute("username", list.get(0).getUsername());
return vo;
}
填上基本信息进行注册
提示注册成功
用刚才注册成功的账号进行登录
如果填的用户名或者密码错误的话,就会提示
可以使用postman来测试接口,填上接口名,用户名,密码等参数
二、显示所有的用户
list = userMapper.selectByExample(tFrontuserExample);
result.put("rows", list);
PageInfo<TFrontuser> pageInfo = new PageInfo<TFrontuser>(list);
result.put("total", pageInfo.getTotal());
显示所有的用户,从数据库直接读取用户表,填充用户信息即可。
三、保存用户
if(StringUtils.isNotEmpty(user.getId())){
userMapper.updateByPrimaryKeySelective(user);
}else{
user.setIsdelete("0");
user.setCreatedate(StringUtils.getCurrentDateForMysql());
userMapper.insert(user);
}
保存用户主要的逻辑是:先从前端传过来的用户id,判断这个id在数据库存不存在,如果存在,进行修改保存,如果不存在的话,直接新增保存用户。
四、删除用户
user.setIsdelete("1");
user.setId(Integer.parseInt(idArr[i]));
userMapper.updateByPrimaryKeySelective(user);
这里的删除用户,是逻辑删除,与之对应的是物理删除,逻辑删除和物理删除的区别就是,逻辑删除是指,这条数据还存在,只不过有个字段标识这条数据为删除状态。而物理删除是指,这条数据是完全的删除了,在数据库不存在了。举个例子,电脑上的文件,我把它删了,它会回到回收站,这个就像是逻辑删除,而我点击永久删除或者是清空回收站,就是物理删除。
五、总结
注册,是增加用户信息,登录用户,显示所有用户是查询用户信息,只不过,前者是查询单个用户信息,后者是查询全部的用户信息。保存用户是修改或新增用户信息。删除注意区分逻辑删除和物理删除。