SSM整合 登录注册小项目

 

整合SSM制作登录注册功能

 

首先 引入pom.xml 配置  对应版本确定无冲突  注意反射插件的引入路径

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.kkb</groupId>
    <artifactId>myssm_kkb</artifactId>
    <version>1.0-SNAPSHOT</version>

    <packaging>war</packaging>

    <!--SSM整合  spring-springMVC mybatis mysql -->
    <!-- 集中定义依赖版本号:一定要注意版本号,避免踩坑-->
    <properties>
        <spring.version>5.2.13.RELEASE</spring.version>
        <mybatis.version>3.5.6</mybatis.version>
        <mybatis.spring.version>1.3.3</mybatis.spring.version>
        <pagehelper.version>5.1.10</pagehelper.version>
        <mysql.version>8.0.23</mysql.version>
        <druid.version>1.2.3</druid.version>
        <servlet-api.version>4.0.1</servlet-api.version>
        <jackson.version>2.9.6</jackson.version>
        <log4j.version>1.2.17</log4j.version>
        <junit.version>4.12</junit.version>
    </properties>
    <dependencies>
        <!-- spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--文件上传-->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.1</version>
        </dependency>
        <!-- Mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>${mybatis.version}</version>
        </dependency>
        <!-- Mybatis spring整合需要的jar -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>${mybatis.spring.version}</version>
        </dependency>
        <!-- 分页插件 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>${pagehelper.version}</version>
        </dependency>
        <!-- MySql -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
        </dependency>
        <!-- 连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>${druid.version}</version>
        </dependency>
        <!-- servlet -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>${servlet-api.version}</version>
            <scope>provided</scope>
        </dependency>
        <!-- Jackson Json处理工具包 -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <!-- log4j -->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>${log4j.version}</version>
        </dependency>
        <!-- junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--@Resource注解的依赖-->
        <dependency>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
            <version>1.3.2</version>
        </dependency>
    </dependencies>

    <!-- 插件配置 -->
    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory><!--所在的目录-->
                <includes><!--包括目录下的.properties,.xml 文件都会被扫描到-->
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>false</filtering>
            </resource>
        </resources>
        <plugins>
            <!-- 设置项目的编译版本 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <!-- 设置tomcat插件 -->
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <!-- 指定端口 -->
                    <port>80</port>
                    <!-- 请求路径 -->
                    <path>/</path>
                    <uriEncoding>UTF-8</uriEncoding>
                </configuration>
            </plugin>
            <!--反向生成插件-->
            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.5</version>
                <configuration>
                    <!--配置文件的路径-->
                    <configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
                    <overwrite>true</overwrite>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.mybatis.generator</groupId>
                        <artifactId>mybatis-generator-core</artifactId>
                        <version>1.3.5</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>

</project>

 

login.html 登录页面

<form action="/admin/test01" method="get">
        username:<input type="text" name="username"/><br/>
        password:<input type="text" name="password"/><br/>
            <button type="submit">提交</button>
            <a href="../pages/register.html">注册</a>
    </form>

register.html 注册页面

<form action="/admin/register" method="get" >
        username:<input type="text" name="username"><br>
        password:<input type="text" name="password"><br>
        <button type="submit">注册</button>
    </form>

 

注意pom.xml 引入了反向生成插件,右边插件列表双击后自动生成mapper文件和pojo文件


resources底下需要配置的文件就不发了  若有需要评论即可    现在看下我们的包和类


 

刚刚说了 mapper和pojo是反向生成插件自动生成,并且对应着数据库的字段属性一模一样,登录和注册需要用到的方法在AdminMapper里有,思路就是在Controller层接受前端传递过来的username和password,最后调用我们即将书写的service的方法进行登录的用户名密码判断和注册方法也就是增加方法即可,所以我们现在需要写service为Controller服务。

 

这里不做过多讲解,有疑问可以评论。

package com.kkb.service;

import com.kkb.mapper.AdminMapper;
import com.kkb.pojo.Admin;
import com.kkb.pojo.AdminExample;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.List;

@Service
public class AdminService {
    @Resource
    private AdminMapper adminMapper;

    //根据传进来的账号密码    查询数据库
    @Transactional(propagation = Propagation.REQUIRED,readOnly = true)
    public boolean findPassByName(String username, String password){
        Admin admin = adminMapper.selectByPrimaryKey(username);
        if (admin.getPassword().equals(password)) {
            return true;
        }
        return false;
    }

    //不是readOnly
    @Transactional(propagation = Propagation.REQUIRED,rollbackFor = {Exception.class})
    public boolean insertNamePass(String username,String password){
        Admin admin = new Admin();
        admin.setUsername(username);
        admin.setPassword(password);
        int insert = adminMapper.insert(admin);
        return true;
    }
}

 

最后完成Controller层 

package com.kkb.controller;

import com.alibaba.druid.stat.TableStat;
import com.kkb.pojo.Admin;
import com.kkb.service.AdminService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;

import javax.annotation.Resource;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;

@Controller
@ResponseBody
@RequestMapping("admin")
public class AdminController {
    @Resource
    private AdminService adminService;


    @RequestMapping("test01")
    public ModelAndView test01(HttpServletRequest request){
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        boolean passByName = adminService.findPassByName(username, password);

        if (passByName){
            return new ModelAndView("success");
        }
        return new ModelAndView("error");
    }

    @RequestMapping("register")
    public ModelAndView register(HttpServletRequest request){
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        //创建对象
        Admin admin = new Admin(username,password);
        boolean flag = adminService.insertNamePass(admin.getUsername(), admin.getPassword());
        if(flag){
            return new ModelAndView("login");
        }
        return new ModelAndView("error");
    }
}

运行!(和数据库对比)即可

 

反之返回错误页面  谢谢!

 

博主是个菜鸡...慢慢积累也许就能...变得更菜了QAQ

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值