*Struts2数据校验:在注册Action类同一包下新建UserAction-user_regist-validation.xml(针对注册regist)
*AJAX校验用户名是否存在:input文本框内加一条-onblur="checkUserName()"-鼠标移除触发事件
不使用jquery:
1functioncheckUserName(){2//获得用户名的值:3varusername=document.getElementById("username").value;4//1.创建异步加载对象:5varxhr=createXMLHttpRequest();6//2.设置监听7xhr.onreadystatechange=function(){8if(xhr.readyState==4){9if(xhr.status==200){10vardata=xhr.responseText;11document.getElementById("span1").innerHTML=data;12}13}14}15//3.打开连接:16xhr.open("GET","${pageContext.request.contextPath}/user_checkUserName.action"+newDate().getTime()+"&username="+username,true);17//4.发送18xhr.send(null);19}2021functioncreateXMLHttpRequest(){22varxmlHttp;23try{//Firefox,Opera8.0+,Safari24xmlHttp=newXMLHttpRequest();25}catch(e){26try{//InternetExplorer27xmlHttp=newActiveXObject("Msxml2.XMLHTTP");28}catch(e){29try{30xmlHttp=newActiveXObject("Microsoft.XMLHTTP");31}catch(e){32}33}34}3536returnxmlHttp;37}使用jquery:
发送邮件的工具类:MailUtils
*验证码程序.
激活:
*点击邮件中连接地址,对用户进行激活.
*数据校验.
退出:
*销毁session.
查询一级分类:显示到菜单位置.
查询一级分类:关联二级分类.
根据一级分类:查询到二级分类.
查询最新商品:
根据分类查询商品:
*根据分类的ID检索商品.
*对商品显示的时候,分页显示.
根据商品ID检索商品:
*显示商品详情.
添加到购物车:
*将购物项添加到购物车.
*如果购物项已经存在在购物车中,那么数量和小计需要增加.
*如果购物项没有在购物车中,添加一个新的购物项.
清空购物车:
*将购物车中所有的购物项,清空.
从购物车中移除:
*将某一个购物项从购物车中移除.
保存订单:
*数据从购物车中获取.
显示某个订单:
*根据订单ID检索订单.
查询我的订单:
*根据用户ID检索订单.
在线支付:
*选择第三方支付平台,为订单进行付款.
查询所有用户:
修改用户信息:
删除用户信息:
查询所有一级分类:
*分页.
添加一级分类:
修改一级分类:
删除一级分类:
*删除二级分类.(级联)
查询所有二级分类:
添加二级分类:
*所属一级分类:
修改二级分类:
删除二级分类:
查询所有商品:
*条件查询.
添加商品:
*上传商品图片.
修改商品:
*修改上传图片.
删除商品:
查询所有订单:
*分页
按状态查询订单:
是否可以删除订单:
Struts2的jar包:
*struts2框架解压路径/apps/struts2-blank.war/WEB-INF/lib/*.jar
*struts2框架解压路径/lib/struts2-spring-plugin-2.3.15.3.jar
*struts2框架解压路径/lib/struts2-json-plugin-2.3.15.3.jar
Spring的jar包:
*Spring开发基本jar包
*spring框架解压路径/lib/spring-beans-3.2.0.RELEASE.jar
*spring框架解压路径/lib/spring-context-3.2.0.RELEASE.jar
*spring框架解压路径/lib/spring-core-3.2.0.RELEASE.jar
*spring框架解压路径/lib/spring-expression-3.2.0.RELEASE.jar
*spring框架依赖包解压路径/com.springsource.org.apache.commons.logging-1.1.1.jar
*spring框架依赖包解压路径/com.springsource.org.apache.log4j-1.2.15.jar
*Spring的AOP开发(Aspectj)
*spring框架解压路径/lib/spring-aop-3.2.0.RELEASE.jar
*spring框架解压路径/lib/spring-aspects-3.2.0.RELEASE.jar
*spring框架依赖包解压路径/com.springsource.org.aopalliance-1.0.0.jar
*spring框架依赖包解压路径/com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
*Spring的JDBC支持、事务管理、整合Hibernate
*spring框架解压路径/lib/spring-jdbc-3.2.0.RELEASE.jar
*spring框架解压路径/lib/spring-tx-3.2.0.RELEASE.jar
*spring框架解压路径/lib/spring-orm-3.2.0.RELEASE.jar
*Spring整合web项目:
*spring框架解压路径/lib/spring-web-3.2.0.RELEASE.jar
*Spring整合Junit单元测试:
*spring框架解压路径/lib/spring-test-3.2.0.RELEASE.jar
Hibernate框架jar包:
*hibernate框架解压路径/hibernate3.jar
*hibernate框架解压路径/lib/required/*.jar
*hibernate框架解压路径/lib/jpr/*.jar
*hibernate框架整合log4j
*slf4j-log4j12-1.7.2.jar
*数据库驱动包
*c3p0连接池jar包.
Struts框架中:
*web.xml
*核心过滤器:
*struts.xml
Spring框架中:
*applicationCotnext.xml
*不使用hibernate配置文件:
*将hibernate的信息配置到spring框架中.
log4j的配置文件:
连接数据库基本参数配置文件:jdbc.properties
另外在对类及jsp页面等等的命名有了更全面的认识。
编码上出现过几个问题,不止下面这些(忘记了~)...:
解决办法:
解决办法:
2,使用SimpleDateFormat进行转换,转换成和数据库一致的格式:yyyy-MM-ddhh:mm:ss
对于查询的数据以页面的形式展现,在这个项目中有两种方法,一是离线查询,还有就是this.getHibernateTemplate().executeFInd
离线查询:
1DetachedCriteriacriteria=DetachedCriteria.forClass(Product.class);2criteria.add(Restrictions.eq("is_hot",1));3List
PageHibernateCallback类
1publicclassPageHibernateCallback 1List>{23privateStringhql;4privateObject[]params;5privateintstartIndex;6privateintpageSize;78publicPageHibernateCallback(Stringhql,Object[]params,9intstartIndex,intpageSize){10super();11this.hql=hql;12this.params=params;13this.startIndex=startIndex;14this.pageSize=pageSize;15}1617publicList