2.18清单(无感悟)

来源:互联网 发布:航旅纵横网络异常 编辑:程序博客网 时间:2024/06/05 06:45

周末双休

1.完成登陆已经个人中心的部分,包括验证码的验证,账号的异步验证,以及个人中心的头像


2.20 有一个JSp的测试

大概是写单表的增删改查连接数据库的操作 购物车商城之类的

晚上自己先写一下,复习一下DBManger 不复制粘贴代码.


一.复习一波DBManger(记得导包)

4个参数 driver 驱动 com.microsoft.sqlserver.jdbc,SQLServerDriver url 数据库地址 jdbc:sqlserver:localhost:8080:1433;databaseName=xxxxx;

user 数据库账号 pwd 数据密码

里面有3个方法

1.获得数据对象

Public static Connection getConnection()

Class.forName(driver);

Connection connection=DriverManger.getConnection(url,user,pwd);

2.编写增删改的方法

Public static boolen executeUpdate(String sql,Object[] objects)

boolen flag=false;

Connection connection=DBManger.getConnection();

PrepareStatement pst=null;

int num=0;

pst=connnection.prepareStatement(sql);//导入sql语句

for(int i=0;i<objects.length;i++){

pst.setObject(i+,objects[i]);

}//给sql传入参数

num=pst.executeUpdate();

if(num>0){

flag=ture;

}

DBManger.closeAll(connection,preparestatement,null);

return flag;

3.编写关闭数据库参数方法

public static void closeAll(Connection connection,PrepareStatement preparestatement,Result rSet){

if(connection!=null){

connnection.close();

}

if(preparestatement!=null){

preparestatement.close();

}

if(rSet!=null){

rSet.close();

}


}


二.购物车页面

主页登陆,主页显示商品,包括了商品的显示与添加到购物车,然后主页可以跳转到购物车,购物车页面可以对购物车进行增删改

所以一共3个页面,登陆页面,主页,购物车页面

三.所需要复习的一些方法

1.主页直接进行显示

a.直接写在jsp页面写java代码,不过不推荐。。 或者在最前加<%@ include file="">  ,不过也不推荐

b.用过滤器做(需要复习)

过滤器 一般写在com.jhdx.model.controler包下面

继承Filter接口 实现里面的方法 假设文件名为 initial

包括了destory doFitler init 三个方法

doFitler 方法做完判断之后要加chain.doFitler 继续传递页面,否则页面无法继续传递啦(如果没进判断的话)

接着要到web.xml里面去配置filter文件了

有2个标签属性分别是

<filter>

<filter-name></filter-name>//过滤器页面的名称

<filter-class></filter-class>//过滤器页面的地址,记得用ctrl可以点进去就确保无误了!

</filter>


<filter-mapping>

<filter-name></filter-name>//过滤器页面名称,一般和上面一样

<url-pattern>/index.jsp</url-pattern>//直接翻译是地址模式,实际含义是过滤器的作用范围,例如在购物车项目中我只想给主页做过滤就这样写 如果要对所有的都进行过滤就写// /*

</filter-mapping>

c.使用jstl标签做(需要复习)(记得导包)

jstl 与el 表达式的一波配合可以使得jsp页面里面不再出现java代码

其中jstl一般复制逻辑判断 el表达式负责取值

记得页面开头先导入包

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

常用标签

<c:set var="example" value="${100+1}" scope="session"/>

设置一个变量 var是名字 value是数值 scope是保存的位置或者说范围

<c:out value="${example}" default="haha"/>

输出一个变量 支持el表达式,default表示默认值(如果找不到的话),escapeXml用于指定是否转换特殊字符

<c:remove var="" scope="">

移除一个变量,var是名字,scope是范围

<if:: test="" var="" scope="">

判断的对象test  得到的结果为boolen类型 保存在var里 范围是scope

jstl标签里面没有if else的语句 想要实现if else的效果只能写多个if 或者使用

<c:choose>


<c:when test="">//如果

</c:when>


<c:otherwise>//否则

</c:otherwise>


</c:choose>


迭代

<c:forEach items="" var="" begin="" end="" step="">

items表示要迭代的集合 var为集合内元素的临时名字 begin表示从哪里开始迭代 end表示哪里结束 step表示一次迭代几部 默认从到到尾每次迭代一个

迭代开始从下标0开始算

</c:forEach>


<c:redircet url=""></c:redirect>


因此用jstl配合el表达式判断的话就是在一开始写下判断商品购物车里面是否为空,为空的话先跳到servlet里面去

具体语句为

<c:if: test="{empty glist}"><

response.sendredirction("Servlet?action=all");

/c:if>

//这里是我犯的错 想当然的就这么写了,这是Jsp页面... 用于显示的,想这么写还是等于要于<% %>写java代码了

这 一行应该替换成

<c:redirect url="Servlet?action=all"/>


三.购物车的逻辑

数据库查询商品数据库显示到主页面

数据里3个表 一个用户ID 账号 密码表 没毛病

一个 商品表 没毛病

一个购物车表 字段是 购物车自增长id 物品id 用户id 购买数量


页面逻辑为

用户在主页面点击购买商品-- 在数据库里将用户这次的购买加入数据库购物车表CAR表中,同时做一个增加还是更新的判断,在这之前做一个没登陆的判断

接着 用户点击进入购物车 之后 先进行查询 没查到就提示用户什么都没买 不能跳转 先买了再跳

进行查询 同时将查到的几条数据保存到CAR里,CAR再保存到CARLIST集合里面

在购物车界面将CARLIST用JSTL迭代表示出来

所以说在entity类里面建立的时候

因此数据库里的只有用户ID和物品ID

因此在购物车界面想要显示物品其他属性 有2种方法

但是核心都是要改变CARLIST里的内容,要保证CARLIST里的内容要有GOODID GOODNAME之类的信息

说白了就是CAR里面要有各种信息


方法一就是 数据库里的CAR表就有这些信息

方法二 是ENTITY里的CAR 的字段不是CARID和USERID 而是CAR和USER

在查询的时候 中间赋值给CAR的时候

利用查询到的CAR ID和USER ID 引用两条查询方法 再将数值添加到CAR中的GOOD 和USER里

这样购物车界面的显示就可以使用

${Clist.Good.goodid} 之类的


SO.方法提纲

数据3个表,接着建立model层

根据需求写逻辑

熟练使用jstl el表达式,然后各种方法,进入servlet

注意点就是jstl要搞标签 dbmanger自己要能写出来  各种方法的写入 购物车的逻辑判断 还有过滤器或者是使用jstl标签的进行判断之类的。


新增的话一样的,添加完商品再跳转到查询SERVLET里面去查询完再跳回来

修改同理,修改完重新载入一次数据







0 0
原创粉丝点击