利用SSM框架实现用户登录功能(可视化03)

您所在的位置:网站首页 ssm框架在系统中如何使用的 利用SSM框架实现用户登录功能(可视化03)

利用SSM框架实现用户登录功能(可视化03)

2023-09-06 14:59| 来源: 网络整理| 查看: 265

目录

一、SSM框架

(一)SSM为何物

(二)Spring框架

(三)Spring MVC框架

二、用户登录运行效果

 三、利用SSM框架实现用户登录

1、创建数据库

2、创建用户表 

3、用户表添加记录

(二)创建Maven项目

(三)添加相关依赖

(四)创建日志属性文件

(五)创建数据库配置属性文件

(六)给项目添加Web功能

(七)配置Tomcat服务器

1、安装Tomcat服务器

2、启动Tomcat服务 

3、访问Tomcat主页 

 5、项目配置Tomcat服务器

(八)创建用户实体类 

(九)创建用户映射器接口

(十)创建用户服务类

(十一)创建用户控制器

(十二)创建用户映射器配置文件

(十二)创建用户映射器配置文件 

(十三)准备静态资源

2、创建样式文件

3、创建脚本文件

(十四)创建页面

 2、创建登录页面

3、创建网站首页 

4、创建后台管理页面

(十五)创建Spring配置文件

(十六)创建Spring MVC配置文件

(十七)编辑Web部署描述文件

(十八)启动服务器,查看效果

一、SSM框架 (一)SSM为何物

SSM(Spring+SpringMVC+MyBatis)框架集由Spring、MyBatis两个开源框架整合而成(SpringMVC是Spring中的部分内容),常作为数据源较简单的Web项目的框架。

(二)Spring框架

Spring就像是整个项目中装配Bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地new一个对象,而是让Spring框架帮你来完成这一切。

(三)Spring MVC框架

Spring MVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作。Spring MVC相当于SSH框架中Struts。

M:模型层、V:视图层、C:控制层

MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据可以分别用柱状图、饼图来表示。C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新。

模型-视图-控制器(MVC)是Xerox PARC在二十世纪八十年代为编程语言Smalltalk-80发明的一种软件设计模式,已被广泛使用。后来被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎。模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点。  

二、用户登录运行效果

 三、利用SSM框架实现用户登录 1、创建数据库

执行命令:CREATE DATABASE ssmdb CHARSET='utf8mb4';

2、创建用户表 

CREATE TABLE `t_user` (   `id` int(11) NOT NULL AUTO_INCREMENT,   `username` varchar(20) NOT NULL,   `password` varchar(20) DEFAULT NULL,   `telephone` varchar(11) DEFAULT NULL,   `register_time` timestamp NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP,   `popedom` int(11) DEFAULT NULL COMMENT '0:管理员;1:普通用户',   PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;  

3、用户表添加记录

INSERT INTO `t_user` VALUES ('1', 'admin', '12345', '15734345678', '2021-09-02 08:40:35', '0'); INSERT INTO `t_user` VALUES ('2', 'alice', '11111', '13956567889', '2021-10-20 09:51:43', '1'); INSERT INTO `t_user` VALUES ('3', 'brown', '22222', '13956678907', '2022-03-21 09:52:36', '1'); INSERT INTO `t_user` VALUES ('4', 'linda', '33333', '15890905678', '2022-05-25 09:52:56', '1');

执行SQL命令添加4条记录

(二)创建Maven项目

创建Maven项目 - SSMLogin设置项目命令、项目位置、组ID和项目ID

(三)添加相关依赖

在pom.xml文件里添加相关依赖

    4.0.0

    net.cm.ssm     SSMLogin     1.0-SNAPSHOT

                    5.3.20    

                                org.springframework             spring-core             ${spring.version}                                     org.springframework             spring-beans             ${spring.version}                                     org.springframework             spring-context             ${spring.version}                                     org.springframework             spring-test             ${spring.version}                                     org.springframework             spring-jdbc             ${spring.version}                                     mysql             mysql-connector-java             5.1.49                                     com.alibaba             druid             1.2.10                                     org.mybatis             mybatis             3.5.10                                     org.mybatis             mybatis-spring             2.0.7                                     log4j             log4j             1.2.17                                     junit             junit             4.13.2             test                                     org.springframework             spring-web             ${spring.version}                                     org.springframework             spring-webmvc             ${spring.version}                                     javax.servlet             jstl             1.2                                     javax.servlet             javax.servlet-api             3.1.0             provided              

打开Maven窗口,单击刷新按钮,下载依赖

 

(四)创建日志属性文件

在resources目录里创建log4j.properties文件

 log4j.rootLogger=WARN, stdout, logfile log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n log4j.appender.logfile=org.apache.log4j.FileAppender log4j.appender.logfile.File=target/ssm.log log4j.appender.logfile.layout=org.apache.log4j.PatternLayout log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

(五)创建数据库配置属性文件

在resources目录里创建jdbc.properties

 jdbc.driverClassName = com.mysql.jdbc.Driver jdbc.url = jdbc:mysql://localhost:3306/ssmdb?useSSL=false jdbc.username = root jdbc.password = 903213

(六)给项目添加Web功能

 1.将默认的SSMLogin:Web exploded改名为SSMLogin

2.WEB-INF目录里classes子目录里放的是用户编写的源程序编译之后的字节码文件,但是项目依赖的jar包需要创建一个lib目录

3.把右边的Available Elements全部选中,单击右键,弹出快捷菜单

单击Put into /WEB-INF/lib菜单项,把选中的jar包添加到左边的/WEB-INF/lib目录

单击【OK】按钮

 

 

(七)配置Tomcat服务器 1、安装Tomcat服务器

下载tomcat-8.5.58.rar,解压到D盘根目录

进入可执行目录bin

 

配置Tomcat环境变量

 

 

 ​​​​​​​

2、启动Tomcat服务 

在命令窗口执行:startup.bat,启动Tomcat服务(当然可以在资源管理器窗口里直接双击startup.bat图标

3、访问Tomcat主页 

主页在E:\tomcat-8.5.58\webapps\ROOT目录里

在浏览器里访问http://localhost:8080(或http://localhost:8080/index.jsp)

​​​​​​​

 5、项目配置Tomcat服务器

单击工具栏上的【Add Configuration…】,按照演示进行操作

 

 

 

 

(八)创建用户实体类 

创建net.huawei.ssm.bean包,在包里创建User类

package net.cm.ssm.bean;

import java.util.Date; public class User {     private int id;     private String username;     private String password;     private String telephone;     private Date registerTime;     private int popedom;

    public int getId() {         return id;     }

    public void setId(int id) {         this.id = id;     }

    public String getUsername() {         return username;     }

    public void setUsername(String username) {         this.username = username;     }

    public String getPassword() {         return password;     }

    public void setPassword(String password) {         this.password = password;     }

    public String getTelephone() {         return telephone;     }

    public void setTelephone(String telephone) {         this.telephone = telephone;     }

    public Date getRegisterTime() {         return registerTime;     }

    public void setRegisterTime(Date registerTime) {         this.registerTime = registerTime;     }

    public int getPopedom() {         return popedom;     }

    public void setPopedom(int popedom) {         this.popedom = popedom;     }

    @Override     public String toString() {         return "User{" +                 "id=" + id +                 ", username='" + username + '\'' +                 ", password='" + password + '\'' +                 ", telephone='" + telephone + '\'' +                 ", registerTime=" + registerTime +                 ", popedom=" + popedom +                 '}';     } }

(九)创建用户映射器接口

package net.cm.shop.mapper;

import net.cm.shop.bean.User; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @Mapper // 交给Spring容器管理 public interface UserMapper {     User login(@Param("username") String username, @Param("password") String password); }

(十)创建用户服务类

在net.cm.ssm包里创建service子包,然后在子包里创建UserService类

package net.cm.ssm.service;

import net.cm.ssm.bean.User; import net.cm.ssm.mapper.UserMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;

@Service // 交给Spring容器管理 public class UserService {     @Autowired // 自动装配     private UserMapper userMapper;

    public User login(String username, String password) {         return userMapper.login(username, password);     } }  

(十一)创建用户控制器

在net.cm.ssm包里创建controller子包,然后在子包里创建UserController类

package net.cm.shop.controller;

import net.cm.service.UserService; import net.cm.shop.bean.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam;

import javax.servlet.http.HttpSession;

@Controller @RequestMapping("/user") public class UserController {     @Autowired     private UserService userService;          @RequestMapping("/login")     public String login(@RequestParam("username") String username,                         @RequestParam("password") String password,                         HttpSession session) {         // 调用用户服务对象的登录方法         User user = userService.login(username, password);         // 判断用户是否登录成功         if (user != null) {             // 将登录用户名写入会话             session.setAttribute("username", username);             // 删除会话里可能存在的登录错误提示信息             if (session.getAttribute("loginMsg") != null) {                 session.removeAttribute("loginMsg");             }             // 判断用户角色,跳转到不同页面             if (user.getPopedom() == 0) {                 // 跳转到后台管理页面                 return "backend/management"; // 逻辑视图名             } else {                 // 跳转到前台首页                 return "frontend/index"; // 逻辑视图名             }         } else {             // 将登录错误信息写入会话             session.setAttribute("loginMsg", "用户名或密码错误!");             // 跳转到前台登录页面             return "frontend/login"; // 逻辑视图名         }     }          @RequestMapping("/logout")     public String logout(HttpSession session) {         // 删除会话里保存的用户名信息         session.removeAttribute("username");         // 结束会话         session.invalidate();          // 跳转到前台登录页面         return "frontend/login"; // 逻辑视图名     } }

(十二)创建用户映射器配置文件

在resources里创建mapper子目录,然后在子目录里创建UserMapper.xml

                                                                                 SELECT * FROM t_user WHERE username = #{username} AND password = #{password};       ​​​​​​​

(十二)创建用户映射器配置文件 

在resources里创建mapper子目录,然后在子目录里创建UserMapper.xml

 

                                                                                 SELECT * FROM t_user WHERE username = #{username} AND password = #{password};        

(十三)准备静态资源

在WEB-INF里创建images目录,用来存放图片资源 - bear.png

2、创建样式文件

在WEB-INF里创建css子目录,然后在子目录里创建login.css

 /* 样式 */ body {     margin: 0px;     text-align: center;     background: #cccccc; }

3、创建脚本文件

在WEB-INF里创建js子目录,然后在子目录里创建check.js

 /**  * 检验登录表单  *   * @returns {Boolean}  */ function checkLoginForm() {         // 获取用户名文本框     var username = document.getElementById("username");     // 获取密码文本框     var password = document.getElementById("password");     // 非空校验     if (username.value == "") {         alert("用户名不能为空!");         // 让用户名文本框获得焦点         username.focus();         return false;     }     if (password.value == "") {         alert("密码不能为空!");         // 让密码文本框获得焦点         password.focus();         return false;     }                  return true; // 表明可以提交数据到服务器端 }

(十四)创建页面

在WEB-INF里创建views子目录,在views里创建frontend和backend两个子目录

 

 2、创建登录页面

在views/frontend里创建login.jsp

 

    用户登录                 用户登录                         账号                                         密码                                                                                                     alert("${loginMsg}")    

3、创建网站首页 

在views/frontend里创建index.jsp

    首页         欢迎访问西蒙购物网 登录用户:${username} —— 注销

4、创建后台管理页面

在views/backend里创建management.jsp

    后台管理     西蒙购物网后台管理 管理员:${username} —— 注销

(十五)创建Spring配置文件

在resources里创建config子目录,然后在子目录里创建spring-config.xml

       

       

                                                   

                                           

                                             

(十六)创建Spring MVC配置文件

在resources/config目录里创建spring-mvc-config.xml

​​​​​​​

               

       

       

                   

                                                  

(十七)编辑Web部署描述文件

​​​​​​​

    simonshop             /WEB-INF/views/frontend/login.jsp    

                org.springframework.web.context.ContextLoaderListener    

                contextConfigLocation         classpath:config/spring-config.xml    

                DispatcherServlet         org.springframework.web.servlet.DispatcherServlet                     contextConfigLocation             classpath:config/spring-mvc-config.xml                 1    

                DispatcherServlet         /    

                Character Encoding         org.springframework.web.filter.CharacterEncodingFilter                     encoding             UTF-8                         Character Encoding         /*      

(十八)启动服务器,查看效果

​​​​​​​



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3