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;
    }

  • 相关阅读:
    AMD平台如何使用Android Studio官方的高性能模拟器
    Nginx安装SSL证书,开启HTTPS加密
    【English】20190429
    【Teradata】TD Unicode编码格式下varchar定义测试
    【Teradata TTU】Windows TTU安装工具列表
    【English EMail】2019 Q2 Public Holiday Announcement
    【English】20190428
    【张东武 老架一路74式第一段】第二式 金刚捣碓
    【影音制作】编辑视频
    【Teradata SQL】多行转一列函数TDStats.udfConcat
  • 原文地址:https://www.cnblogs.com/appzhang/p/5037096.html
Copyright © 2011-2022 走看看