zoukankan      html  css  js  c++  java
  • java 过滤器Filter

    一、首先在web.xml里进行拦截过滤

      <filter>
            <filter-name>platformServiceAgreementFilter</filter-name>
            <filter-class>com.yingle.web.lawyer.filter.PlatformServiceAgreementFilter</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>platformServiceAgreementFilter</filter-name>
            <url-pattern>/faces/pc/secure/v/*</url-pattern>
        </filter-mapping>
        <filter-mapping>
            <filter-name>platformServiceAgreementFilter</filter-name>
            <url-pattern>/faces/mobile/secure/v/*</url-pattern>
        </filter-mapping>

    二、在com.yingle.web.lawyer.filter.PlatformServiceAgreementFilter包里处理响应

    PlatformServiceAgreementFilter extends HttpFilter


        /**
         *
         */
        @Override
        public void doFilter(HttpServletRequest request, HttpServletResponse response, HttpSession session,
            FilterChain chain) throws ServletException, IOException {
            Integer userProfileId = LoggedUserUtil.getLoggedUserProfileId();
            try {
                LawyerProfile lawyer = null;
                if (null != userProfileId) {
                    lawyer = lawyerProfileService.getById(userProfileId);
                }
                Page page = pageConfig.getLatest(PageConfig.PLATFORM_SERVICE_AGREEMENT);
                if (null != lawyer && null != page) {
                    Date publishTime = page.getPublishTime();
                    if (null == lawyer.getAcceptServiceAgreementTime()
                        || lawyer.getAcceptServiceAgreementTime().compareTo(publishTime) <= 0) {
                        String userAccessEnvironment = FacesEnvironmentContextListener.getUserAccessEnvironment(request);
                        String originRequesetURL = request.getRequestURL().toString();
                        String queryString = request.getQueryString();

                        if (StringUtil.isNotEmpty(queryString)) {
                            if (queryString.indexOf("faces-redirect") >= 0) {
                                originRequesetURL = originRequesetURL + "?" + queryString;
                            } else {
                                originRequesetURL = originRequesetURL + "?faces-redirect=true&" + queryString;
                            }
                        } else {
                            originRequesetURL = originRequesetURL + "?faces-redirect=true";
                        }

                        session.setAttribute(SessionKey.REQUEST_URL_BEFORE_AGREEMENT_KEY, originRequesetURL);

                        String redirectPagePath =
                            request.getContextPath()
                                + String.format(PLATFORM_SERVICE_AGREEMENT_URL, userAccessEnvironment);
                        ServletUtil.redirect(response, redirectPagePath);
                    }
                }
            } catch (ApplicationServiceException e) {
                throw new ServletException("encounter error while showing platform service agreement", e);
            }
            chain.doFilter(request, response);
        }

  • 相关阅读:
    使用 OpCache 提升 PHP 性能
    在线视频开发博客教程
    修正ECMALL在PHP5.3以上版本中无法开启支付方式的BUG
    第二个小项目的讲解后感言
    mybatis进行分页,使用limit
    mybatis传递多个参数值(转)
    一个关于前端页面的小标签<tbody>
    json-lib的一些过滤操作
    关键字volidate和transient(转)
    Java中实现序列化的两种方式 Serializable 接口和 Externalizable接口
  • 原文地址:https://www.cnblogs.com/netliang/p/java.html
Copyright © 2011-2022 走看看