写一个用户登入功能(html+ tomcat + mysql)

用户登入功能的实现(html + tomcat + mysql)

第一导入 jar包(放入到web-inf的文件夹下) 和html

Title

游戏 玩
第二写个jdbc操控数据库的一个类 package cn.itcast.web.UserDao;

import cn.itcast.web.jdbc.ConnectionPool;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;

import javax.jws.soap.SOAPBinding;
import javax.sql.DataSource;
import java.util.List;

public class UserDao {

/**
 *  jdbc功能实现类
 * @param user
 * @return
 */
JdbcTemplate jdbcTemplate = new JdbcTemplate(ConnectionPool.getDataSource());
public  User Login( User user ){

       String sql ="select * from ss where  usernme = ? and password = ?";

     User user1 = jdbcTemplate.queryForObject(sql ,new BeanPropertyRowMapper<User>(User.class),
             user.getUsernme() ,user.getPassword());


    return user1;


}

}

这个是Spring 提供 jbdc配套的工具类
package cn.itcast.web.jdbc;

import com.alibaba.druid.pool.DruidDataSource;

import java.sql.*;

/**

  • 单例模式-饿汉设计模式

  • @author peanut
    */
    public class ConnectionPool {

    private static DruidDataSource ds = null;

    /**

    • 禁止外部创建对象
      */
      private ConnectionPool() {
      }

    ;

    //加载时创建
    static {
    //创建一个数据库连接池
    ds = new DruidDataSource();
    //设置数据库连接驱动
    ds.setUrl(“jdbc:mysql://localhost:3306/text1?characterEncoding=utf-8&serverTimezone=UTC&useSSL=false”);
    //设置数据库用户名
    ds.setUsername(“root”);
    //设置数据库密码
    ds.setPassword(“1234”);
    //初始化数据库连接数,开始连接数为100条
    ds.setInitialSize(100);
    //设置空闲时数据库最小连接数,当目前没有人使用connection连接时,连接池也会有50个待命连接
    ds.setMinIdle(50);
    //设置最大等待时间1分钟,当所有的connection连接都被使用时,在等待获取连接期间最多等待一分钟就会抛出异常
    ds.setMaxWait(1000 * 60);
    //连接池最大连接数,连接池最大连接200个connection
    ds.setMaxActive(200);
    }
    /**

    • 返回一个连接池方法 目的 是让template连接到数据原
      */
      public static DruidDataSource getDataSource(){

return ds;
}

/**
 * 获取一个connection连接对象
 *
 * @return
 */
public static Connection getConnection() {
    synchronized (ConnectionPool.class) {
        if (ds != null) {
            try {
                return ds.getConnection();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        return null;
    }
}

/**
 * 关闭连接
 *
 * @param rs
 * @param st
 * @param conn
 * @return
 */
public static boolean close(ResultSet rs, Statement st, Connection conn , PreparedStatement prepa ) {
    synchronized (ConnectionPool.class) {
        try {
            if (rs != null) {
                rs.close();
            }
            if (st != null) {
                st.close();
            }
            if (conn != null) {
                conn.close();
            }
            if( prepa != null){
                prepa.close();
            }
        } catch (SQLException throwables) {
            throwables.printStackTrace();
            return false;
        }
    }
    return true;
}

}

三, 写个实体类(用来封装 用户输入的数据 )
package cn.itcast.web.UserDao;

public class User {
private String usernme ;
private String password;

public String getUsernme() {
    return usernme;
}

public void setUsernme(String usernme) {
    this.usernme = usernme;
}

public String getPassword() {
    return password;
}

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

@Override
public String toString() {
    return "User{" +
            "usernme='" + usernme + '\'' +
            ", password='" + password + '\'' +
            '}';
}

}

四 ,Demo继承httpservlet 的类(来进行数据逻辑判断)
package cn.itcast.web.request;

import cn.itcast.web.UserDao.User;
import cn.itcast.web.UserDao.UserDao;

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;

@WebServlet("/Demo4")
public class Demo4 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        this.doPost(req ,resp);



    }




    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {


        String parameter = req.getParameter("usernme");
        String password = req.getParameter("possword");

// System.out.println(parameter);
// System.out.println(password);
User user = new User();
user.setUsernme(parameter);
user.setPassword(password);

        UserDao userDao = new UserDao();
        User login = userDao.Login(user);

          if(login == null){
              System.out.println("登入失败");
              // 进行跳转
                  req.getRequestDispatcher("/SucceessServlet").forward(req, resp);


          }else{
              // 进行跳转
              req.getRequestDispatcher("/FailServlet").forward(req, resp);
              //保存数据
              req.setAttribute("hers", user);

              System.out.println("登入成功");
          }


    }
}

第五 使用跳转和共享资源来进行登入失败或是登入成功的返回页面

登入失败
package cn.itcast.web.servlet;

import cn.itcast.web.UserDao.User;
import cn.itcast.web.UserDao.UserDao;
import org.springframework.jdbc.core.BeanPropertyRowMapper;

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.List;

@WebServlet(“/FailServlet”)
public class FailServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

}




@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {


        //获得编码
    resp.setContentType("text/html;charaset=utf-8");

    resp.getWriter().write("登入失败");



}

}

登入成功
package cn.itcast.web.servlet;

import cn.itcast.web.UserDao.User;

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;

@WebServlet(“/SucceessServlet”)
public class SucceessServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

}




@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {




    //获取req域中的User对象
    User user = (User)req.getAttribute("hers");
    //设置编码
    resp.setContentType("text/html;charaset=utf-8");

    resp.getWriter().write("登入成功"+user.getUsernme()+"欢迎你");


}

}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值