Programming

반응형

Spring InterCeptor 를 이용한 Session Login Check

InterCeptor에서 제공하는 3가지 메소드가 각각 실행되는 시점.

  • preHandle: Controller 실행 요청 전
  • postHandle: view(jsp)로 forward 되기 전에
  • afterCompletion: 요청이 끝난 뒤

session check 시점은 dispatcher -> controller 로 요청이 오기 전에 실행..되야 하므로 preHandle 메소드 시점에 처리.

  • CommonInterceptor.java
public class CommonInterceptor implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {
        log.debug("===============================preHandler===============================");
        if (SessionUtils.getSessionVO() == null) {
            //14.11.25 jp add.. 
            //session validation check order & mypage * method type : submit, ajax
            if ((request.getRequestURI().indexOf("/biz/ord/order/") > -1) || (request.getRequestURI().indexOf("/biz/mpg/") > -1)) {
                String ajaxCall = (String) request.getHeader("AJAX");

                if ("true".equals(ajaxCall)) {
                    response.sendError(901);
                } else {
                    response.sendRedirect(Globals.PROTOCOL_HTTPS + Globals.DOMAIN + "/base/login/loginForm.do");
                    response.flushBuffer();
                }
                return false;
            }
        }
        return true;
    }
}
  • Sevlet-interceptor.xml

submit에 경우는 sendRedirect 로 리다이렉트가 가능하지만, ajax Call에 경우는 sendRedirect가 호출 되더라도 Callback 처리 되기때문에 추가해줘야 한다.

ajax 공통 함수에 jqXHR.status = 901로 리턴 될 경우 로그인 페이지로 핸들링 처리를 추가해준다.

  • ajax 호출시 beforeSend 에 ajax 호출을 Header에 기록.
$.ajax({ 
    beforeSend: function (xmlHttpRequest) { 
        xmlHttpRequest.setRequestHeader("AJAX", "true"); 
    } 
});
반응형
반응형

Request method 'HEAD' not supported 오류에 대한 대처 방법.

프로젝트 막바지에 위와 같은 오류에 직면 했다..ㅜ 첨 보는 오류..

그동안 너무 쉬엄쉬엄 했나..기본이 부족..

HTTP method GET, POST 이외에...PUT, DELETE...등 그 중 HEAD....

원리는 간단하다. web.xml 전 단계에서 doFilter 를 이용해 우회 처리를..

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
        HttpServletRequest httpServletRequest = (HttpServletRequest) request;
        logger.debug("========== isHttpHead(httpServletRequest) : {}", isHttpHead(httpServletRequest));
        if (isHttpHead(httpServletRequest)) {
            chain.doFilter(new ForceGetRequestWrapper(httpServletRequest), response);
        } else {
            chain.doFilter(new FilteredRequest(request), response);
        }
    }

    private boolean isHttpHead(HttpServletRequest request) {
        return "HEAD".equals(request.getMethod());
    }

    private class ForceGetRequestWrapper extends HttpServletRequestWrapper {
        public ForceGetRequestWrapper(HttpServletRequest request) {
            super(request);
        }

        public String getMethod() {
            return "GET";
        }
    }

    public void destroy() {
    }
}

doFilter에 분기문을 추가하여 HEAD 요청시 GET으로 Method 를 변경한다.

http://axelfontaine.com/blog/http-head.html http://forum.spring.io/forum/spring-projects/web/89981-request-method-head-not-supported

 

Legacy forums will be shutdown February 28

In 2014, we announced the retirement of our legacy forum, forum.spring.io, in favor of providing an improved community experience on stackoverflow.com. As part of that announcement, we put our forum into read-only mode, preserving forum posts that were ref

spring.io

 

반응형
반응형

 

번역본

http://helloworld.naver.com/helloworld/textyle/303083

 

 

https://developer.yahoo.com/performance/rules.html

반응형

'Programming > Frontend' 카테고리의 다른 글

장바구니 주문금액 재계산 스크립트  (0) 2015.04.06
[jQuery] multi element each  (0) 2015.03.31
[jQuery] each break/continue  (0) 2015.01.22
[jQuery] loadingbar plugin  (0) 2014.09.19
jquery ajax method 정리  (0) 2014.03.12

[jQuery] each break/continue

2015. 1. 22. 15:56
반응형

jQuery each break/continue

$.each(giftInfo, function(i) {
    if(giftInfo[i].ORD_PSS_QTY <=0) { 	
        alert(J.getMessage("ord.warning.028", [giftInfo[i].PRD_NM])); 	
        //freeGift Stock check 	
        $(location).attr("href", "${refURL}"); 	
            flag = false; 	
            return false;  //break each loop 빠져나옴         
            return true;   //continue each loop 계속 수행									     
        } 
    }
);
반응형

[jQuery] loadingbar plugin

2014. 9. 19. 10:22
반응형
  • jquery.loadinbar.js
lodingbar plugin
  • sample.jsp

반응형

+ Recent posts

반응형