第一个mvc项目--购物车。

1.购物车需求

a.用户可以登录

b.用户可以购买商品

c.用户可以对购物车的商品进行修改和删除

d.用户可以下订单

e.系统可以发送电子邮件给用户

uml图

2.界面设计

登录界面

购物大厅

预览订单

提交订单

然后设计数据库和表

1.用户表

如果怕表名是关键字,就加上下划线。

create table users(

id number primary key,//用户id

name varchar2(50) not null,//用户的名字

pwd varchar2(50) not null,//密码

email varchar2(100) not null,//邮箱

tel varchar2(20) not null,//电话号码

grade number(2) default 1 not null

);

这里是用oracle开发

2.商品表

create table book(
id number primary key,//书的编号
name varchar2(50) not null,//书的名字
author varchar2(100) not null,//书的作者
publishHouse varchar2(100) not null,//出版商
price number not null,//价格
nums number default 1000 not null//库存
);

3.订单表(有讲究,数据库表设计模式,如何减少冗余)

插入数据库表数据时,一定要使用commits。

increment by 1每次增加一个数。

create sequence book_seq
start with 1
increment by 1
minvalue 1
maxvalue 99999999
nocycle
nocache
;

序列号,建立一个序列。

插入的数据

insert into book values(book_seq.nextval,'jsp应用开发详解','萧峰','电子工业出版社',59,100);

insert into book values(book_seq.nextval,'java web服务开发','谭美君','电子工业出版社',45,100);

insert into book values(book_seq.nextval,'java 编程思想','小红','电子工业出版社',99,100);

insert into book values(book_seq.nextval,'jsp编程指南','王芳','电子工业出版社',10,1000);

insert into book values(book_seq.nextval,'j2ee1.4应用开发详解','小健','电子工业出版社',68,1000);
commit;

创建servlet的时候,需要注意web.xml,比如

 <servlet-mapping>
<servlet-name>GoHallUI</servlet-name>
<url-pattern>/GoHallUI</url-pattern>
</servlet-mapping>

在连接数据库时碰到了很多问题:

1.没有引入ojdbc6.jar,解决办法:把该文件放入到web-inf/lib中,并build path

2.sqlHelper.java文件中没有dbinfo.properties文件,无法读取连接的数据库信息,解决办法:直接在src目录下建立该文件,并在该文件中填入连接数据的信息,如:

url=jdbc:oracle:thin:@localhost:1521:ORCL
username=root
driver=oracle.jdbc.driver.OracleDriver
password=123

3.sqlhelper类的executeQuery()方法返回值不是Arraylist,而是resultSet,解决办法:在该方法中进行转换

ArrayList<String> al = new ArrayList<String>();
while(rs.next()){
al.add(rs.getString(1));
al.add(rs.getString(2));
al.add(rs.getString(3));
al.add(rs.getString(4));
al.add(rs.getString(5));
al.add(rs.getString(6));
}

4.String sql = "select * from users where name=? and pwd=?";

写错进行修改

String sql = "select * from users where id=? and pwd=?";

5.用户号正确,但是一直无法登陆成功,这时只要注意密码正确就可以了。

6.在form表单里使用action跳转时,无法找到响应的servlet文件,解决办法:查看web.xml中的设置。

7.action跳转到servlet成功后,页面中没有任何东西显示,解决办法:查看servlet编写是否正确。

我碰到的问题是:method使用post方式提交,但是在servlet中,代码却写在doGet()中了,应该将代码写在doPost()中。

何时创建一个控制器的原则:

同一类的业务逻辑,让一个控制器去处理。这样做的好处是:

1.减少控制器的个数

2.有利于程序的维护和升级

<a href="/myshopping/GoHallUI">返回购物大厅</a>

<a href="myshopping/GoHallUI">返回购物大厅</a>

两种写法的结果是不一致的,后者不可以用。

使用<a href="">提交数据时,要用doGet()来处理数据

使用<form>提交数据并且method=post,要使用doPost()来处理数据。如果method=get,则使用doGet()来处理数据。

getparametervalues和getparameter 区别?

request.getParameterValues(String   name)是获得如checkbox类(名字相同,但值有多个)的数据。   接收数组变量 ,如checkobx类型    
request.getParameter(String   name)是获得相应名的数据,如果有重复的名,则返回第一个的值 . 接收一般变量 ,如text类型

mvc购物车项目的更多相关文章

  1. mvc购物车项目(2)

    为了避免数据冗余,我们可以把共同的信息,抽出建立一个单独的表,把不是共有的信息,建立一张单独表. 订单表分为两个表 create table orders( id number primary key ...

  2. 使用Visual Studio 2015 开发ASP.NET MVC 5 项目部署到Mono/Jexus

    最新的Mono 4.4已经支持运行asp.net mvc5项目,有的同学听了这句话就兴高采烈的拿起Visual Studio 2015创建了一个mvc 5的项目,然后部署到Mono上,浏览下发现一堆错 ...

  3. ASP.NET MVC搭建项目后台UI框架—1、后台主框架

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

  4. ASP.NET MVC搭建项目后台UI框架—11、自动加载下拉框查询

    ASP.NET MVC搭建项目后台UI框架—1.后台主框架 需求:在查询记录的时候,输入第一个字,就自动把以这个字开头的相关记录查找出来,输入2个字就过滤以这两个子开头的记录,依次类推. 突然要用到这 ...

  5. MVC跨项目路由

    我们在实际应用开发中,经常遇到多人共同开发维护同一个项目情况,所以不免会出现其中一个人代码出现bug质量问题导致整个项目就原地“爆炸”的惨状.在之前公司经常遇到某个人忘记更新(我就做个此事[" ...

  6. ASP.NET MVC搭建项目后台UI框架—2、菜单特效

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

  7. ASP.NET MVC搭建项目后台UI框架—3、面板折叠和展开

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

  8. ASP.NET MVC搭建项目后台UI框架—4、tab多页签支持

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

  9. ASP.NET MVC搭建项目后台UI框架—5、Demo演示Controller和View的交互

    目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...

随机推荐

  1. Winform 动态 画图 不闪

    一.问题:解决winform动态画图闪的问题,网上搜的方法,大部分都是: “this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlSty ...

  2. 在Linux中配置DNS的正确方式

    链接:http://ccl.cse.nd.edu/operations/condor/hostname.shtml Common Hostname Problem on Linux Newly ins ...

  3. idea各种设置和学习

    1. 去掉方法中的参数名提示 idea在Review时候的编码设置 idea在review代码的时候会会出现中文乱码,文件是GBK的,但是idea的字符集和项目的字符集都是UTF-8, 这时可以通过把 ...

  4. 天兔插件监控mysql

    Lepus3.8-天兔mysql数据库监控系统搭建 原创ixhao2016-08-24 02:36:23评论(11)3183人阅读 Lepus3.8-天兔mysql数据库监控系统搭建 lepus是一款 ...

  5. LINQ to Tree - A Generic Technique for Querying Tree-like Structures,包含遍历WPF VisualTree

    https://www.codeproject.com/Articles/62397/LINQ-to-Tree-A-Generic-Technique-for-Querying-Tree#generi ...

  6. HDU 5901 Count primes (2016 acm 沈阳网络赛)

    原题地址:http://acm.hdu.edu.cn/showproblem.php?pid=5901 题意:输入n,输出n以内质数个数 模板题,模板我看不懂,只是存代码用. 官方题解链接:https ...

  7. 下周要搞大事情(ASP.NET Core & WebForms)!

    下周要搞大事情(ASP.NET Core & WebForms)!

  8. Hive高级

    HiveServer2 概述: https://cwiki.apache.org/confluence/display/Hive/HiveServer2+Overview2 客户端: https:// ...

  9. iOS设备获取总结

    1.获取iOS设备的各种信息 // 这个方法后面会列出来 NSString *deviceName = [self getDeviceName]; NSLog(@"设备型号-->%@& ...

  10. MySQL登陆数据库

    下面是几种登陆到MySql数据库的登陆方式代码 1mysql -u root -ppassword 2.mysql -u root -p Enter password:password3.mysql ...