servlet实现简单的登录功能

以下是个人的感悟,如有不当之处,还希望大佬们赐教!
servlet主要是这几层结构,即控制层(controller层),业务层(service层),数据访问层(Dao层),和视图层(view层)。
举个例子,这可以比作是一个酒楼:
1.数据访问层是酒楼的拣货员,负责业务需要的食材,它的作用就是直接从数据库选取,插入,删除指定的数据,只写对数据库操作的语句。
2.业务层是厨房,负责加工食材并完成菜品的,它的作用就是实现各种功能。对控制层和数据访问层起到承上启下的作用。
3.控制层是服务员,负责记录客户的要求和传菜的职责,它的作用就是接收前端请求并传递给业务层处理,也要从业务层处理好的功能返回给视图层。
4.视图层是客户的视角,看最终的菜品,是展示网页的最终界面的。
下面我们来看看代码(目前只完成了数据访问层→业务层→控制层→视图层的单向操作)
首先是设置Dao层基本属性的类文件:

import com.alibaba.druid.pool.DruidDataSource;

import java.sql.Connection;

public class MySqlDbUtil {
   
    private static DruidDataSource dataSource = null;
    private static void initDataSource() throws Exception{
   
        if (dataSource == null){
   

            dataSource = new DruidDataSource();
            dataSource.setUrl("jdbc:mysql://localhost:3306/hospital?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8");//连接数据库的路径和时区
            dataSource.setUsername("root");//输入自己的数据库用户名
            dataSource.setPassword("123456");//输入数据库用户名的密码
            dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");//输入Driver的路径,注意:路径大小写敏感!

            //上面代码即可完成连接,但要提高配置的性能,还可加入以下代码
            dataSource.setInitialSize(2);//设置初始化参数为2个连接数
            dataSource.setMinIdle(2);//设置最小连接数为2
            dataSource.setMaxActive(20);//设置最大连接数为10

            dataSource.setMaxWait(20000);//设置最大等待相应时间(单位毫秒)此时为20秒(连接不上需要等待的时间)
            dataSource.setTimeBetweenEvictionRunsMillis(20000);//设置检查无响应的时间长度,若无响应则断开,此时为20秒

            dataSource.setValidationQuery("SELECT 'x'");//时不时返回引号内的内容以提醒用户连接未断开,仍有效
            dataSource.setTestWhileIdle(true);//判断用户空闲时,再发送上条判断连接是否正常的提示
            dataSource.setTestOnBorrow(true);//空余时再去处理
        }
    }
    public  static Connection getConnection() throws Exception{
   
        initDataSource();
        return dataSource.getConnection();
    }
}

接着是Dao层的类文件(还要先定义一个接口来规范它):

package cn.edu.mju.hospital1.persiste;

import cn.edu.mju.hospital1.entity.PatientInfo;
import cn.edu.mju.hospital1.entity.PatientLogin;

public interface IPatientLoginDao {
   
    public PatientLogin findPatLogin(Integer idPat,String pwdPat,String namePat
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值