Jsp+Servlet+C3P0+MD5+MySQL登录验证

简单介绍一下业务实现流程:
在这里插入图片描述
2.框架结构:
在这里插入图片描述 在这里插入图片描述
在这里插入图片描述在这里插入图片描述
前期工作

1.导入数据库连接相关的jar包,在这次项目中我使用的是mysql数据库所以需导入的是MySQL数据库连接驱动包(mysql-connector-java-5.1.40.jar)和c3p0连接池专属包(mchange-commons-java-0.2.11.jar、c3p0-0.9.5.2.jar)

2.编写C3P0配置文件,连接数据库,引入MySQL数据库连接驱动包和c3p0连接池专属包(mysql-connector-java-5.1.40.jar、mchange-commons-java-0.2.11.jar、c3p0-0.9.5.2.jar)

C3p0-config.xml文件这里有两种写法:

<!-- 第一种c3p0的写法 -->
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
	<default-config>
	<!-- 前四个最重要 -->
	<!-- 设置常用的属性  url 驱动  用户 密码   -->
		<property name="jdbcUrl">
			<![CDATA[jdbc:mysql://localhost:3306/water?useUnicode=true&characterEncoding=UTF8&useSSL=false]]>
		</property>
		<property name="driverClass">com.mysql.jdbc.Driver</property>
		<property name="user">root</property>
		<property name="password"></property>
		<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 2 -->
		<property name="acquireIncrement">2</property>
		<!-- 初始化数据库连接池时连接的数量 -->
		<property name="initialPoolSize">3</property>
		<!-- 数据库连接池中的最小的数据库连接数 -->
		<property name="minPoolSize">3</property>
		<!-- 数据库连接池中的最大的数据库连接数 -->
		<property name="maxPoolSize">5</property>
	</default-config>
</c3p0-config>
<!-- 第二种c3p0的写法 -->
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
  <default-config>
  	<!-- 必填 -->
  	<!-- 驱动类 -->
  	<property name="driverClass">com.mysql.jdbc.Driver</property>
  	<!-- URL -->
  	<property name="jdbcUrl">jdbc:mysql://localhost:3306/water?useUnicode=true&amp;characterEncoding=UTF8&amp;useSSL=false</property>
  	<!-- 账号 -->
  	<property name="user">root</property>
  	<!-- 密码 -->
  	<property name="password"></property>
  	<!-- 可选 -->
  	<!-- 初始连接数 -->
    <property name="initialPoolSize">30</property>
    <!-- 最大闲置时间 -->
    <property name="maxIdleTime">30</property>
    <!-- 最大连接数 -->
    <property name="maxPoolSize">100</property>
    <!-- 最小连接数 -->
    <property name="minPoolSize">20</property>
    <!-- 最大SQL语句数 -->
    <property name="maxStatements">200</property>
  </default-config>
</c3p0-config>

3.测试数据库连接
编写log4j日志记录器配置文件打印日志,引入Log4j日志记录包(log4j-1.2.8.jar)
在这里我使用了Log4j日志记录器来输入变量,需要导入log4j相关的jar包(log4j-1.2.8.jar)和配置相关的配置文件(log4j.properties)

#log4j.properties
#设置日志级别和目的地
#log4j.rootCategory=日志级别,目的地1,目的地2...
#日志级别有(从低到高)OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL
#高级别的日志可以包含低级别的日志
#目的地可以定义多个

log4j.rootCategory=INFO,console,file

#配置目的地
#配置目的地的类型Appender
#log4j.appender.目的地名=目的地类型
#目的地类型有:
#org.apache.log4j.ConsoleAppender(控制台),
#org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l [%p] -- %m%n

#配置日志的格式Layout
#log4j.appender.目的地名.layout=格式类型
#格式类型有:
#org.apache.log4j.PatternLayout(可以灵活地指定布局模式)

#配置具体的格式ConversionPattern
#%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,
#比如:%d{yyyy-MM-dd HH:mm:ss,SSS},输出类似:2002-10-18 22:10:28,921;
#%l 输出日志事件的发生位置,及在代码中的行数;
#%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL;
#%M 输出打印该条日志的方法名;
#%n 输出一个回车换行符,Windows平台为"rn”,Unix平台为"n”;

log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l [%p] -- %m%n
log4j.appender.file.File=mylog.log

成功连接数据库显示如下:在这里插入图片描述
正式开始

编写执行sql语句的配置文件(water.xml)解析XML文件,加载SQL语句到缓存

<!-- water.xml -->
<?xml version="1.0" encoding="UTF-8"?>
<services>
	<sql key="getAccountCount" value="select count(1) from account where user_name=? and user_pwd=?" />
	<sql key="findUser" value="select count(1) from account where user_name=?" />
</services>

建立工具层(utils)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值