手把手叫你学会利用Spring框架编写基本的【学生信息管理系统】(三)(持续更新中)

 项目系列目录:

 手把手叫你学会利用Spring框架编写基本的【学生信息管理系统】(一)

手把手叫你学会利用Spring框架编写基本的【学生信息管理系统】(二)

手把手叫你学会利用Spring框架编写基本的【学生信息管理系统】(三)

手把手叫你学会利用Spring框架编写基本的【学生信息管理系统】(四)  

手把手叫你学会利用Spring框架编写基本的【学生信息管理系统】(五) 


目录

前言

 一、登录信息数据库的设计

 二、登陆界面的设计

login.html

 三、配置文件、jar包导入

         版本号如下:

        导入Jar包代码如下: 

        在web.xml文件中加入以下代码:

        web.xml文件的结构如下: 

​编辑 applicationContext.xml配置文件中所要添加的代码:

 四、创建所用类文件

DB.class具体代码如下:

LoginService.class具体代码如下:

LoginController.class具体代码如下:

UserDao.class具体代码如下:

《后续内容持续更新中!!!》


前言

        本期教程我们要做的是登陆界面以及实现账号密码登录功能,我们采用数据库的方式进行登录功能的实现。

        登陆界面login的设计图如下所示(可以自行设计,我做的比较丑):

一、登录信息数据库的设计

        采用Navicat Premium 15创建数据库--名字为study。创建表名为t_user。

         表的各个字段为如下所示:

        注意:

        1、id字段为主键、并且不能为空、自动递增一定要勾选!!!

        2、name、pass字段的字符集为utf8mb4。

        3、WhetherDelete字段的默认值为0!!!,后面的注释不要忘了。

         表中的信息填写一部分,我写的如下图所示(可以自由发挥!):

         到这里数据库简单的设计就结束了,我们进入到login界面的设计。

 二、登陆界面的设计

        首先,我们需要创建login.html文件和images文件夹(用于存放背景图、logo等),路径为src--main--resources 。如下图所示:

注:如果想使用我的images里的图片的话,可以到我的资源里下载!或者联系我,我发邮箱给你!

         login.html设计就非常的简单了,利用简单的form表单就可以实现。这里就直接贴代码了。

login.html

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>spring学习系统</title>
    <style>
        html body{
            width: 100%;
            height: 100%;
            margin: 0px ;
            padding: 0px;
            background-image: url("images/background.jpg");
            background-repeat: no-repeat;
            background-size: 100%;
        }
        .top{
            height:30% ;
            background-image: url("images/logo.png");
            background-repeat: no-repeat;
            background-position: 580px 120px;
        }

        .middle{
            height:70%;
        }
        .login{
            width: 100%;
            height: 100%;
            background: white;
            opacity: 0.8;
            border: 0px solid red;
            border-radius: 15px;
        }
        .user{
            width: 50%;
            margin-right: 25%;
            margin-left: 25%;
            margin-top: 50px;
            height: 40px;
            font-size: 18px;
            color: black;
            background-image: url("images/user.png");
            background-repeat: no-repeat;
            background-position: 4px 10px;
            padding-left: 30px;
        }
        .pass{
            width: 50%;
            margin-right: 25%;
            margin-left: 25%;
            margin-top: 50px;
            height: 40px;
            font-size: 18px;
            color: black;
            background-image: url("images/pass.png");
            background-repeat: no-repeat;
            background-position: 4px 10px;
            padding-left: 30px;
        }
        .loginbutton{
            width: 285px;
            margin-right: 25%;
            margin-left: 25%;
            margin-top: 50px;
            background-color: royalblue;
            color: white;
            font-size: 18px;
            height: 45px;
            border:0;
            box-sizing: content-box;
            border-radius: 5px;
        }
        button:hover{
            background-color: #008df6;
        }

        span{
            margin-left: 210px;

        }

    </style>
    <script>
        function login() {
            // loginForm.name.value   取loginForm表单下的id为name的元素的值
            loginForm.submit();
        }
    </script>
</head>
<body>
<div class="top" ></div>
<div class="middle">
    <table border="0" style="width: 30%;height: 60%;margin: 0px auto;" cellspacing="0px" cellpadding="0px">
        <tr>

            <td>
                <div class="login">
                    <form id="loginForm" action="main.html" method="post">
                        <span  style="color: #0a5495;font-size:35px;font-weight: bold;">账号登录</span>
                        <input class="user" name="name" id="name" placeholder="请输入账号/邮箱">
                        <input class="pass" type="password" name="pass" id="pass" placeholder="请输入密码">
                        <input class="loginbutton" type="button"  value="登 录" onclick="login()">
                    </form>
                </div>
            </td>
        </tr>
    </table>
</div>
</body>
</html>

 三、配置文件、jar包导入

        在pom.xml文件中导入jar包。(Mysql的jar包在之前已经导入成功了,这里就不写了)。

        在导入之前,提前加入以下版本。

         版本号如下:

<properties>
        <spring.version>5.3.8</spring.version>
    </properties>

        导入Jar包代码如下: 

<!--导入Spring jar包-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</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-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>

<!--阿里巴巴的druid-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.9</version>
        </dependency>

        等待jar包导入成功之后。需要创建配置文件 --applicationContext.xml。

        在web.xml文件中加入以下代码:

<!--加载容器-->
    <!-- spring上下文配置文件参数 -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>
    <!-- context参数监听器 -->
    <listener>
        <listener-class>
            org.springframework.web.context.ContextLoaderListener
        </listener-class>
    </listener>
    <!-- Spring MVC分发器的注册,也是入口 -->
    <servlet>
        <servlet-name>mvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:applicationContext.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>mvc</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

        web.xml文件的结构如下: 

        

         applicationContext.xml配置文件中所要添加的代码:

<!--扫描枪-->
    <!-- 扫描 类、方法、属性上的注解-->
    <context:component-scan base-package="com.study"/>

    <!--druid数据源-->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <!-- 驱动 -->
        <property name="driverClassName"
                  value="com.mysql.jdbc.Driver"/>
        <property name="url"
                  value="jdbc:mysql://localhost:3306/jisuanji1"/>
        <property name="username" value="root"/>
        <property name="password" value="admin"/>
    </bean>
    <!--开启spring MVC的扫描注解-->
    <!--配置spring mvc-->
    <!-- 开启Spring MVC的注解-->
    <!-- MVC注解开启<mvc:annotation-driven>会自动注册
      RequestMappingHandlerMapping与RequestMappingHandlerAdapter两个Bean,
      这是Spring MVC为@Controller分发请求所必需的,并且提供了数据绑定支持,
      @NumberFormatannotation支持,@DateTimeFormat支持,
      @Valid支持读写XML的支持(JAXB)和读写JSON的支持(默认Jackson)等功能。-->
    <mvc:annotation-driven/>

 四、创建所用类文件

        在src--main--Java--com--study下创建db、login、user三个文件夹,分别创建相对应的类:

user包下创建UserDao类。

db包下创建DB类。

login包下创建LoginService、LoginController类。

        创建类的具体结构如下: 

         以下分别将具体的类中的代码粘贴如下:

        DB.class具体代码如下:

package com.study.db;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;

import javax.activation.DataSource;

@Component
public class DB {

    @Autowired
    private DataSource dataSource ;

    public JdbcTemplate getTem(){
        return  new JdbcTemplate((javax.sql.DataSource) dataSource);
    }
}

LoginService.class具体代码如下:

package com.study.login;

import com.study.user.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;


@Service
public class LoginService {
    @Autowired
    UserDao userDao;
    
    public boolean login(String name, String pass) {
        boolean re = false;
        re =  userDao.login(name, pass);
        return re;
    }
}

LoginController.class具体代码如下:

package com.study.login;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;


@Controller 
@RequestMapping("/login")
public class LoginController {
    @Autowired
    LoginService loginService;
    @RequestMapping("login.do")
    public String login(String name,String pass) {
        boolean login = loginService.login(name, pass);
        if (login) {
            //登录页面
            return "/main.html";

        } else {
            return "/login.html";
        }
    }
}

UserDao.class具体代码如下:

package com.study.user;


import com.study.db.DB;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;

@Component
public class UserDao {
    @Autowired
    private DB db;
    public boolean login(String name, String pass) {
        boolean re = false;
        String sql = "select * from study.t_user where name='"+name+"' and pass='"+pass+"'";
        JdbcTemplate tem = db.getTem();
        List<Map<String, Object>> list = tem.queryForList(sql);
        if(list.size()>0){
            re = true;
        }
        return re;
    }
}

        根据以上的所有代码已经可以实现登录功能的实现。在代码中可以看到,我们登录成功之后,需要进入到main.html界面中去。所以,我们需要再创建一个mian.html文件来进行编写主界面的功能展示及设计。

        main.html和login.html创建的位置是同一目录下就可以。我这里就先写了个很简单的标题。

        main.html的代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>主界面</title>
</head>
<body>
<h1>这里是主界面!</h1>
</body>
</html>

        到这里,登录功能已经完成了,并且可以正确的运行!!我们下期继续编写项目内容。谢谢观看!!!

《后续内容持续更新中!!!》

麻烦点个收藏点个关注不迷路!!!

猜你喜欢

转载自blog.csdn.net/m0_56417836/article/details/127438579
今日推荐