07.JSP+JDBC实现系统注册

时间:2024.4.20

实验报告

实验项目名称 JSP+JDBC实现系统注册

所属课程名称                      

                        

实 验 日 期                        

                         

                         

                         

                         

江西工业职业技术学院电子与信息工程系


第二篇:Jsp+Servlet+JDBC实现登录注册


Jsp+Servlet+JDBC实现登录注册

(2010-12-10 12:53:23)

转载

标签: 分类: 教学资料

it

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 项目

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

4. 开发实体类Account

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

5. 配置数据源

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

方法 一:

在Tomcat6.0 解压目录 conf 下找到 context.xml, 在其中的 <Context></Context> 中加入如下代码:

Java代码

1. <Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource"

2. password="lectery" username="root" driverClassName="org.gjt.mm.mysql.Driver"

3. url="jdbc:mysql://localhost/exp01" maxActive="100" maxIdle="30" maxWait="5000"/>

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

Java代码

1. <resource-ref>

2. <description>MySQL DataSource</description>

3. <res-ref-name>jdbc/mysql</res-ref-name>

4. <res-type>javax.sql.DataSource</res-type>

5. <res-auth>Container</res-auth>

6. </resource-ref>

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

方 法 二:

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

Java代码

1. <Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource"

2. password="lectery" username="root" driverClassName="org.gjt.mm.mysql.Driver"

3. url="jdbc:mysql://localhost/exp01" maxActive="100" maxIdle="30" maxWait="5000"/>

在Tomcat6.0 解压目录 conf 下找到 context.xml, 在其中的 <Context></Context> 中加入并修改成如下代码:

Java代码

1. <Context path="/RegisterSys" debug="1" reloadable="true" docBase="E:\EclipseWorkPlace\RegisterSys\WebRoot">

2. <ResourceLink global="jdbc/mysql" name="jdbc/mysql" type="javax.sql.Datasource"/>

3. <!--此处可能有系统其它自动生成的内容 -->

4. </Context>

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

Java代码

1. <resource-ref>

2. <description>MySQL DataSource</description>

3. <res-ref-name>jdbc/mysql</res-ref-name>

4. <res-type>javax.sql.DataSource</res-type>

5. <res-auth>Container</res-auth>

6. </resource-ref>

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

方法三:

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

1. <Context path="/RegisterSys" docBase="E:\EclipseWorkPlace\RegisterSys\WebRoot"

2. debug="5" reloadable="true" crossContext="true">

3.

4. <Logger className="org.apache.catalina.logger.FileLogger"

5. prefix="localhost_MysqlTest_log." suffix=".txt"

6. timestamp="true"/>

7. <Resource name="jdbc/mysql" auth="Container" type="javax.sql.DataSource" password="lectery"

8. username="root" driverClassName="org.gjt.mm.mysql.Driver" url="jdbc:mysql://localhost/exp01"

9. maxActive="100" maxIdle="30" maxWait="5000"/>

10. </Context>

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

Java代码

1. <resource-ref>

2. <description>MySQL DataSource</description>

3. <res-ref-name>jdbc/mysql</res-ref-name>

4. <res-type>javax.sql.DataSource</res-type>

5. <res-auth>Container</res-auth>

6. </resource-ref>

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

通过以上三步,大部分时候还是起作用的,但有时会出现异常,因此不建议使用。

以上几种方案在实践中经受了测试,方法一和二比较稳定,方发三比较不稳定,所以对于方法三的采用须谨慎。为简单起见,本实验中采用了方法一的做法,经过测试数据源配置成功。 Jsp+Servlet+JDBC实现登录注册(二)

1. 开发数据库访问类

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

2. 开发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 样式,使得界面更加美观。

3. 开发控制器类

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

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中,也可以编写一个工具类将验证码生成代码放到工具类中,以便将来的复用,同时能够对业务层和控制层进行有效的分离,使程序更加清晰。

更多相关推荐:
系统仿真综合实验报告

实验报告书四川大学课程实验报告课程名称学生姓名学生学号专业系统仿真综合实验1实验报告书一实验目的系统仿真是运用仿真软件如simio创造模型来构建或模拟现实世界的虚拟实验室它能过帮助你探寻你所关注的系统在给定的条...

物流系统仿真实验报告

实验报告课程名称物流系统仿真实验类型上机实验项目名称Flexsim仿真软件操作学生姓名xxx专业物流工程学号XXXXXX同组学生姓名指导老师XXXXXX实验地点XXXXXX实验日期20xx1029一实验目的和要...

系统仿真实验报告模版

控制系统仿真实验学习总结报告题目XXXXXXXXXXXX院系电子信息与控制工程系专业测控技术与仪器专业授课教师陈政强石玉秋本科生XXX班级测控081082学号完成时间20xxXX1实验内容2系统数学模型的建立实...

系统仿真实验报告

系统仿真实验报告学生姓名院系名称专业名称班级学号指导教师完成时间XX商学院工业工程XXXXXXXXXXXXXXXX201X年X月X日目录1系统仿真实验概述12系统仿真实验目的23系统仿真实验内容231系统仿真实...

系统工程仿真实验报告

系统工程仿真实验报告姓名蒋智颖学号110061047成绩实验一基于VENSIM的系统动力学仿真一实验目的VENSIM是一个建模工具可以建立动态系统的概念化的文档化的仿真分析和优化模型PLE个人学习版是VENSI...

控制系统仿真实验报告 (2)

昆明理工大学电力工程学院学生实验报告实验课程名称控制系统仿真实验开课实验室年月日实验一电路的建模与仿真一实验目的1了解KCLKVL原理2掌握建立矩阵并编写M文件3调试M文件验证KCLKVL4掌握用simulin...

西安交通大学仿真实验报告

西安交通大学实验报告系别物理系光信息21班实验日期20xx1130姓名青鹏学号2120xx5012一实验简介实验名称碰撞过程中守恒定律的研究动量守恒定律和能量守恒定律在物理学中占有非常重要的地位力学中的运动定理...

系统辨识与仿真实验大报告

东南大学自动化学院实验报告课程名称系统辨识实验名称系统辨识与仿真院系自动化专业自动化姓名学号同组人员实验时间20xx年月日评定成绩审阅教师实验一给定系统Gs12345s102ss4用连续系统仿真方法求零时刻的单...

生产系统建模与仿真实验报告

中北大学生产计划与控制实验指导书实验名称单品种流水线生产系统仿真与分析姓名郭孝敏学号11020xx218学院机械工程与自动化学院专业工业工程所在系工业工程系20xx年4月实验1单品种流水线生产系统仿真与分析一实...

北航机电系统仿真实验报告

课程名称课程代码171703机电系统设计和仿真实验报告学生姓名学生学号指导教师院系名称仪器科学与光电工程学院20xx年6月15日索引一Simulink自主实验具有悬挂物的移动高架吊车1二Maple自主实验滑块摆...

电子系统仿真实验报告

大连理工大学本科实验报告课程名称学院系专业班级学号学生姓名20xx年月日一实验目的和要求实验题目为高频调幅接收机设计要求输入信号为载波频率为1MHz幅度为10mV调幅系数为03的调幅波输出信号为1KHz的调制信...

系统仿真实验报告

实验一工艺原则布置实验项目名称工艺原则布置ProcessLayout实验项目性质综合性实验所属课程名称设施规划与物流分析实验计划学时4学时一实验目的通过本实验掌握四种布置设计方法中最常用的工艺原则布置二实验内容...

系统仿真实验报告(32篇)