在任何一种WEB应用开发中,不论大中小规模的,每个开发者都会遇到一些需要保护程序数据的问题,涉及到用户的LOGIN ID和PASSWORD。那么如何执行验证方式更好呢?实际上,有很多方式来实现。在本文里,我们不会把所有的验证方法都考虑到,我们的目的是让你学会如何以最简单最方便的验证方法来完成。下面将讨论基本的(BASIC)和基于表单的(FORM-BASED)验证方式。我们考虑使用TOMCAT作为WEB SERVER,它通过server.xml和web.xml文件提供基本的和基于表单的验证。JSP页面中的j_security_check 表单(for FORM-based) 需要两个参数:j_username和j_password。它们指定了在SQL数据库中的登陆角色。你能够看到,它的弹性化,可用性和必要性。
第一步,我们要下载TOMCAT和MYSQL,前者用来做WEB SERVER,后者用来做SQL SERVER。还要
下载JDBCRealm工具,它在TOMCAT中使用,用来做MYSQL连接器,连接MYSQL数据库的。
我们假设你已经安装了TOMCAT和MYSQL,那么我们开始从SERVER的配置入手了。当然,你还需要安装JAVA的MYSQL连接驱动,我强烈建议只使用稳定的驱动版本,因为在有些情况下,alpha/beta版本的驱动不能正常工作。
下面我们来操作SQL数据库。老实说,MYSQL和TOMCAT是相当好的工具,它们都是跨平台的,不管你的操作系统是WINDOWS还是类似UNIX/LINUX的,它们都能正常运行。因此,不论运行环境,它们的配置过程都是绝对一样的,中国自学编程网,www.zxbc.cn 。
MySQL
在命令行中执行mysql 客户端命令,然后输入:
[pre]create database weblogin;[/pre]这个将为你创建一个weblogin数据库,它将保存用户名和密码以及角色等一切信息。你对数据库所做的任何改变都会直接立即反映出来。比如说添加用户,改变用户密码和角色等。
[pre]create table users (
login varchar (15) not null,
pass varchar (15) not null,
primary key (login));
[/pre]我们创建一个users表用来保存用户的LOGIN和PASSWORD:
[pre]
create tables groups (
login varchar (15) not null,
group varchar (15) not null,
primary key (login, group));
[/pre]如你看到的,我们要在group表里保存login属于哪个group的信息。下面,我们要插于一些数据用来测试使用,并完成MYSQL的配置工作:
insert into users (’green’, ’testpwd’);
insert into groups (’green’, ’testgroup’);
现在,我们创建了一个用户叫green,他的密码是testpwd,他属于testgroup这个用户组。接着,轮到TOMCAT的配置了。
Tomcat
TOMCAT本身并没有能力操作数据库来实现身份验证。但是可以依靠JDBCRealm。下面我们来使用它。
下面我们从TOMCAT的\\conf\\server.xml文件来开始我们的配置。打开这个文件并找到下面的内容:
[pre]<Realm className=\"org.apache.catalina.realm.MemoryRealm\" />[/pre]删除这一行,或者用<!-- --> 注释掉它,我们要使用JDBCRealm。所以输入下面的内容:
[pre]<Realm className=\"org.apache.catalina.realm.JDBCRealm\" debug=\"99\" driverName=\"org.gjt.mm.mysql.Driver\" connectionURL=\"jdbc:mysql://localhost/w