Jsp+Servlet+JDBC实现登录注册

1.  搭建环境  
2.  在MySQL 中建立数据库表
表结构如下:

Id:无实意主键,采用自增方式生成

stuId :学号

Name:姓名

Password:密码

registerDate:注册时间

email: Email

phone:电话号码

sex :性别

对应的SQL 语句如下:

DROP TABLE IF EXISTS `account`;

CREATE TABLE `account` (

  `Id` int(11) NOT NULL auto_increment,

  `stuId` varchar(20) NOT NULL,

  `name` varchar(50) NOT NULL,

  `sex` varchar(6) ,

  `registerDate` date ,

  `email` varchar(100) ,

  `phone` varchar(30 ,

  `password` varchar(20) ,

  PRIMARY KEY  (`Id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3.  新建Web 项目

在MyEclipse 中新建 "Web Project" ,命名为 RegisterSystem , Target Runtime 选项选择“ Apache Tomcat v6.0 ”,其它选项默认即可,点击完成,创建项目完毕。

4.  开发实体类Account

新建类,命名为“Account ”,为该类定义属性,其中属性与数据表的各列相对应。为类添加方法,方法只需包括对属性的 Get 和 Set 方法,不包含任何业务逻辑。

5.  配置数据源

数据源的配置有如下三种方法:

方法 一:
在Tomcat6.0 解压目录 conf 下找到 context.xml, 在其中的   中加入如下代码:

Java代码 
    password="lectery" username="root" driverClassName="org.gjt.mm.mysql.Driver" 
 url="jdbc:mysql://localhost/exp01" maxActive="100" maxIdle="30" maxWait="5000"/> 
    password="lectery" username="root" driverClassName="org.gjt.mm.mysql.Driver"
 url="jdbc:mysql://localhost/exp01" maxActive="100" maxIdle="30" maxWait="5000"/>
 

在工程应用中/WEB-INF/ 下的 web.xml 中加入如下代码:

Java代码 
  
  MySQL DataSource  
  jdbc/mysql  
  javax.sql.DataSource  
  Container  
  

  MySQL DataSource
  jdbc/mysql
  javax.sql.DataSource
  Container

 
把MySQL-Connector-java-3.0.12-bin.jar( 可换更高版本 ) 加到 Tomcat 安装目录中的 lib 目录下和工程中的 lib 目录下。


方 法 二:
在Tomcat6.0 解压目录 conf 下找到 server.xml, 在其中的 中加入如下代码:

Java代码 
password="lectery" username="root" driverClassName="org.gjt.mm.mysql.Driver"   
url="jdbc:mysql://localhost/exp01" maxActive="100" maxIdle="30" maxWait="5000"/> 
password="lectery" username="root" driverClassName="org.gjt.mm.mysql.Driver"
url="jdbc:mysql://localhost/exp01" maxActive="100" maxIdle="30" maxWait="5000"/>
 
在Tomcat6.0 解压目录 conf 下找到 context.xml, 在其中的 中加入并修改成如下代码:

Java代码 
  
  
           
 


        

 
在工程中/WEB-INF/ 下的 web.xml 中加入如下代码:

Java代码 
  
MySQL DataSource  
jdbc/mysql  
javax.sql.DataSource  
Container  
  

MySQL DataSource
jdbc/mysql
javax.sql.DataSource
Container

 
把MySQL-Connector-java-3.0.12-bin.jar( 或更高版本 ) 加到 Tomcat 安装目录中的 lib 目录下和工程中的 lib 目录下。

方法三:
在Tomcat6.0 解压目录 conf 下找到 server.xml, 在其中的 中加入如下代码:

Java代码 
debug="5" reloadable="true" crossContext="true">  
 
prefix="localhost_MysqlTest_log." suffix=".txt" 
timestamp="true"/>  
username="root" driverClassName="org.gjt.mm.mysql.Driver" url="jdbc:mysql://localhost/exp01"   
maxActive="100" maxIdle="30" maxWait="5000"/>  
 
debug="5" reloadable="true" crossContext="true">

prefix="localhost_MysqlTest_log." suffix=".txt"
timestamp="true"/>
username="root" driverClassName="org.gjt.mm.mysql.Driver" url="jdbc:mysql://localhost/exp01"
maxActive="100" maxIdle="30" maxWait="5000"/>

 

在工程中/WEB-INF/ 下的 web.xml 中加入如下代码:

Java代码 
  
  MySQL DataSource  
  jdbc/mysql  
  javax.sql.DataSource  
  Container  
  

  MySQL DataSource
  jdbc/mysql
  javax.sql.DataSource
  Container

 

  把MySQL-Connector-java-3.0.12-bin.jar( 或更高版本 ) 加到 Tomcat 安装目录中的 lib 目录下和工程中的 lib 目录下。
通过以上三步,大部分时候还是起作用的,但有时会出现异常,因此不建议使用。
以上几种方案在实践中经受了测试,方法一和二比较稳定,方发三比较不稳定,所以对于方法三的采用须谨慎。为简单起见,本实验中采用了方法一的做法,经过测试数据源配置成功。

 

6.开发数据库访问类

由于本次实验中只涉及到了一张数据库表,所以代码编写起来相对简单。整体DAO 的组织采用了常见的三层结构,在编写过程中参考了 Clinton Begin的经典例子 JPetStore 中有关数据库访问类编写的代码 。   开发Jsp 页面

本实验的最终目标是要实现一个注册登录系统,所以jsp 页面大致上分为 5 个,分别为

v  Register.jsp:用户注册页面,显示用户注册表单

v  Login.jsp:登录页面,显示登录信息输入框

v  Login_success.jsp:登录成功页面,显示登录成功信息

v  Register_success.jsp注册成功页面,显示注册成功信息和登录链接

v  Error.jsp:系统错误页面,返回系统的异常信息,主要供开发人员使用

其中jsp 页面采用 JSTL 和 EL 相结合的方式编写,使得代码更加清晰,易于维护。同时,在页面中适当加入了 JavaScript 脚本和 css 样式,使得界面更加美观。

7.开发控制器类

根据对系统总体功能的分析,控制器类分为以下三个:

v  RegisterServlet:负责处理 register.jsp 提交的用户注册请求,对用户注册流程实现总体的控制。当请求到来时,首先对用户注册信息进行验证,如果验证通过则调用 AccountService 类中的方法将注册信息保存到数据库中,添加记录成功后将跳转到 register_success.jsp 提示用户注册成功,并显示登录链接;如果验证没有通过则按照实验要求把错误信息放到 session 共享范围中,供 jsp 页面显示;若在执行程序过程中出现异常,则控制器将跳转到 error.jsp 页面并显示出异常相关信息,供开发人员修改其中的问题。

v  LoginServlet:负责处理 login.jsp 提交的登录申请。首先对用户输入的登录信息进行合法性验证(如信息是否为空或字符串长度是否符合规定等),如果没有通过验证则将跳转回登录页面并显示错误信息;如果验证通过则调用 dao 提供的相关方法在数据库中查找符合要求的用户信息,若成功找到符合要求的用户则转到 login_success.jsp 并显示登录成功等相关信息,同时将此次登录的用户名存放到客户端的 cookie 文件中供用户下次登录使用,若没有查询到符合条件的用户则将跳转回登录界面 login.jsp 并提示用户重新输入登录信息。若在执行程序过程中出现异常,则控制器将跳转到 error.jsp 页面并显示出异常相关信息,供开发人员修改其中的问题。

GenerateCodeServlet:由于 登录页面需要完成验证码功能 ,所以将整个的验证码生成代码封装在了单独的Servlet 中,也可以编写一个工具类将验证码生成代码放到工具类中,以便将来的复用,同时能够对业务层和控制层进行有效的分离,使程序更加清晰。

你可能感兴趣的:(jsp,tomcat,mysql,java)