zoukankan      html  css  js  c++  java
  • shopxx研究

    1、启动后,在tomcat/temp 下,生成cache和index文件夹。cache里面是类路径下ehcache.xml定义的缓存  index里面是 article 和 product的索引

    [SHOP++] 2015-12-29 20:01:07 [ WARN] (DirectoryProviderHelper.java:258) - Index directory not found, creating: 'C:JavaTomcat7 emplocalhost_shopxxindex'
    [SHOP++] 2015-12-29 20:01:07 [ WARN] (DirectoryProviderHelper.java:258) - Index directory not found, creating: 'C:JavaTomcat7 emplocalhost_shopxxindex et.shopxx.entity.Article'
    [SHOP++] 2015-12-29 20:01:07 [ WARN] (DirectoryProviderHelper.java:258) - Index directory not found, creating: 'C:JavaTomcat7 emplocalhost_shopxxindex et.shopxx.entity.Product'

    2 注册

    前台 :register.jhtml -> controller.shop -> RegisterController.java  

    相关实体:Member  MemberAttribute

    自定义指令 member_attribute_list -> memberAttributeListDirective

    boolean useCache = useCache(env, params);
    String cacheRegion = getCacheRegion(env, params);

    if (useCache) {
    memberAttributes = memberAttributeService.findList(cacheRegion);
    } else {
    memberAttributes = memberAttributeService.findList();
    }

    返回注册项列表 List<MemberAttribute> memberAttributes; 供 register.jhtml展示注册项

    model.addAttribute("genders", Gender.values());

    后台:member_attribute/list.jhtml 可以自定义 添加 修改会员注册项 类型包括文本 单选项 多选项

     关于枚举

    java中 memberAttribute.getType() == Type.select

    ftl 中 memberAttribute.type == "name"

    select  name 都是枚举Type中的值, 同时还定义了属性 private Type type;

    3、未登录拦截 public class MemberInterceptor extends HandlerInterceptorAdapter

    Principal principal = (Principal) session.getAttribute(Member.PRINCIPAL_ATTRIBUTE_NAME);

    String requestType = request.getHeader("X-Requested-With");  // 判断请求是否是来自ajax请求,若是ajax请求 requestType不为空。

    // 在没有登陆的情况下,来源的请求是 ajax 请求 ,设置禁止访问 SC_FORBIDDEN 即403错误。也即ajax请求不到数据。
    if (requestType != null && requestType.equalsIgnoreCase("XMLHttpRequest")) {
      response.addHeader("loginStatus", "accessDenied");
      response.sendError(HttpServletResponse.SC_FORBIDDEN);
      return false;
    } else {  // 在没有登陆的情况下,来源的请求不是ajax请求,是正常请求,就执行跳转到登陆页面。

      if (request.getMethod().equalsIgnoreCase("GET")) {
      String redirectUrl = request.getQueryString() != null ? request.getRequestURI() + "?" + request.getQueryString() : request.getRequestURI();
      response.sendRedirect(request.getContextPath() + loginUrl + "?" + REDIRECT_URL_PARAMETER_NAME + "=" + URLEncoder.encode(redirectUrl, urlEscapingCharset));
      } else {
      response.sendRedirect(request.getContextPath() + loginUrl);
      }
      return false;
    }

  • 相关阅读:
    fzuoj Problem 2177 ytaaa
    zoj The 12th Zhejiang Provincial Collegiate Programming Contest Capture the Flag
    zoj The 12th Zhejiang Provincial Collegiate Programming Contest Team Formation
    zoj The 12th Zhejiang Provincial Collegiate Programming Contest Beauty of Array
    zoj The 12th Zhejiang Provincial Collegiate Programming Contest Lunch Time
    zoj The 12th Zhejiang Provincial Collegiate Programming Contest Convert QWERTY to Dvorak
    zoj The 12th Zhejiang Provincial Collegiate Programming Contest May Day Holiday
    zoj The 12th Zhejiang Provincial Collegiate Programming Contest Demacia of the Ancients
    zjuoj The 12th Zhejiang Provincial Collegiate Programming Contest Ace of Aces
    csuoj 1335: 高桥和低桥
  • 原文地址:https://www.cnblogs.com/appzhang/p/5037096.html
Copyright © 2011-2022 走看看