第一个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. java基础之概谈xml文件解析

    XML已经成为一种非常通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便. 诸多web应用框架,其可配置的编程方式,给我们的开发带来了非常大程度的便捷,但细细 ...

  2. PHP - 获取音频长度

    getID3() 是从MP3等媒体文件中提取文件信息的php类,既可以提取也能修改文件的标签信息.它能读取的文件类型非常多,例如MP3.wav等. 示例官方下载地址:http://sourceforg ...

  3. Stockbroker Grapevine - poj 1125 (Floyd算法)

      Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 30454   Accepted: 16659 Description S ...

  4. springmvc上传方法

    /** * * @param file 上传的文件 * @param filePath 上传到那个目录 * @return 上传后的文件名字 * @throws IOException */ publ ...

  5. struts2中配置全局日期类型转换器

    1.编写一个类,继承StrutsTypeConverter,实现其中的convertFromString和convertToString方法,该类如下: package me.edu.utils; i ...

  6. python获取shell输出(转)

    From:http://www.cnblogs.com/snow-backup/p/5035792.html   python中获取shell命令输出的方法: 1.  import subproces ...

  7. PHP如何进阶,提升自己

    2017年6月15日14:32:51 今天看今日头条,刷到了一个话题?是:整天增删改查调接口,PHP程序员,如何突破职业瓶颈晋级? 晋级包括:职位晋级:技术能力晋级.当你的技术能力晋级了,职位晋级也就 ...

  8. PHPUnit_Framework_Assert单元测试

    先发下简书的干货: 教你一步一步写一个phpunit testcase:https://www.jianshu.com/p/ba6829a6f3ec 程序地址 https://github.com/y ...

  9. [原创]将本地代码共享到github的操作步骤

    将本地代码共享到github的操作步骤 本地代码目录执行如下命令,初始化为git仓库. git init 到github上新建一个仓库,假设为https://github.com/sky0014/sk ...

  10. Eclipse下使用maven搭建多模块项目

    暂时将项目分为如下几层: domain(域模型层).dao(数据库访问层).service(业务逻辑层).web(表现层),有需要再另行添加(如common等): 目录结构: 一.app 该层为父层, ...