一.项目需求

使用SSM框架实现简单的用户的登录和退出,如果输入的用户名正确的话,将跳转到登录成功的界面,否则跳转到登录界面,并显示错误信息。

二.解决步骤

2.1.创建web工程导入相关的jar包。

2.2.创建数据访问层的接口和实现类。

2.3.创建接口的映射文件。

2.4.创建业务逻辑层的接口以及实现类。

2.5.创建测试程序,验证程序的逻辑是否正确。

2.6.编写控制器类实现页面的跳转。

三.代码实现.

3.1项目相关依赖包的下载.

链接:https://pan.baidu.com/s/1VEXbmo85CKQDPWBiMAcKsA

提取码:zih8

3.2 创建数据访问层的接口和实现类。

接口:

package com.atguigu.ssm.dao;

import com.atguigu.ssm.pojo.User;

import org.apache.ibatis.annotations.Param;

import java.util.Date;

import java.util.List;

/**

* 数据访问层的接口

* @author sd

* @date 2020-07-21 20:19

*/

public interface UserDao {

// 根据用户的名称和密码来进行登录

public User queryByUserNameAndPassword(@Param("username") String username, @Param("password") String password);

// 查询所有的用户列表

public ListgetUserList(String username,Integer roleId);

//查看某个人的信息

public User getUserById(Integer id);

//修改某个人的信息根据id

public int updateByUserId(Integer id, String namess, String passwords, Integer roles, String gender, Date birthday);

//添加用户

public Boolean add(User user);

// 删除用户

public int deleteById(Integer id);

}

实现类:

package com.atguigu.ssm.dao.Impl;

import com.atguigu.ssm.dao.UserDao;

import com.atguigu.ssm.pojo.User;

import org.mybatis.spring.SqlSessionTemplate;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Repository;

import javax.annotation.Resource;

import java.util.Date;

import java.util.List;

/**

* @author sd

* @date 2020-07-23 14:13

*/

@Repository

public class UserDaoImpl implements UserDao {

// 定义SqlSessionTemplate

private SqlSessionTemplate session;

public SqlSessionTemplate getSession() {

return session;

}

public void setSession(SqlSessionTemplate session) {

this.session = session;

}

// 实现用户的登录

@Override

public User queryByUserNameAndPassword(String username, String password) {

return session.getMapper(UserDao.class).queryByUserNameAndPassword(username,password);

}

@Override

public ListgetUserList(String username, Integer roleId) {

return null;

}

@Override

public User getUserById(Integer id) {

return null;

}

@Override

public int updateByUserId(Integer id, String namess, String passwords, Integer roles, String gender, Date birthday) {

return 0;

}

@Override

public Boolean add(User user) {

return null;

}

@Override

public int deleteById(Integer id) {

return 0;

}

}

3.3.创建接口的映射文件。

SELECT u.namess,u.passwords from user u WHERE u.namess=#{username} AND u.passwords=#{password}

3.4.创建业务逻辑层的接口以及实现类。

接口:

package com.atguigu.ssm.service;

import com.atguigu.ssm.pojo.User;

import java.util.Date;

import java.util.List;

/**

* 数据访问层的接口

* @author sd

* @date 2020-07-21 20:19

*/

public interface UserService {

// 根据用户的名称和密码来进行登录

public User queryByUserNameAndPassword(String username, String password);

// 查询所有的用户列表

public ListgetUserList(String username, Integer roleId);

//查看某个人的信息

public User getUserById(Integer id);

//修改某个人的信息根据id

public int updateByUserId(Integer id, String namess, String passwords, Integer roles, String gender, Date birthday);

//添加用户

public Boolean add(User user);

// 删除用户

public int deleteById(Integer id);

}

实现类:

package com.atguigu.ssm.service.Impl;

import com.atguigu.ssm.dao.UserDao;

import com.atguigu.ssm.pojo.User;

import com.atguigu.ssm.service.UserService;

import org.springframework.stereotype.Service;

import javax.annotation.Resource;

import java.util.Date;

import java.util.List;

/**

* @author sd

* @date 2020-07-23 19:09

*/

@Service

public class UserServiceImpl implements UserService {

@Resource

private UserDao userDao;

public UserDao getUserDao() {

return userDao;

}

public void setUserDao(UserDao userDao) {

this.userDao = userDao;

}

@Override

public User queryByUserNameAndPassword(String username, String password) {

return userDao.queryByUserNameAndPassword(username,password);

}

@Override

public ListgetUserList(String username, Integer roleId) {

return null;

}

@Override

public User getUserById(Integer id) {

return null;

}

@Override

public int updateByUserId(Integer id, String namess, String passwords, Integer roles, String gender, Date birthday) {

return 0;

}

@Override

public Boolean add(User user) {

return null;

}

@Override

public int deleteById(Integer id) {

return 0;

}

}

3.5.创建测试程序,验证程序的逻辑是否正确。

数据库测试:

package com.atguigu.ssm.test;

import org.junit.Test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

/**

* @author sd

* @date 2020-07-23 14:09

*/

public class TestConnection {

@Test

public void test1(){

ApplicationContext context=new ClassPathXmlApplicationContext("applictionContext.xml");

Object dataSource = context.getBean("dataSource");

System.out.println(dataSource.toString());

}

}

数据访问层实现类测试:

package com.atguigu.ssm.test;

import com.atguigu.ssm.dao.Impl.UserDaoImpl;

import com.atguigu.ssm.dao.UserDao;

import com.atguigu.ssm.pojo.User;

import org.junit.Test;

/**

* @author sd

* @date 2020-07-23 14:16

*/

public class TestUserDaoImpl {

@Test

public void test1(){

UserDao userDao=new UserDaoImpl();

User user = userDao.queryByUserNameAndPassword("admin", "ly@168");

System.out.println(user.getNamess()+user.getPasswords());

}

}

3.6.编写控制器类实现页面的跳转。

package com.atguigu.ssm.controller;

import com.atguigu.ssm.pojo.User;

import com.atguigu.ssm.service.UserService;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

import javax.annotation.Resource;

import javax.jws.soap.SOAPBinding;

import javax.servlet.http.HttpServletRequest;

/**

* @author sd

* @date 2020-07-23 19:01

*/

@Controller

@RequestMapping(value = "/user")

public class UserController {

@Resource

private UserService userService;

public UserService getUserService() {

return userService;

}

public void setUserService(UserService userService) {

this.userService = userService;

}

// 实现用户的登录

@RequestMapping(value = "/logins")

public String logins(String username, String password, Model model, HttpServletRequest request){

User user = userService.queryByUserNameAndPassword(username, password);

if (user == null){

model.addAttribute("errors","用户名称或者密码不正确");

return "logins";

}else {

request.getSession().setAttribute("user",user);

return "success";

}

}

@RequestMapping(value = "/clear")

public String loginout(HttpServletRequest request){

request.getSession().invalidate();

return "logins";

}

}

3.7.配置文件

数据源的配置:

Mybatis配置:

Spring配置:

SpringMVC配置:

Web.xml配置:

encodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

UTF-8

forceEncoding

true

encodingFilter

/*

contextConfigLocation

classpath:applictionContext.xml

org.springframework.web.context.ContextLoaderListener

springmvc

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:springMVCContext.xml

springmvc

/

default

*.jpg

ssm 退出登录 java_Spring+SpringMVC+Mybatis实现简单的用户的登录和退出相关推荐

  1. idea创建SSM项目(Spring+SpringMVC+MyBatis)

    idea创建SSM项目(Spring+SpringMVC+MyBatis) 项目创建 创建数据库 自动生成mapper 先做一个简单的测试 以下配置 可参考博客https://blog.csdn.ne ...

  2. 普通用户不能登录linux图形界面,只有root用户可以登录到图形界面

    普通用户不能登录linux图形界面,只有root用户可以登录到图形界面(普通用户,用户名和密码输入正确,点击登录,2秒后又返回到了登录界面,即不能登录.)这个问题的解决办法如下: /tmp这个目录的权 ...

  3. 如何部署SSM框架(Spring+SpringMVC+MyBatis)到SAE(新浪云服务器)图文教程

    在学习cocos2dx手游开发的过程中,为了实现用户注册.用户登陆和世界排行榜这些模块,需要用到服务器来搭建平台.以前都是 在本地搭建服务器,在本科期间使用过IIS和Tomcat,感觉在本地搭建服务器 ...

  4. SpringSecurity+Mybatis实现用户自助注册登录(含角色),打造简单安全的注册登录页面。

    #项目架构.功能点 架构: Springboot2.5.+ MySQL数据库8.0+(记录用户信息.角色清单.用户角色对照表) 持久层Mybatis 用户注册页面RegisterPage采用Thyme ...

  5. 简单判断用户重复登录,记录一下

    Code //判断用户是否重复登录 string key = TextBox1.Text; //用户名文本框设为cache关键字 string uer = Convert.ToString(Cache ...

  6. android管理员和普通用户登录,asp登录页如何区别管理员和普通用户,登录后跳转到不同页面?...

    数据库表 user表 中,username(用户名) pass(密码) type(超级管理员.高级发文者) cname(单位名称) 登录页index.asp if request.Form(" ...

  7. 主流 SSM 框架Java 后台 springmvc mybatis 有代码生成器

    获取[下载地址] QQ: 313596790 官网 http://www.fhadmin.org/ A 代码编辑器,在线模版编辑,仿开发工具编辑器,pdf在线预览,文件转换编码 B 集成代码生成器 [ ...

  8. springmvc+mybatis实现简单的图书管理系统

    图书管理系统 1.系统功能性需求描述 图书借阅管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面.对于前者要求建立起数据一致性和完整性强.数据安全性好的数 ...

  9. SSM整合(Spring + SpringMVC + Mybatis)

    SSM所需要的依赖 <?xml version="1.0" encoding="UTF-8"?><project xmlns="ht ...

  10. SpringMVC应用拦截器判断用户是否登录

    拦截器定义 实现HandlerInterceptor接口,实现接口方法. import javax.servlet.http.HttpServletRequest; import javax.serv ...

最新文章

  1. 使用jdk8新特性实现数据库性能优化
  2. 用U盘破除XP管理员密码
  3. ADO.NET五大对象详解
  4. java匿名对象赋初值_不想进BAT的Java程序员不是好程序员,BAT后端Java岗面试真题分享
  5. 【笔记】JAVA中的泛型和反射
  6. 【MFC】带组合框的工具栏
  7. FFmpeg在Intel GPU上的硬件加速与优化
  8. JAVA运算符和优先级
  9. ACM中关于计算几何(浮点数)的精度问题
  10. 项目开发日志:Build AssetBundle——SpriteAtlas(已解惑)
  11. Qt的Assistant制作自定义的软件帮助界面(记录)
  12. iis6.0渗透实战笔记
  13. 【腾讯开源项目】一个开放式的开发平台,蓝鲸PaaS平台源码对外开放
  14. 护眼的绿豆沙色 RGB 值
  15. workman安装以及使用
  16. 谁说大专生不能够学好Java呢?照着这个路线走,高中生都可以!
  17. Python数据分析与展示——Pandas基本操作
  18. 【笔记】脉搏波手环自研之路开启
  19. hook(2)Activity启动流程,2021年大厂Android岗面试必问
  20. MySQL按天查询语句

热门文章

  1. 【人脸识别】基于matlab小波不变矩人脸识别【含Matlab源码 1355期】
  2. 【数学建模】基于matlab模拟十字路口车辆通行【含Matlab源码 1106期】
  3. 【优化求解】基于matlab遗传算法求解资源配置优化问题【含Matlab源码 436期】
  4. 涉密计算机多用户审批表,涉密计算机及信息系统安全策略
  5. ai里怎样取消扩展外观_扩展AI:困难的5个原因
  6. 人体面部检测python_使用Python检测面部特征
  7. pathlib2 Path glob rglob的最新研究成果
  8. 【C++】STL--常用算法
  9. 计算机网络ip地址博客,计算机网络中,这些IP地址你知道吗?
  10. h5 右下角浮动按钮_Flutter 浮动按钮-FloatingActionButton的使用