4.2验证码,MD5和连接池简介4.2.1 验证码的实现:本次设计使用验证码技术的意义:不少网站为了防止用户利用机器人自动注册、登录、灌水,都采用了验证码技术。所谓验证码,就是将一串随机产生的数字或符号,生成一幅图片,图片里加上一些干扰象素(防止OCR),由用户肉眼识别其中的验证码信息,输入表单提交网站验证,验证成功后才能使用某项功能。 验证码生成过程说明: login.jsp主页面通过此语句 <img src="verify.jsp">调用jsp文件,由jsp文件里面的java代码生成该图片,并且将验证码存到session中,以便登录时获取到图片中的验证码 4.2.2 MD5概述: MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2、MD3和MD4发展而来。MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。 调用方法: 通过静态函数String AddMd5.md5(String str) 参数str为需要转换的字符 4.2.3数据库连接池概述: 本次设计使用了连接池,在于使用连接池能优化数据库连接。 数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数来设定的。无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中这项技术能明显提高对数据库操作的性能。 连接池配置代码: 在server.xml中配置以下代码段 <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_MysqlTest_log." suffix=".txt" timestamp="true"/> <Resource name="sqlDB" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="sqlDB"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>maxActive</name> <value>100</value> </parameter> <parameter> <name>maxIdle</name> <value>30</value> </parameter> <parameter> <name>maxWait</name> <value>5000</value> </parameter> <parameter> <name>username</name> <value>root</value> </parameter> <parameter> <name>password</name> <value>root</value> </parameter> <parameter> <name>driverClassName</name> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> </parameter> <parameter> <name>url</name> <value>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Unversity</value> </parameter> </ResourceParams> 调用方法: 在java文件采用JNDI技术取得数据源从而获得数据库连接 Context ctx=new InitialContext(); //建立一个context对象 通过JNDI获得数据源对象 DataSource ds=(DataSource)ctx.lookup("java:comp/env/sqlDB"); 建立一个数据库连接对象 Connection connection=ds.getConnection(); 4.3系统管理功能实现 |