栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JDBC+Servlet综合练习

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JDBC+Servlet综合练习

JDBC+Servlet综合练习
  • JDBC+Servlet综合练习
    • 需求
    • 项目文件结构(Servlet_Execer)
    • pom依赖配置
    • resources
    • domain
    • dao
    • services
    • servlet
    • utils
    • webapp
    • tomcat
    • 运行

JDBC+Servlet综合练习
需求

用户登录案例需求:

  1. 编写login.jsp登录页面
    username & password 两个输入框
  2. 使用Druid数据库连接池技术,操作mysql数据库中user表
  3. 使用JdbcTemplate技术封装JDBC
  4. 登录成功展示:登录成功
  5. 登录失败展示:登录失败

项目文件结构(Servlet_Execer)
│  pom.xml
│
└─src
    │
    └─main
        ├─java
        │  ├─dao
        │  │  │  UserDao.java
        │  │  │
        │  │  └─impl
        │  │          UserDaoImplement.java
        │  │
        │  ├─domain
        │  │      User.java
        │  │
        │  ├─services
        │  │  │  UserServices.java
        │  │  │
        │  │  └─impl
        │  │          UserServicesImplement.java
        │  │
        │  ├─servlet
        │  │      LoginServlet.java
        │  │
        │  └─utils
        │          JdbcUtils.java
        │
        ├─resources
        │      druid.properties
        │
        └─webapp
            │  index.jsp
            │  login.jsp
            │
            └─WEB-INF

pom依赖配置
  
    
      junit
      junit
      4.11
      test
    

    
      javax.servlet
      javax.servlet-api
      4.0.1
    

    
    
      javax.servlet.jsp
      javax.servlet.jsp-api
      2.3.3
      provided
    

    
    
      javax.el
      javax.el-api
      3.0.1-b06
    

    
    
      javax.servlet.jsp.jstl
      jstl
      1.2
    


    
      mysql
      mysql-connector-java
      8.0.29
    


    
      com.alibaba
      druid
      1.2.11
    

    
    
      org.springframework
      spring-jdbc
      5.3.21
    

  

resources

druid.properties

driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/jdbcstu
username=root
password=123456

domain
package domain;

public class User {

    private int id;
    private String username;
    private String password;

    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;
    }

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


dao

UserDao

package dao;

import domain.User;

public interface UserDao {

    
    User findUser(String username, String password);
}

impl(UserDaoImplement)

package dao.impl;

import dao.UserDao;
import domain.User;
import org.springframework.dao.EmptyResultDataAccessException;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import utils.JdbcUtils;

import javax.sql.DataSource;

public class UserDaoImplement implements UserDao {

    @Override
    public User findUser(String username, String password) {
        DataSource dataSource = JdbcUtils.getDataSource();
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
        String sql = "select * from user where username = ? and password = ?";
        User user;
        try {
            // queryForObject期待结果为1,否则报错 此处设置为null,避免报错
            user = jdbcTemplate.queryForObject(sql, new BeanPropertyRowMapper(User.class), username, password);
        } catch (EmptyResultDataAccessException e) {
            user = null;
        }
        return user;
    }

}


services

UserServices

package services;

public interface UserServices {
    boolean userLogin(String username, String password);
}

impl(UserServicesImplement )

package services.impl;

import dao.UserDao;
import dao.impl.UserDaoImplement;
import services.UserServices;

public class UserServicesImplement implements UserServices {
    @Override
    public boolean userLogin(String username, String password) {
        UserDao userDao = new UserDaoImplement();
        return userDao.findUser(username, password) != null;
    }
}

servlet

LoginServlet

package servlet;

import services.UserServices;
import services.impl.UserServicesImplement;

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("/loginServlet")
public class LoginServlet 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 userNmaes = req.getParameter("username");
        String password = req.getParameter("password");
        // 验证用户
        UserServices userServices = new UserServicesImplement();
        boolean flag = userServices.userLogin(userNmaes, password);
        // 设置响应编码 内容
        resp.setContentType("text/html;charset=utf-8");
        if(flag) {
            resp.getWriter().write("登录成功");
        } else {
            resp.getWriter().write("登录失败");
        }
    }
}


utils
package utils;

import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

public class JdbcUtils {
    private static DataSource dataSource;

    static {
        try {
            Properties pro = new Properties();
            InputStream in = JdbcUtils.class.getClassLoader().getResourceAsStream("druid.properties");
            pro.load(in);
            dataSource = DruidDataSourceFactory.createDataSource(pro);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    
    public static Connection getConnection() throws SQLException {
        return dataSource.getConnection();
    }

    
    public static DataSource getDataSource() {
        return dataSource;
    }

    
    public static void close(ResultSet resultSet, PreparedStatement preparedStatement, Connection connection) {
        try {
            if(resultSet != null) {
                resultSet.close();
            }
            if(preparedStatement != null) {
                preparedStatement.close();
            }
            if(connection != null) {
                connection.close();
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}


webapp

login.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>



    
    LoginPage
    




tomcat

运行

成功登录

访问 http://localhost:8080/login.jsp




登录失败


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1006269.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号