下载首页 | 资讯中心 | 文章分类 | 最近更新 | 排 行 榜 | 国产软件 | 国外软件 | 绿色软件 | 汉化补丁 | |
文章搜索: 分类 关键字
您的位置:首页编程开发网络编程 → 基于J2EE架构的电子商务网站实例解析
基于J2EE架构的电子商务网站实例解析
来源:天极yesky 作者: 加入时间:2006-12-8 访问次数:21 [  ]



  它处理客户程序登陆数据,并配置一些存取数据库的参数,比如缓冲池等。代码示范为:

public void applyLogin() {
 //配置数据库访问参数
 DatabaseLogin login = new DatabaseLogin();
 login.usePlatform(new oracle.toplink.oraclespecific.Oracle9Platform());
 login.setDriverClassName("oracle.jdbc.driver.OracleDriver");  login.setConnectionString(ApplicationConfiguration.get(ConfigurationConstants.DB_CON_STR));  login.setUserName(ApplicationConfiguration.get(ConfigurationConstants.DB_USER));   login.setPassword(ApplicationConfiguration.get(ConfigurationConstants.DB_ENCRYPTED_PASSWORD));
 // 设置数据库参数
 login.setUsesNativeSequencing(true);
 login.setSequencePreallocationSize(1);
 login.setShouldBindAllParameters(false);
 login.setShouldCacheAllStatements(false);
 login.setUsesByteArrayBinding(true);
 login.setUsesStringBinding(false);
 if (login.shouldUseByteArrayBinding()) { // Can only be used with binding.
  login.setUsesStreamsForBinding(false);
 }
 login.setShouldForceFieldNamesToUpperCase(false);
 login.setShouldOptimizeDataConversion(true);
 login.setShouldTrimStrings(true);
 login.setUsesBatchWriting(false);
 if (login.shouldUseBatchWriting()) { // Can only be used with batch writing.
  login.setUsesJDBCBatchWriting(true);
 }
 login.setUsesExternalConnectionPooling(false);
 login.setUsesExternalTransactionController(false);
 setLogin(login);
}

  ·建立映射关系

  Toplink通过类似于builXXXDescriptor方法来建立Java对象与数据库表字段之间的对应关系,示范代码如下:

public Descriptor buildAccountDescriptor() {
 Descriptor descriptor = new Descriptor();
 descriptor.descriptorIsAggregate();
 descriptor.setJavaClass(com.routease.db.vo.user.Account.class);
 descriptor.setAlias("Account");
 // Mappings.
 //建立Account 对象的deposit属性与数据库表的DEPOSIT字段的对应关系
 DirectToFieldMapping depositMapping = new DirectToFieldMapping();
 depositMapping.setAttributeName("deposit");
 depositMapping.setFieldName("DEPOSIT");
 descriptor.addMapping(depositMapping);
 …
 return descriptor;
}

 

  3. 定制后台Action

  根据MVC的精神,View和Model设计好之后应该是将开发重点转移到控制器的开发上。控制器是根据用户行为进行响应的处理模块,比如用户通过首页的搜索条对服务信息进行检索,这时,web服务中的SearchToTradeEntityAction(对应SearchToTradeEntityAction.java文件)会对用户这一动作进行处理。以下对这一Action进行详细分析:

package com.routease.action.totradeentity;
import java.util.Collection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.routease.action.PagingAction;
import com.routease.action.helper.UserHelper;
import com.routease.db.dao.DataSource;
import com.routease.db.dao.totradeentity.SearchingCriteria;
import com.routease.db.dao.totradeentity.ToTradeEntityDAO;
import com.routease.db.util.Constants;
import com.routease.db.util.Page;
public class SearchToTradeEntityAction extends PagingAction {
 public SearchToTradeEntityAction()
 {
  super();
 }
 // executeWithDataSource方法为该Action默认执行的方法
 public ActionForward executeWithDataSource(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response, DataSource ds) throws Exception {
  //首先接受用户提交的表单数据
  String objective = (String) PropertyUtils.getSimpleProperty(actionForm, "objective");
  String keyWords = (String) PropertyUtils.getSimpleProperty(actionForm, "keyWords");
  String keyWordsRange = (String) PropertyUtils.getSimpleProperty(actionForm, "keyWordsRange");
  if (StringUtils.isEmpty(keyWordsRange)) {
   keyWordsRange = SearchingCriteria.KEY_WORDS_RANGE_NAME;
  }
  String industryLevel1 = (String) PropertyUtils.getSimpleProperty(actionForm, "industryLevel1");
  String industryLevel2 = (String) PropertyUtils.getSimpleProperty(actionForm, "industryLevel2");
  String startingPrice = (String) PropertyUtils.getSimpleProperty(actionForm, "startingPrice");
  String endingPrice = (String) PropertyUtils.getSimpleProperty(actionForm, "endingPrice");
  String city = (String) PropertyUtils.getSimpleProperty(actionForm, "city");
  String province = (String) PropertyUtils.getSimpleProperty(actionForm, "province");
  String startNoStr = (String) PropertyUtils.getSimpleProperty(actionForm, "startNumber");
  String lengthStr = (String) PropertyUtils.getSimpleProperty(actionForm, "length");
  if (StringUtils.isEmpty(startNoStr)) {
   startNoStr = "1";
  }
  //根据用户提交的数据,创建查询表达式对象SC
  int startNumber = Integer.parseInt(startNoStr);
  int length = UserHelper.getPagingLength(ds, request);
  ToTradeEntityDAO serviceDAO = new ToTradeEntityDAO(ds);
  SearchingCriteria sc = new SearchingCriteria();
  sc.setCity(city);
  sc.setProvince(province);
  sc.setEndingPrice(endingPrice);
  sc.setIndustryLevel1(industryLevel1);
  sc.setIndustryLevel2(industryLevel2);
  sc.setKeyWords(keyWords);
  sc.setKeyWordsRange(keyWordsRange);
  sc.setObjective(objective);
  sc.setStartingPrice(startingPrice);
  if (Constants.IS_TEST) {
   System.out.println("start of page:" + startNumber);
  }
  //提交查询对象SC,并获得查询结果集,将其结果集放入Request对象中,便于返回
  Page result = serviceDAO.searchToTradeEntities(sc, startNumber, length);
  Collection industries = serviceDAO.findIndustryDistribution(sc);
  result.setSizePerPage(length);
  request.setAttribute(Constants.TO_TRADE_ENTITY, result);
  request.setAttribute("MY_INDUSTRIES",industries);
  request.setAttribute("MY_PAGE", result);
  //业务逻辑处理完毕之后,返回成功页面
  return actionMapping.findForward("SUCCESS_PAGE");
 }
}

  SearchToTradeEntityAction是一个典型的Action,由前面注解不难看出,一般Action分为三部分:
上一页 [1] [2] [3] [4] 下一页
评论人 评论内容摘要(共 0 条,查看完整内容) 得分 0 发表时间
 热点文章
·惊爆!《暗黑破坏神3》将对应全平台
·《荣誉勋章:太平洋之战》中文版上市
·MediaShow魅力四射快速制作音乐电子相册
·《花木兰》完美流程攻略
·轻松可爱 最新10大Q版网络游戏推荐
·2006年暑期新宣布免费网络游戏一览
·photoshop制作水晶球中的精灵
·NVIDIA发布Forceware 93.71 WHQL驱动
·经验分享 微软Word2007实用技巧两则
·国内新记录产生 1M super pi运算仅用9秒
 推荐文章
·微软高官爆料:欧盟对Vista哪些功能不安
·在Google Talk上与QQ、MSN好友聊天
·Word使用过程中的常见问题及其解决
·手把手教你内存终极变相“造假”大法
·NVIDIA联手海盗船 推出自动超频内存
·Windows Vista特殊功能介绍:语音识别
·公安机关检验软件样本 流氓软件制造者面临坐牢危..
·比英特尔UMPC还要小 移动PC新品推出
·性感暴力完美结合 御姐武戏X新画面
·盖茨访谈:我就是微软里的兼职员工
WinXP下载基地 版权所有 Copyright© 2006-2008 WWW.WinXpd.COM, All Rights Reserved. 页面维护: WinXP下载基地(WinXP基D)