`
zcz123
  • 浏览: 156827 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类

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, 在其中的 <Context></Context>  中加入如下代码:

Java代码 
<Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource"   
    password="lectery" username="root" driverClassName="org.gjt.mm.mysql.Driver" 
 url="jdbc:mysql://localhost/exp01" maxActive="100" maxIdle="30" maxWait="5000"/> 
<Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource"
    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代码 
<resource-ref>  
  <description>MySQL DataSource</description>  
  <res-ref-name>jdbc/mysql</res-ref-name>  
  <res-type>javax.sql.DataSource</res-type>  
  <res-auth>Container</res-auth>  
</resource-ref>  
<resource-ref>
  <description>MySQL DataSource</description>
  <res-ref-name>jdbc/mysql</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
</resource-ref>
 
把MySQL-Connector-java-3.0.12-bin.jar( 可换更高版本 ) 加到 Tomcat 安装目录中的 lib 目录下和工程中的 lib 目录下。


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

Java代码 
<Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource"   
password="lectery" username="root" driverClassName="org.gjt.mm.mysql.Driver"   
url="jdbc:mysql://localhost/exp01" maxActive="100" maxIdle="30" maxWait="5000"/> 
<Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource"
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, 在其中的 <Context></Context> 中加入并修改成如下代码:

Java代码 
<Context path="/RegisterSys" debug="1" reloadable="true" docBase="E:\EclipseWorkPlace\RegisterSys\WebRoot">  
<ResourceLink global="jdbc/mysql" name="jdbc/mysql" type="javax.sql.Datasource"/>  
         <!--此处可能有系统其它自动生成的内容 -->  
</Context> 
<Context path="/RegisterSys" debug="1" reloadable="true" docBase="E:\EclipseWorkPlace\RegisterSys\WebRoot">
<ResourceLink global="jdbc/mysql" name="jdbc/mysql" type="javax.sql.Datasource"/>
         <!--此处可能有系统其它自动生成的内容 -->
</Context>

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

Java代码 
<resource-ref>  
<description>MySQL DataSource</description>  
<res-ref-name>jdbc/mysql</res-ref-name>  
<res-type>javax.sql.DataSource</res-type>  
<res-auth>Container</res-auth>  
</resource-ref>  
<resource-ref>
<description>MySQL DataSource</description>
<res-ref-name>jdbc/mysql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
 
把MySQL-Connector-java-3.0.12-bin.jar( 或更高版本 ) 加到 Tomcat 安装目录中的 lib 目录下和工程中的 lib 目录下。

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

Java代码 
<Context path="/RegisterSys" docBase="E:\EclipseWorkPlace\RegisterSys\WebRoot" 
debug="5" reloadable="true" crossContext="true">  
 
<Logger className="org.apache.catalina.logger.FileLogger" 
prefix="localhost_MysqlTest_log." suffix=".txt" 
timestamp="true"/>  
<Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource" password="lectery"   
username="root" driverClassName="org.gjt.mm.mysql.Driver" url="jdbc:mysql://localhost/exp01"   
maxActive="100" maxIdle="30" maxWait="5000"/>  
</Context> 
<Context path="/RegisterSys" docBase="E:\EclipseWorkPlace\RegisterSys\WebRoot"
debug="5" reloadable="true" crossContext="true">

<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_MysqlTest_log." suffix=".txt"
timestamp="true"/>
<Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource" password="lectery"
username="root" driverClassName="org.gjt.mm.mysql.Driver" url="jdbc:mysql://localhost/exp01"
maxActive="100" maxIdle="30" maxWait="5000"/>
</Context>

 

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

Java代码 
<resource-ref>  
  <description>MySQL DataSource</description>  
  <res-ref-name>jdbc/mysql</res-ref-name>  
  <res-type>javax.sql.DataSource</res-type>  
  <res-auth>Container</res-auth>  
</resource-ref>  
<resource-ref>
  <description>MySQL DataSource</description>
  <res-ref-name>jdbc/mysql</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
</resource-ref>
 

  把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+Servlet + JDBC+MySQL 注册和登录

    在这个项目中,“JSP+Servlet + JDBC+MySQL 注册和登录”就是一个典型的技术栈,用于实现这样的系统。下面我们将深入探讨这四个技术组件及其在实现注册和登录功能中的作用。 1. **JSP(JavaServer Pages)**:JSP是...

    jsp+servlet+jdbc实现简单的购物车实例.zip

    jsp+servlet+jdbc实现简单的购物车实例,购物数据通过session存储 1、加入购物车时,把数据保存在session中 2、点击系统退出时,购物车中的数据插入到数据库购物车表 3、再次登录时,查询数据库购物车表的数据加载到...

    Jsp+Servlet+JavaBean+JDBC简单登录实例

    本实例将详细讲解如何利用JavaServer Pages (JSP)、Servlet、JavaBean以及Java Database Connectivity (JDBC) 来实现这样一个简单的登录功能。 **一、JSP(JavaServer Pages)** JSP是Java的一种动态网页技术,允许...

    jsp+servlet+jdbc实现增删改查项目

    史上最简单的jsp+servlet+jdbc实现CRUD项目,已经经历了千锤百炼的测试与修改,健壮性一级棒!没有任何问题。而且简明易懂,内附大量注释,是不可多得的好例子。为了保证简单,甚至没有把每个servlet里的jdbc连接...

    参考源码-jsp+servlet+jdbc实现新闻管理系统.zip

    这是JSP+Servlet+MySql新闻管理系统,环境Eclipse+Mysql+Tomacat8.5运行的,里面libJAR包都有,jsp+servlet+jdbc实现新闻管理系统,这个视频值得看,很基础。...

    基于JSP+Servlet+JavaBean+JDBC+DAO的Web图书管理架构设计该系统

    基于JSP+Servlet+JavaBean+JDBC+DAO的Web架构设计该系统,进一步了解并掌握如何对数据库进行操作,以及如何分析、设计一个应用系统。 需求要求: 该系统的基本需求是,系统要实现如下的基本管理功能: (1)用户分为...

    JSP+Servlet+JDBC实现MYSQL增删改查

    在本文中,我们将深入探讨如何使用JSP(JavaServer Pages)、Servlet和JDBC(Java Database Connectivity)来实现MySQL数据库的增、删、改、查操作。这种方法在小型项目中非常常见,但也有其局限性,如代码与SQL语句...

    基于JSP+JavaBean+Mysql+JDBC+Servlet实现javaWeb登录注册

    在本项目中,“基于JSP+JavaBean+Mysql+JDBC+Servlet实现javaWeb登录注册”是一个典型的Java Web应用程序,它使用了多种核心技术来构建一个完整的用户管理系统,包括用户登录和注册。以下是对这些技术及其在项目中的...

    jsp+servlet+javabean jdbc连接数据库 用户登录

    【标题】"jsp+servlet+javabean jdbc连接数据库 用户登录"所涉及的知识点主要集中在Web开发中的几个关键组件和技术上。JSP(JavaServer Pages)是Java平台上的动态网页技术,Servlet是Java用于处理HTTP请求的服务端...

    jsp+servlet+jdbc实现简单的购物车实例,购物数据通过session存储

    jsp+servlet+jdbc实现简单的购物车实例,购物数据通过session存储 项目描述 帮学妹写的一个简单上机题:jsp+servlet购物车 购物车使用session保存数据 系统退出时,购物车中数据入库。 运行环境 jdk7+tomcat7+...

    基于JSP+Servlet+JDBC+MySQL+Bootstrap的考勤管理系统.zip

    基于JSP+Servlet+JDBC+MySQL+Bootstrap的考勤管理系统 基于JSP+Servlet+JDBC+MySQL+Bootstrap的考勤管理系统 基于JSP+Servlet+JDBC+MySQL+Bootstrap的考勤管理系统 基于JSP+Servlet+JDBC+MySQL+Bootstrap的考勤管理...

    基于JSP + Servlet + JDBC的图书馆管理系统.zip

    基于JSP + Servlet + JDBC的图书馆管理系统 基于JSP + Servlet + JDBC的图书馆管理系统 基于JSP + Servlet + JDBC的图书馆管理系统 基于JSP + Servlet + JDBC的图书馆管理系统 基于JSP + Servlet + JDBC的图书馆管理...

    jsp+servlet+jdbc学生信息管理系统

    本项目"jsp+servlet+jdbc学生信息管理系统"就是这样一个典型的应用实例,它采用经典的MVC(Model-View-Controller)架构模式,利用Java Web技术栈,包括JSP、Servlet和JDBC,实现了对学生信息的高效管理。...

    JSP + Servlet + JDBC + Mysql简单实现增删改查.rar

    javaweb无框架入门开发参考,JSP + Servlet + JDBC + Mysql 实现增删改查。IDE工具使用idea,压缩包里有网站文件和mysql文件,下载后导入数据库,修改数据库信息即可运行

    Java+Servlet+Jdbc+Jsp+Mysql实现Web学生信息管理系统

    在本项目中,"Java+Servlet+Jdbc+Jsp+Mysql实现Web学生信息管理系统",开发者利用了Java后端技术、Servlet、JDBC、JSP以及MySQL数据库来构建一个完整的Web应用,用于管理学生信息。以下是这些技术在系统中的具体应用...

    基于jsp+servlet+jdbc+MySQL的学生管理系统.zip

    基于jsp+servlet+jdbc+MySQL的宿舍管理系统。上传之前本人已测试,能完美运行。想查看显示效果可以复制下面的链接查看。不懂可留言或私信。适用于毕业设计,期末设计。 项目说明:...

    jsp+servlet+javabean+jdbc+mysql实现增删改查和分页功能

    1.目的:总结JDBC,和Servlet JSP结合到一起。 2.开发中的一些小技巧。 3.客户管理平台功能 * 添加客户 * 查询所有的客户的信息 * 修改客户信息 * 删除客户信息 * 按条件查询 * 分页查询数据 4.准备环境 5....

    Java Web学生成绩管理系统(JSP+Servlet+JDBC+Dao)

    编写该系统的目的是为了对学生的成绩进行信息化管理,降低教师管理的成本,提高工作效率。...该系统使用了MVC设计模式,实现了权限管理、登录登出、自动登录、验证码,成绩的增加、删除、修改、查询等功能。

    JSP+JavaBean+Servlet技术实现某网站用户注册和登录功能( 源码打包)

    本项目利用这些技术实现了用户注册和登录的功能,以下是对这些技术及其在项目中应用的详细说明。 首先,JSP是一种服务器端脚本语言,用于生成动态网页内容。它允许开发者将HTML、CSS、JavaScript与Java代码混合编写...

Global site tag (gtag.js) - Google Analytics