空白处应该填写的内容为 ( ) A Integer B Long C Float D Double 9 以下关于 Query 对象获取查询结果的说法, 不正确的是 ( ) A list() 方法返回的结果为 List 集合 B list() 方法返回结果数据总量为 1 到多条数据 C uniquer

Similar documents
7 以下关于 SessionFactory 的说法正确的是 ( ) A 对于每个数据库事务, 应该创建一个 SessionFactory 对象 B 一个 SessionFactory 对象对应多个数据库存储源 C SessionFactory 是重量级的对象, 不应该随意创建 如果系统中只有一个数据

设计模式 Design Patterns

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

输入 project name 选择完成

untitled

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

金融信息系统数据库访问实验指导书.doc

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

"+handlermethod.getbean().getclass().getname()); public void aftercompletion(httpservletrequest req, HttpServletResponse resp, Object handler, Excepti

untitled

没 有 多 余 的 Contruol 或 Action 了 原 来 Domain 层 被 服 务 层 Service layer 遮 挡, 在 右 边 图 中, 则 Domain 层 直 接 暴 露 给 前 台 了, 没 有 被 遮 挡, 裸 露 了 这 样 一 步 到 位 实 现 领 域 模 型

本章学习目标 小风 Java 实战系列教程 SpringMVC 简介 SpringMVC 的入门案例 SpringMVC 流程分析 配置注解映射器和适配器 注解的使用 使用不同方式的跳转页面 1. SpringMVC 简介 Spring web mvc

Microsoft Word - Hibernate与Struts2和Spring组合指导.doc

基于ECO的UML模型驱动的数据库应用开发1.doc

D getinitparameternames() 9 下 列 选 项 中, 属 于 Servlet API 中 提 供 的 request 对 象 的 包 装 类 的 是 ( ) A HttpServletRequestWrapper B HttpServletRequest C HttpServ

设计模式 Design Patterns

Microsoft Word - ShkZw5.doc

EJB-Programming-4-cn.doc

TopTest_Adminstrator.doc

Microsoft Word - JkfZw3

基于CDIO一体化理念的课程教学大纲设计

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

设计模式 Design Patterns

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

无类继承.key

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

Microsoft PowerPoint - 05-Status-Codes-Chinese.ppt

resp.getwriter().print(j + "*" + i + "=" + j * i+" "); resp.getwriter().print("<br/>"); protected void dopost(httpservletrequest req, HttpServletRespo

<4D F736F F F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

Guava学习之Resources

EJB-Programming-3.PDF

使用MapReduce读取XML文件

软件工程文档编制

Microsoft Word - 01.DOC

untitled

Servlet

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页

设计模式 Design Patterns

计算机软件技术专业教学计划

RunPC2_.doc

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0,

Microsoft Word - Learn Objective-C.doc

IoC容器和Dependency Injection模式.doc

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

设计模式 Design Patterns

Chapter 9: Objects and Classes

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

untitled

Spring 的入门程序 依赖注入的概念 依赖注入的实现方式 Spring 的核心容器 Spring 的入门程序 依赖注入的概念 依赖注入的实现方式 依赖注入的概念 了解 Spring 的概念和优点 理解 Spring 中的 IoC 和 DI 思想 掌握 ApplicationContext 容器的

Microsoft Word - 第7章 初识Hibernate—教学大纲.doc

优迈科技教学大纲2009版本

Microsoft PowerPoint - 02-Servlet-Basics-Chinese.ppt

untitled

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款

北 风 网 讲 师 原 创 作 品 ---- 仅 供 学 员 内 部 交 流 使 用 前 言 吾 尝 终 日 而 思 矣, 不 如 须 臾 之 所 学 也 ; 吾 尝 跂 而 望 矣, 不 如 登 高 之 博 见 也 登 高 而 招, 臂 非 加 长 也, 而 见

3.1 num = 3 ch = 'C' 2

PrintWriter s = new PrintWriter(writer); ex.printstacktrace(s); mv.addobject("exception", writer.tostring()); mv.setviewname("error"); return

使用Cassandra和Spark 2.0实现Rest API服务

在所有的项目开发中, 一定是多人协作的团队开发, 但是使用框架就会出现一个问题, 我们所 有的 Action 以及相关的路径都要求在我们的 struts.xml 文件中配置, 如果所有的人去修改一个 文件, 那么就会变得混乱, 而且有可能出现冲突, 那么在 struts.xml 文件中为了解决这个问

RxJava

FileMaker 16 ODBC 和 JDBC 指南

Microsoft Word - 新1-12.doc

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF

Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream Class java.io.datainptstream (extends) FilterInputStream InputStream Obj

威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 號 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

chp6.ppt

概述

FileMaker 15 ODBC 和 JDBC 指南

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

JBuilder Weblogic

untitled

untitled

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料

在 ongodb 中实现强事务

提问袁小兵:

回滚段探究

Microsoft PowerPoint - L17_Inheritance_v4.pptx

Microsoft Word - MIS.doc

JAVA编码规范

9, : Java 19., [4 ]. 3 Apla2Java Apla PAR,Apla2Java Apla Java.,Apla,,, 1. 1 Apla Apla A[J ] Get elem (set A) A J A B Intersection(set A,set B) A B A B

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

第一章

将 MD5 的工具类拷贝到项目中 二 微服务模块的搭建 我们将权限的查询放到一个单独的模块中, 这个模块提供接口供给消费者远程调用 (RPC), 这次范例是微服开发的雏形, 在以后你使用 springcloud 的时候会使用到今天的概念 1 使用 maven 创建新的模块 (microboot-sh

JavaIO.PDF

ASP.NET实现下拉框二级联动组件

1.1 举例 : 在线用户 我们做一个新手级的在线用户列表, 原理是这样 : 1. 用户登录, 并把登录使用的用户名保存到 session 中, 通过 session 中 是否存在用户名判断用户是否已登录 session 可以在整个会话过程中保存用户信息, 不必每次刷新页面都重新 登录 2. 用户登

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

untitled

untitled

《大话设计模式》第一章

全国计算机技术与软件专业技术资格(水平)考试

untitled

Microsoft Word - PHP7Ch01.docx

Microsoft Word 样章.dot

OOP with Java 通知 Project 3 提交时间 3 月 29 日晚 9 点 Piazza Project 2 投票

第一章 章标题-F2 上空24,下空24

模板

Microsoft Word - Java Web开发实战 第3章.doc

Transcription:

第 7 章初识 Hibernate 样题 A 卷 一 选择题 ( 每小题 2 分, 共 20 分 ) 1 下面关于 Hibernate 的说法中, 正确的是 ( ) A Hibernate 是 ORM 的一种实现方式 B Hibernate 不需要 JDBC 的支持 C 属于控制层 D 属于业务逻辑层 2 下面关于 Hibernate 的描述中, 错误的是 ( ) A Hibernate 对 JDBC 访问数据库做了轻量级的封装 B Hibernate 是一个优秀的 ORM 映射框架 C Hibernate 是 JDBC 的替代技术 D Hibernate 具备很强的扩展性 3 下列选项中, 不属于 Hibernate 的核心 API 的是 ( ) A Configuration B SessionFactory C SqlSession D Query 4 在 Hibernate 中, 关于 Transaction 的说法正确的是 ( ) A Transaction 是可有可无的 B Transaction 默认是开启的 C Transaction 在做查询的时候是可有可无的 D Transaction 在做修改的时候是可有可无的 5 Hibernate 实体对象制作规范不包括下列哪些规则 ( ) A 声明无参公共的构造方法 B 提供用于作为 OID 的标识属性 C 为所有属性提供 getter 和 setter 方法 D 声明为最终类 (final 修饰 ) 6 下列 Hibernate 映射文件的命名, 不正确的是 ( ) A user.properties B user.hbm.xml C User.hbm.xml D UserModel.hbm.xml 7 数据层解决不包括以下哪些技术 ( ) A JDBC B Apache DBUtils C log4j D Hibernate 8 完成查询用户表中信息总量的程序片段如下 : String hql = select count(uuid) from UserModel ; Query q = s.createquery(hql); count = s.uniqueresult();

空白处应该填写的内容为 ( ) A Integer B Long C Float D Double 9 以下关于 Query 对象获取查询结果的说法, 不正确的是 ( ) A list() 方法返回的结果为 List 集合 B list() 方法返回结果数据总量为 1 到多条数据 C uniqueresult() 方法返回结果内容为对象或者对象的数组 D uniqueresult() 方法返回结果数据总量为 0 到 1 条数据 10 Hibernate 方言的作用是 ( ) A 根据方言设置值生成对应的增删改查语句 B 根据方言设置值生成对应的查询语句 C 根据方言设置值建立与数据库的绑定关系 D 根据方言设置值明确使用的数据库类型 二 判断题 ( 每题 2 分, 共 20 分 ) 1 Hibernate 对 JDBC 访问数据库做了轻量级的封装, 完全 ORM 映射框架 ( ) 2 Hibernate 具有简单易学, 灵活性高, 扩展性强等特点 ( ) 3 Hibernate 全局配置文件名称只能是 hibernate.cfg.xml ( ) 4 在 Hibernate 中, 事务是默认开启的 ( ) 5 在 Hibernate 映射中, 映射文件的作用是建立实体类和表之间的关联关系 ( ) 6 实体模型类必须要实现序列化接口 ( ) 7 持久化类中尽量使用基本数据类型包装类, 目的是保证实体类和表拥有相同的默认 值 ( ) 8 Hibernate 框架内部没有提供数据库连接池的设计方案 ( ) 9 load() 方法延迟加载,get() 方法立即加载 ( ) 10 在 Hibernate 映射文件的规范中, 必须要求配置类与表的映射关系 ( ) 三 ( 程序分析题 5 分, 共 15 分 ) 1 请阅读下面的代码片段, 找出 Hibernate 常用 API 中初始化错误的代码 Configuration conf = Configuration.getConfiguration(); SessionFactory sf = conf.getsessionfactory(); Session s = sf.getsession(); Transaction tx = s.gettransaction(); 2 请补充下面的程序, 完成用户名与用户地址的查询 ( 要求写出两种 ) String hql = "select username,address from UserModel"; Query q = s.createquery(hql); List< > list = s.list(); 3 请阅读下面的程序, 找出哪些不能作为 Hibernate 持久化类定义的规范 public final class User { private int id; private String name; public User(int id, String name, String gender) {

this.id = id; this.name = name; this.gender = gender; private String gender; public int getid() { return id; public void setid(int id) { this.id = id; public String getgender() { return gender; public void setgender(string gender) { this.gender = gender; public String getname() { return name; public void setname(string name) { this.name = name; 四 简答题 ( 每题 5 分, 共 15 分 ) 1 简述 Hibernate 框架的特点 2 简述说明 Hibernate 的执行流程 3 请写出 Hibernate 的常用 A PI 以及代表的含义 ( 至少写出 4 个 ) 五 操作题 ( 每题 10 分, 共 30 分 ) 1 请按照以下要求完成操作 要求如下 : 1) 用 Hibernate 框架实现用户添加 2) 实体类 User 分别有 id username password 属性 3) 主键 ID 采用 Mysql 自增长的方式递增 采用 JUnit 测试完成数据的插入 2 请按照以下要求设计一个登录页面 要求如下 : 1) 要求使用 Hibernate 框架实现登录功能 2) 登录页面采用 JSP, 页面中有一个文本框对应账号, 密码框对应密码 3) 账号不能为空, 并给出提示信息 4) 输入用户名和密码, 查询数据库如果查询到, 则显示登录成功, 否则登录失败, 并提示 用户名或者密码错误

3 请按照以下要求设计一个注册功能 要求如下 : 1) 要求使用 Hibernate 框架实现注册功能 2) 注册页面采用 JSP, 页面中有两个文本框, 两个密码框, 分别对应姓名 账号 密码 确认密码 3) 账号不能为空, 要求密码和确认密码输入要一致, 并给出提示信息 4) 无误后, 根据用户名查询数据库, 如果查询到, 则注册失败, 并提示 账号已存在, 否则注册成功

答案 一 选择题 1.A 2.C 3.C 4.C 5.D 6.A 7.C 8.B 9.B 10.D 二 判断题 1.Y 2.Y 3.N 4.N 5.Y 6.N 7.Y 8.N 9.Y 10.N 三 程序分析题 ------------------- 第 1 题 ------------------- 1 请阅读下面的程序, 找出 Hibernate 常用 API 初始化的错误 答 : 本题是考察 Hibernate 常用 API 的使用 例如 :Configuration conf = new Configuration().configure(); SessionFactory sf = conf.buildsessionfactory(); Session s = sf.opensession(); Transaction tx = s.begintransaction(); ------------------- 第 2 题 ------------------- 2 请阅读下面的程序, 完成用户名与用户地址的查询 ( 要求写出两种 ) 答 :(1)UserModel (2)String[] (3)Object[] ------------------- 第 3 题 ------------------- 3 请阅读下面的程序, 找出哪些不能作为 Hibernate 持久化类定义的规范 答 :(1) 持久化类不能使用 final 修饰, 否则无法产生代理对象 (2) 尽量使用基本数据类型包装类, 为了保证实体类的默认的属性值和表的默认值一致 (3) 提供一个无参数构造器 四 简答题 ------------------- 第 1 题 ------------------- 1 简述 Hibernate 框架的特点 (1)Hibernate 对 JDBC 访问数据库的代码做了轻量级封装, 大大简化了数据访问层繁琐的重复性代码, 并且减少了内存消耗, 加快了运行效率 (2)Hibernate 是一个基于 JDBC 的主流持久化框架, 是一个优秀的 ORM 实现, 它很大程度的简化了 dao(data Access Object, 数据访问对象 ) 层编码工作 (3)Hibernate 使用 Java 的反射机制, 而不是使用字节码增强程序类并实现透明性 (4)Hibernate 的性能非常好, 映射的灵活性很出色 它支持很多关系型数据库, 从一对一到多对多的各种复杂关系 (5) 可扩展性强, 由于源代码的开源以及 API 的开放, 当本身功能不够用时, 可以自行编码进行扩展 ------------------- 第 2 题 ------------------- 2 简述说明 Hibernate 的执行流程 (1) 初始化 Hibernate, 构建 Configuration 实例 这一步用来读取 Hibernate 核心配置文件和映射文件信息到 Configuration 对象中

(2) 创建 SessionFactory 实例 通过 Configuration 对象读取到的配置文件信息并创建 SessionFactory, 并将 Configuration 对象中的所有配置文件信息存入 SessionFactory 内存中 (3) 创建 Session 实例, 建立数据库连接 Session 是通过 SessionFactory 打开, 创建一个 Session 对象就相当于建立一个新的数据库连接 (4) 创建 Transaction 实例, 开启一个事务 Transaction 用于事务管理, 一个 Transaction 对象对应的事务可以包含多个操作 在使用 Hibernate 进行增 删 改操作的时候, 必须先创建 Transaction 对象 (5) 利用 Session 接口通过的各种方法进行持久化操作 (6) 提交事务 对实体对象持久化操作后, 必须提交事务 (7) 关闭 Session, 断开与数据库连接 ------------------- 第 3 题 ---------------------- 4 请写出 Hibernate 的常用 A PI 以及代表的含义 ( 至少写出 4 个 ) (1)Configuration:Configuration 实例主要用于启动 加载 管理 hibernate 的配置文件信息 (2)SessionFactory:SessionFactory 接口负责 Hibernate 的初始化和建立 Session 对象 它在 Hibernate 中起到一个缓冲区作用,Hibernate 可以将自动生成的 SQL 语句 映射数据以及某些可重复利用的的数据放在这个缓冲区中 同时它还保存了对数据库配置的所有映射关系, 维护了当前的二级缓存 (3)Session: 是应用程序与数据库之间交互操作的一个单线程对象, 是 Hibernate 运作的中心, 它的主要功能是为持久化对象提供创建 读取和删除的能力, 所有持久化对象必须在 session 的管理下才可以进行持久化操作 (4)Transaction:Transaction 接口主要用于管理事务, 它是 Hibernate 的数据库事务接口, 且对底层的事务接口进行了封装 Transaction 接口的事务对象是通过 Session 对象开启的 (5)Query:Query 代表面向对象的一个 Hibernate 查询操作 在 Hibernate 中, 我们通常使用 session.createquery() 方法接受一个 HQL 语句, 然后调用 Query 的 list() 或 uniqueresult() 方法执行查询 所谓的 HQL 是 Hibernate Query Language 缩写, 其语法很像 SQL 语法, 但它是完全面向对象的 (6)Criteria 是一个完全面向对象, 可扩展的条件查询 API, 通过它完全不需要考虑数据库底层如何实现, 以及 SQL 语句如何编写, 它是 Hibernate 框架的核心查询对象 Criteria 查询, 又称为 QBC 查询 (Query By Criteria), 它是 Hibernate 的另一种对象检索方式 五 操作题 ------------------- 第 1 题 ------------------- 1 请按照以下要求完成操作 ( 截取核心代码, 以供参考 ) //User 实体类 public class User { private Integer id;// 主键 ID private String username;// 用户名 private String password;// 密码 // 对每个属性提供 getter 和 setter 方法, 此处省略 <!-- 映射文件 -->

<hibernate-mapping> <class name="cn.itcast.demo1.user" table="user"> <id name="id" column="id"> <generator class="native"></generator><!-- 主键采用自增长的方式 --> </id> <property name="username"></property> <property name="password"></property> </class> </hibernate-mapping> // 采用 JUnit 测试执行 Hibernate 添加操作 @Test public void demo1() { Configuration configuration = new Configuration().configure(); SessionFactory factory = configuration.buildsessionfactory(); Session session = factory.opensession(); Transaction tx = session.begintransaction(); User user = new User(); user.setusername("zhangsan"); user.setpassword("123"); session.save(user);// 添加操作, 由于主键采用自增长, 此处不需要设置 id 属性 tx.commit(); session.close(); factory.close(); ------------------- 第 2 题 ------------------- 2 请按照以下要求设计一个登录页面 ( 截取核心代码, 以供参考 ) //User 实体类 public class User { private Integer id; private String username; private String password; // 同上, 提供 setter 和 getter 方法, 此处省略. <! 映射文件 --> <hibernate-mapping> <class name="cn.itcast.demo2.user" table="user"> <id name="id" column="id"> <generator class="native"></generator> </id> <property name="username"></property> <property name="password"></property> </class>

</hibernate-mapping> //Dao 层提供查询方法 public class UserDao { // 根据用户名和密码查询用户 public User finduserbyusernameandpassword(string username,string password) { Configuration configuration = new Configuration().configure(); SessionFactory factory = configuration.buildsessionfactory(); Session session = factory.opensession(); Transaction tx = session.begintransaction(); String hql = "from User u where u.username=? and u.password=?"; Query query = session.createquery(hql); query.setstring(0, username); query.setstring(1, password); List<User> list = query.list(); tx.commit(); if(list!= null && list.size() > 0) { return list.get(0); return null; // 创建 LoginServlet public class LoginServlet extends HttpServlet { private UserDao dao = new UserDao(); protected void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getparameter("username"); String password = request.getparameter("password"); if(username == null "".equals(username)) { request.setattribute("msg", " 用户名不能为空 "); request.getrequestdispatcher("/login.jsp").forward(request, response); return; User user = dao.finduserbyusernameandpassword(username, password); if(user == null) { request.setattribute("msg", " 用户名或者密码错误 "); request.getrequestdispatcher("/login.jsp").forward(request, response); return; request.setattribute("user", user); request.getrequestdispatcher("/success.jsp").forward(request, response);

<! - login.jsp 登录页面 --> <font color="red">${msg </font> <form action="${pagecontext.request.contextpath/loginservlet" method="post"> 用户名 :<input type="text" name="username"/><br/> 密码 :<input type="password" name="password"/><br/> <input type="submit" value=" 登录 "/> </form> <! 登录成功页面 success.jsp--> ${user.username 登录成功! ------------------- 第 3 题 ------------------- 3 请按照以下要求设计一个注册功能 ( 截取核心代码, 以供参考 ) //Customer 实体类 public class Customer { private Integer id; private String name; private String account; private String password; // 提供 getter 和 setter 方法, 同上 <! 映射文件 --> <hibernate-mapping> <class name="cn.itcast.demo2.customer" table="customer"> <id name="id" column="id"> <generator class="native"></generator> </id> <property name="name"></property> <property name="account"></property> <property name="password"></property> </class> </hibernate-mapping> // 创建 Dao public class CustomerDao { // 根据客户的账号查询 public Customer findcustomerbyaccount(string account) { Configuration configuration = new Configuration().configure(); SessionFactory factory = configuration.buildsessionfactory(); Session session = factory.opensession();

Transaction tx = session.begintransaction(); String hql = "from Customer c where c.account=?"; Query query = session.createquery(hql); query.setstring(0, account); List<Customer> list = query.list(); tx.commit(); if(list!= null && list.size() > 0) { return list.get(0); return null; // 添加客户信息 public void addcustomer(customer customer) { Configuration configuration = new Configuration().configure(); SessionFactory factory = configuration.buildsessionfactory(); Session session = factory.opensession(); Transaction tx = session.begintransaction(); session.save(customer); tx.commit(); // 创建 RegistServlet public class RegistServlet extends HttpServlet { private CustomerDao customerdao = new CustomerDao(); protected void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getparameter("name"); String account = request.getparameter("account"); String password = request.getparameter("password"); String repassword = request.getparameter("repassword"); if(account == null "".equals(account)) { request.setattribute("msg", " 账号不能为空 "); request.getrequestdispatcher("/regist.jsp").forward(request, response); return; if(integer.parseint(password)!= Integer.parseInt(repassword)) { request.setattribute("msg", " 两次输入的密码不一致 "); request.getrequestdispatcher("/regist.jsp").forward(request, response); return; Customer customer = customerdao.findcustomerbyaccount(account); if(customer!= null) { request.setattribute("msg", " 账号已存在 ");

request.getrequestdispatcher("/regist.jsp").forward(request, response); return; Customer customer2 = new Customer(); customer2.setname(name); customer2.setaccount(account); customer2.setpassword(password); customerdao.addcustomer(customer2); response.sendredirect(request.getcontextpath() + "/success.jsp"); <!-- 创建注册页面 regist.jsp--> <font color="red">${msg </font> <form action="${pagecontext.request.contextpath/registservlet" method="post"> 姓名 :<input type="text" name="name"/><br/> 账号 :<input type="text" name="account"/><br/> 密码 :<input type="password" name="password"/><br/> 确认密码 :<input type="password" name="repassword"/><br/> <input type="submit" value=" 注册 "/> </form> <! 成功调整页面 success.jsp--> <body> 注册成功! </body>