Java和bean(VO)、dao、Servlet、jsp的综合总结复习

学到这里,差不多,可以自主完成一个简单的系统了。所以接下来需要总结,然后设计一个简单的系统。分别使用Java和Java Web来实现。(目标:实现简单的购物系统)

要求:能注册,并登录。登录成功,转到商品信息页面。在添加一个商品查询功能,和购物车功能,可以实现添加商品到购物车,以及删除商品。

首先使用Java。考虑使用UML类图来实现。

参考《Java2 实用教程 》书本P348,先把这个例子的UML图画好。

思路分析:

      1.数据模型:只存放数据,提供设置数据和获取数据的方法。

                     注册模型:存放注册需要的,账号,密码,姓名,性别。

                     登录模型:存放登录需要的,账号,密码,是否登录成功的数据。

       2.数据处理:

                    注册处理:连接数据库,将数据库内容写入注册模型。

                    登录处理:连接数据库,查询数据库内容的注册模型是否有该数据。

                    进行测试。

       3.功能分析:

                   登录成功则显示顾客姓名。(跳转页面)

                  

2.UML图设计:

注册模型(Login.java):account:String  、password:String 、sex:、

登录模型(Register.java):account:String  、password:String

注册处理(HandleRegister):writeRegister(Register ):void

登录处理(HandleLogin):queryLogin(Login ):Login  

测试页面(ceshi):main():void   

功能页面(Showname):main():void

3.代码分析:

1.遗忘插入语句的使用:

insert into 表 values();

2.在rs.next()语句里面,忘记如何输出数据库的内容。

使用rs.getString("name")    //注意这个括号里面表示的是数据库里面的varchar。必须加“”。有些表示是string类型的不用加双引号。

比如:conn.statement(sql);   //sql也是一个string类型,它不用再额外加双引号。但上面需要

3.预处理语句结合通配符的使用:

一开始看书,我是这样写的:name like '%?%'   ;

第一次出现的错误是,问号用成中文符号。(×)

第二次出现的错误是:不能这样'%?%' 。因为如果用%%来表示,它匹配的是单个字符,而不是字符串里面的字符。

正确用法:name like ? ;

                 stat.setString(1,"%"+name+"%");      //把通配符放到外面。

Java和bean(VO)、dao、Servlet、jsp的综合总结复习_第1张图片Java和bean(VO)、dao、Servlet、jsp的综合总结复习_第2张图片

在使用JavaWeb的知识。工厂封装模式。

1.beans(Vo类)负责封装数据。:Login、Register

2.Dao类负责连接数据库。

3.Servlet类负责处理数据。接收来自jsp的数据。返回数据给jsp。

补充知识点:

可以不用servlet类,jsp可以直接获取Dao类的数据。(将Dao类变成一个集合类型)

如果使用servlet类的方法。我们来看看到底怎么使用:

基本用法:

添加元素:session.setAttribute("名字",Object);   //String类型的名字不能相同。

但是Object可以是一个集合。这是使用session的关键!!

存:session.setAttribute("名字",Object);

ArrayList 对象 = new ArrayList();

对象.add(String );                               //请牢记!!!

session.setAttribute("名字",Object);//最后可以通过Object添加到session里面。

取:session.getAttribute("名字");

ArrayList 对象 = (ArrayList)session.getAttribute("名字");

for(int i=0;i<对象.seze();i++){

     String 子对象 = (String)对象.get(i);

     out.println(子对象)

}

小结:session存的方法放在后面。取的方法放在前面。

代码分析:

主要错误在Servlet的用法上,建议在学一遍Servlet的方法,然后再去构建错误点。

1.遗忘购物车的用法。(看前面的存和取的方法)

2.遗忘跳转链接的用法:

response.sendRedirect(url);

3.使用request.getParameter(“”)的方法如果没有得到数据。有可能的原因是需要重新部署。因为如果是这个里面的字符写错的原因。字节码是不会发生改变的。

4.在类的方法里面定义的属性需要重新赋值,比如赋值null。但是如果你把这个属性放在类之下,方法之外,相当于全局变量。它就不需要赋值。

1.功能分析没分析好,应该在划分一个叫做查询功能的jsp。

(为什么你会觉得,要把查询功能放在login的下方?。用session就可以做到吗?习惯问题,以为这是一个类一样。定义一个类就是一个方法。但这里不太一样。你要想查询功能会用到哪些组件。很明显会用到提交按钮。你觉得一个<%%>表达式可以实现吗?)
(下次注意,如果你要实现登录成功才能进入到查询功能的话,而查询功能的语法是html,那么就需要在创建一个jsp)

2.同理,在jsp里面,既然创建了query的功能,那么应该也要对应一个查询功能的servlet程序。而不是在registerservlet里面放查询模块。
 

5.students.add()方法。有两个易错点。第一个是students类型的错误。它的类型必须是ArrayList。不是泛型。如果写成泛型。那么add括号里面就不能是对象。

第二个错误是student对象的错误。括号里面只能写对象。不能写其它的。这样才会得到每遍历一次获得一个集合空间。

第三个错误是它所在的循环rs.next。只能用while循环。因为是模糊查询。可能有多个符合条件的集合。

6.卡住点:Register类型,它本身是一个集合。可以直接输出。将它看作一种集合类型去使用。于是可以在jsp里面,将从session取出来的数据赋给Register的对象。但前提是,赋予方也必须是一个单集合。(去看‘取’和‘存’的用法。)

你可能感兴趣的:(servlet,java,开发语言)