Java ee购物商城

 

前台页面效果图及代码

登录界面

登录校验文件:

系统一般都以登录作为访问的入口,所以登录验证就显得尤为重要,一般的都会采用双重验证的包括客户端js文件验证和服务器端文件验证,提高了系统的安全性能,下面就是服务器端基本校验文件

用户注册

用户注册:

   为了保证用户输入的信息都是有效性,必须设计输入验证策略,同样也有客户端校验文件和服务端的校验文件,验证信息的正确格式就显得尤为重要,在很多商务网站都没有防护网络爬虫,爬虫技术不能忽视,为了限制网络爬虫,该网站设计了验证码,可以提高安全性能,下面就是生成验证码的核心代码

同时注册使用AJAX异步校验用户名: 采用AJAX主要是提高用户体验和节省流量一个重要的操作

为了提高用户的信息真实度,很多网站都是采用手机号码验证手机号码信息,但是由于开通短信接口需要缴费,故该商城采用邮箱认证用户的邮箱真实度,主要采用腾讯旗下的QQ邮箱为服务器,采用本人的qq邮箱作为发送方;下面是发送邮箱核心代码。

商品页面:

分类页面:

服装分类:

    对于一个服装商城网站来说,各种各样的服装都需要一个合理的分类,可以方便管理员更加方便的管理各类的服装,以及提高用户的体验,不用一个一个去浏览,节省了流量,所以分类是该商城的重要组成部分之一,下面是根据分类查询商品的核心代码:

商品详情页面:

购物车页面:

填写地址页面:

模拟付款操作:

   由于申请支付接口需要营业执照,故无法完成正真的支付操作,该网站采用虚拟的模拟操作付款操作:下面就是支付的操作核心代码

订单页面:

后台页面效果图及代码

后台登录页面:

后台的登录入口:

作为该商城最重要的入口,拦截器的作用就显得尤为重要,比起客户端和服务端校验更加重要,也是防止非法人员对整体网站的一个防护入口,所以锁好这个登录这个门,需要考虑到服务器端的拦截器;下面是核心代码。

前台首页

用户管理页面:

一级分类管理页面:

 

商品管理页面:

添加商品管理页面:

订单管理页面:

对于每个客户的订单详情,该网站采用Ajax技术实现单击显示,提高了管理员体验,不用通过跳转页面详细订单详情,同时提高了数据库的响应性能。

数据库池的配置:

jdbc.properties文件内容:

jdbc.driver = com.mysql.jdbc.Driver

jdbc.url = jdbc:mysql:///shop?characterEncoding=UTF-8

jdbc.user = root

jdbc.password =root

<!-- 配置连接池: -->

    <!-- 引入外部属性文件 -->

    <context:property-placeholder location="classpath:jdbc.properties"/>

    <!-- 配置C3P0连接池: -->

    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">

       <property name="driverClass" value="${jdbc.driver}"/>

       <property name="jdbcUrl" value="${jdbc.url}"/>

       <property name="user" value="${jdbc.user}"/>

       <property name="password" value="${jdbc.password}"/>

    </bean>

Hibernate的信息配置:

<!-- Hibernate的相关信息 -->

    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

       <!-- 注入连接池 -->

       <property name="dataSource" ref="dataSource"/>

       <!-- 配置Hibernate的其他的属性 -->

       <property name="hibernateProperties">

           <props>

              <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>

              <prop key="hibernate.show_sql">true</prop>

              <prop key="hibernate.format_sql">true</prop>

              <prop key="hibernate.connection.autocommit">false</prop>

              <prop key="hibernate.hbm2ddl.auto">update</prop>

           </props>

       </property>

       <!-- 配置Hibernate的映射文件 -->

       <property name="mappingResources">

           <list>

              <value>com/fuzhuan/user/vo/User.hbm.xml</value>

              <value>com/fuzhuan/category/vo/Category.hbm.xml</value>

              <value>com/fuzhuan/product/vo/Product.hbm.xml</value>

              <value>com/fuzhuan/categorysecond/vo/CategorySecond.hbm.xml</value>

              <value>com/fuzhuan/order/vo/Order.hbm.xml</value>

              <value>com/fuzhuan/order/vo/OrderItem.hbm.xml</value>

              <value>com/fuzhuan/adminuser/vo/AdminUser.hbm.xml</value>

           </list>

       </property>

    </bean>

事务的信息配置:

<!-- 事务管理: -->

    <!-- 事务管理器 -->

    <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">

       <property name="sessionFactory" ref="sessionFactory"/>

    </bean>

   

    <!-- 开启注解事务 -->

    <tx:annotation-driven transaction-manager="transactionManager"/>

拦截器的信息配置:

<constant name="struts.devMode" value="false" />

    <package name="shop" extends="struts-default"namespace="/">

       <!-- 配置自定义拦截器 -->

       <interceptors>

           <interceptor name="privilegeInterceptor" class="com.fuzhuan.interceptor.PrivilegeInterceptor"/>

          

       </interceptors>

   

       <global-results>

           <result name="msg">/WEB-INF/jsp/msg.jsp</result>

           <result name="login">/admin/index.jsp</result>

       </global-results>

分页组件:

publicclassPageHibernateCallback<T> implements HibernateCallback<List<T>>{

   

    private String hql;

    privateObject[] params;

    privateintstartIndex;

    privateintpageSize;

   

    publicPageHibernateCallback(String hql, Object[] params,

           int startIndex, int pageSize) {

       super();

       this.hql = hql;

       this.params = params;

       this.startIndex =startIndex;

       this.pageSize = pageSize;

    }

    publicList<T> doInHibernate(Session session) throwsHibernateException,

           SQLException {

       //1 执行hql语句

       Query query =session.createQuery(hql);

       //2 实际参数

       if(params != null){

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

              query.setParameter(i,params[i]);

           }

        }

       //3 分页

       query.setFirstResult(startIndex);

       query.setMaxResults(pageSize);

      

       return query.list();

    }

源码下载https://download.csdn.net/download/lzy_520/10626002

猜你喜欢

转载自blog.csdn.net/LZY_520/article/details/80726601
今日推荐