Registered items

1. Project requirements

Use Servlet+Druid+JdbcTemplate to realize user registration function, backend is Mysql database

1. Write the static registration page register.html, which contains: username, password, phone number

2. Write a Servlet that handles the registration function, use the annotation version or the configuration version

3. Use the MVC three-tier architecture to write the Service layer and Dao layer, with interfaces and implementation classes

4. Use the Druid connection pool and JdbcTemplate in the Dao layer to realize the registration of user information in the Users table

5. It is required to write the druid.properties file to store the jdbc parameters, and write the JDBC tool class to obtain the data source DataSource

6. If the registration is successful, jump to success.html, prompt: registration is successful, congratulations!

7. If the registration fails, continue to jump to the registration page.

8. The registration page needs to use js or jq for form verification: if the username or password or phone number is empty, submission is not allowed, and a red text prompt will be displayed behind the corresponding input box: username is empty, or password is empty , Or the phone number is empty!

Second, the required packages and classes

Insert picture description here

Three, the code

UserDaoImpl class:

package com.dao.impl;

import com.dao.UserDao;
import com.user.User;
import com.utils.JdbcUtil;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;


public class UserDaoImpl implements UserDao {
    
    
    @Override
    public boolean login(User user) {
    
    
        JdbcTemplate t = new JdbcTemplate(JdbcUtil.getDs());
        User user1=null;
     try {
    
    
         user1 = t.queryForObject("select * from user where name=? and number=?",
                 new BeanPropertyRowMapper<User>(User.class), user.getName(), user.getNumber());
         System.out.println(user1);
         System.out.println("您注册的用户已存在");
         return false;
     }catch (Exception e){
    
    
         if (user1==null){
    
    
             t.update("insert into user values(null,?,?,?)",user.getName(),user.getPsw(),user.getNumber());
             System.out.println("注册成功");
         }
         return true;
     }
    }
}

UserDao interface:

package com.dao;

import com.user.User;

public interface UserDao {
    
    
    boolean login(User user);
}

UserServiceImpl class:

package com.service.impl;

import com.dao.UserDao;
import com.dao.impl.UserDaoImpl;
import com.service.UserService;
import com.user.User;

public class UserServiceImpl implements UserService {
    
    
    private UserDao dao=new UserDaoImpl();
    @Override
    public boolean login(User user) {
    
    
        return dao.login(user);
    }
}

UserService interface:

package com.service;

import com.user.User;

public interface UserService {
    
    
    boolean login(User user);
}

User class:

package com.user;

public class User {
    
    
    private String name;
    private String psw;
    private int number;

    @Override
    public String toString() {
    
    
        return "User{" +
                "name='" + name + '\'' +
                ", psw='" + psw + '\'' +
                ", number=" + number +
                '}';
    }

    public String getName() {
    
    
        return name;
    }

    public void setName(String name) {
    
    
        this.name = name;
    }

    public String getPsw() {
    
    
        return psw;
    }

    public void setPsw(String psw) {
    
    
        this.psw = psw;
    }

    public int getNumber() {
    
    
        return number;
    }

    public void setNumber(int number) {
    
    
        this.number = number;
    }
}

JdbcUtil class:

package com.utils;

import com.alibaba.druid.pool.DruidDataSourceFactory;
import org.apache.commons.beanutils.BeanUtils;

import javax.sql.DataSource;
import java.io.FileInputStream;
import java.util.Map;
import java.util.Properties;

public class JdbcUtil {
    
    
    private static DataSource ds;
    static{
    
    
        Properties p = new Properties();
        try {
    
    
            p.load(new FileInputStream("D:\\java-two-train\\register\\src\\druid.properties"));
            ds=new DruidDataSourceFactory().createDataSource(p);
        } catch (Exception e) {
    
    
            e.printStackTrace();
        }
    }
    public static DataSource getDs(){
    
    
        return ds;
    }
    public static <T> T mapToBean(Map map, Class<T> c){
    
    
       T t=null;
        try {
    
    
            t=c.newInstance();
            BeanUtils.populate(t,map);
        } catch (Exception e) {
    
    
            e.printStackTrace();
        }
        return t;
    }
}

LoginServlet class:

package com.web;

import com.service.UserService;
import com.service.impl.UserServiceImpl;
import com.user.User;
import com.utils.JdbcUtil;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;

@WebServlet("/login")
public class LoginServlet extends HttpServlet {
    
    
    private UserService service=new UserServiceImpl();
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    
    
        req.setCharacterEncoding("UTF-8");
        Map<String, String[]> map = req.getParameterMap();
        User user = JdbcUtil.mapToBean(map, User.class);
        boolean login = service.login(user);
        if (login){
    
    
            req.getRequestDispatcher("/success.html").forward(req,resp);
        }else {
    
    
            req.getRequestDispatcher("/register.html").forward(req,resp);
        }
    }
}

druid.properties file:

url=jdbc:mysql:///db3?characterEncoding=utf-8
username=root
password=root

register.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="js/jquery-3.3.1.js"></script>
</head>
<style>
    #s{
    
    
        display: none;
    }
</style>
<body>
<form action="/jml/login" method="post">
用户名: <input type="text" name="name" value="" id="name"><span id="sp"></span>
<br>
密码: <input type="password" name="psw" value="" id="psw" >
<br>
电话号码: <input type="number" name="number" value="" id="number">
<br>
<input type="button" value="提交" id="b">
<input type="submit" value="提交" id="s">
</form>
</body>
<script>
    $('#b').click(function () {
    
    
        var n = $('#name').val();
        var psw = $('#psw').val();
        var number = $('#number').val();
        if (n='' || psw==''|| number==''){
    
    
            $('#sp').css('color','red')
            $('#sp').text('用户名为空,或密码为空,或电话号码为空!')
        }else {
    
    
            $('#s').trigger('click')
        }
    })
</script>
</html>

sucess.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>注册成功,恭喜您!</h1>
</body>
</html>

Insert picture description here
Insert picture description here
Insert picture description here

to sum up

The above is all the contents of the registered project today, mainly using the technology and knowledge of mysql, jdbc, html, css, jq, servlet and so on.

Guess you like

Origin blog.csdn.net/StruggleBamboo/article/details/113139562