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

  • 相关阅读:
    ios代码大全
    MYSQL数据库之如何在已经建立好表之后重构数据表
    关于cookie在一个页面设置但是在另外一个页面获取不到的原因
    cookie的那点事儿
    关于a标签不能调用js方法的小细节,你注意到了么?
    关于mysql预处理技术的一点小心得
    关于delete使用limit的一些注意事项
    DP1 等分连续1-N个数的划分种数
    Spring 编程式事务和声明式事务管理
    java https client信任所有证书
  • 原文地址:https://www.cnblogs.com/appzhang/p/5037096.html
Copyright © 2011-2022 走看看