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

  • 相关阅读:
    输入输出重定向
    Tkinter程序屏幕居中
    从Web Controls到DHTML学习随想
    一个没暂时没有办法实现的问题和一个有意思的小问题!
    [学习笔记]几个英语短句(1)
    [读书笔记]My LifeBill Clinton
    [学习笔记]几个英语短句(2)
    结合MS Web Controls做文件上传的解决方案!
    IIS的一个莫名错误--Server Application Unavailable
    Google Sitemaps(测试版)帮助:使用 Sitemap 协议
  • 原文地址:https://www.cnblogs.com/appzhang/p/5037096.html
Copyright © 2011-2022 走看看