idea构建post请求_一步一步教你用IntelliJ IDEA 搭建SSM框架(3)——实现用户登录功能...

本文详细介绍了如何在已搭建的SSM框架中实现用户登录功能,包括设计user表、mybatis-generator生成数据文件、新建控制器和服务文件、测试数据写入、创建注册和登录页面等步骤。
摘要由CSDN通过智能技术生成

上面两篇博客已经详细的介绍了在IntelliJ IDEA 搭建SSM框架的整个过程,下面我们就要在搭建好的环境里实现我们想要的功能了。本文完成用户的登录功能,主要包括:用户注册,登录,编辑,退出,注销。

第一步:设计user表,并用mybatis-geneator生成user表对应的数据文件

首先,我们在test数据库里加一张user表,代码如下

usetest;CREATE TABLE `user` (

`id`int(10) unsigned NOT NULLAUTO_INCREMENT,

`name`varchar(40) NOT NULL,

`password`varchar(255) NOT NULL,

`age`int(4) NOT NULL,

`description`varchar(255) NOT NULL,

PRIMARY KEY(`id`)

)ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;select * from user;

然后,用mybatis-geneator生成user表对应的数据文件。打开generator.properties文件,table=message改为table=user,点击IntelliJ IDEA右侧边栏的Maven Projects,双击 mybatis-generator:generate,运行成功以后会多user表的相关数据文件,如下图:

注意:如果需要一次生成所有表的数据文件,先把dao,entity,sqlmap里面的文件都清空,然后打开generatorConfig.xml,把table标签替换为下面的代码即可

enableUpdateByExample="false" enableDeleteByExample="false"

enableSelectByExample="false" selectByExampleQueryId="false"/>

现在,user数据表已经绑定成功。下面按照上一篇中测试message的方法,用junit测试工具,测一下数据能不能正常写入数据库。第二步:新建文件

在controller文件夹下添加userController.java和homeController.java文件

userController.java:跟用户有关的路由都会写在这个文件里homeController.java:写登录成功以后的路由

在service文件夹下,添加UserService.java文件和impl文件夹,在impl文件夹下,添加UserServiceImpl.java

UserService.java:存放业务层接口

UserServiceImpl.java:实现业务层接口

在js文件夹下添加jQuery文件引用,我这里加的是jquery-3.3.1.js

在views文件夹下添加:login.jsp,home.jsp,detail.jsp,register.jsp

login.jsp:登录页面

home.jsp:登录以后的页面

detail.jsp:编辑用户信息页面

register.jsp:用户注册页面

第三步:首页

欢迎来到首页,请先登录

登录

注册

View Code

第四步:注册功能

1,写注册页面,在register.jsp中添加代码如下:

Title

用户注册

用户名:密码:年龄:描述:

if(${status}== 0){

alert("注册成功")

location.href="/";

}

View Code

2,dao中实现数据库操作

dao文件夹中的UserMapper已经有insert接口,sqlmap中的UserMapper.xml中已经实现insert,所以只需在

dao文件夹中的UserMapper中添加selectUserByName接口,在sqlmap中的UserMapper.xml中添加selectUserByName实现。代码如下:

List selectUserByName(User record);

select *

from user

where name = #{name,jdbcType=VARCHAR}

3,service层实现业务逻辑

在UserService.java中写注册接口insert,和根据用户名查找用户接口selectUserByName,代码如下:

packagecn.only.service;importcn.only.entity.User;importjava.util.List;public interfaceUserService {intinsert(User record);

ListselectUserByName(User record);

}

View Code

4,在UserServiceImpl.java中实现以上接口,代码如下:

packagecn.only.service.impl;importcn.only.dao.UserMapper;importcn.only.entity.User;importcn.only.service.UserService;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Service;importjava.util.List;

@Servicepublic class UserServiceImpl implementsUserService{

@AutowiredprivateUserMapper mapper;public int insert(User record){returnmapper.insert(record);}public List selectUserByName(User record){returnmapper.selectUserByName(record);}

}

View Code

5,在userController.java中写路由,代码如下:

packagecn.only.controller;importcn.only.entity.User;importcn.only.service.UserService;importorg.springframework.stereotype.Controller;importorg.springframework.ui.Model;importorg.springframework.web.bind.annotation.ModelAttribute;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestMethod;importorg.springframework.web.bind.annotation.ResponseBody;importjavax.annotation.Resource;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpSession;importjava.util.List;

@Controller

@RequestMapping("/user")public classuserController {

@ResourceprivateUserService userService;

@RequestMapping(value="/register")publicString register(HttpServletRequest request, Model model){return "register";

}

@RequestMapping(value="/register",method=RequestMethod.POST)publicString addUser(@ModelAttribute User user, Model model){

List list=userService.selectUserByName(user);if(list.size()==0){if(userService.insert(user)==1){

model.addAttribute("status",0);

}else{

model.addAttribute("status",1);

}

}else{

model.addAttribute("status",2);

}return "register";

}

}

View Code

第五步:登录功能

1,写登录页面,在login.jsp文件,代码如下:

登录

登录

用户名:密码:

注册

if(${status}== 0){

alert("登录成功");

location.href="/home";

}else{

alert("登录失败,用户名或密码错误");

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值