본문 바로가기

Server Oriented/Java & JSP

(76)
네이버 검색 엔진이 가져가는 웹사이트 제목 타이틀 획득 타이밍..? 네이버 검색 엔진이.. 웹사이트의 제목과 등등등의 정보를 웹봇을 통해 수집하는 것은 익히 알고 있죠..? 그런데, 해당 웹페이지의 제목을 수집하는 타이밍은 언제 일까요..? 일단, 이것이 이슈가 되거나 심층 분석을 하겠다는 것은 아니구요. 프로그래머 입장에서, 어떻게 하면 제목이 정상적으로 수집되도록 할 것이냐.. 이걸 짧막하게 생각해 본다는 겁니다. 뭔가 거창한 걸 원하시는 분은 아래 내용을 보실 필요 없구요. HTML 구조상, title 의 위치는 head 태그 안에 존재합니다. 네이버 웹마스터 도구에서도 title 태그가 body 안에 들어가면 수집이 안 된다는 내용이 있습니다. 그런데, 웹프로그램을 하다 보면.. head 의 title 에 모든 내용을 미리 담아 놓을 수는 없어요. 정적인 웹페이지..
URLDecoder: Incomplete trailing escape (%) pattern .jsp 호출시 참여한 파라미터 값에 '%' 문자가 들어갔으면, request.getParameter() 나 request.getgetParameterNames() 메소드 내부에서 "URLDecoderURLDecoder: Incomplete trailing escape (%) pattern" 예외 처리를 하고, 해당 파라미터 값에 null 을 세팅한다. 상기 메소드 외부로 throw Exception 을 하지 않으므로, try ~ catch 문에도 상기 예외는 잡히지 않으며, 필요에 따라서 적절한 대응 코드를 넣어 주어야 함.. 상기 예외 내용은 시스템 로그에 찍히지 않게 할 수 없음. 들리는 소문에 의하면 get 이나 post 방식의 차이로 시스템 로그가 찍히지 않게 할 수 있다는데.. 이 부분은 잘 ..
include 파일에서 조건 체크후 return a.jsp 가 b.jsp 를 include 하고, b.jsp 에서 조건을 체크하여 조건에 맞지 않다면 더이상 진행하지 못하도록 조치한다 했을 때.. b.jsp 에서 아래 코드를 통해 프로세스를 정지하여 b.jsp 가 include 된 이후의 a.jsp 코드가 실행되지 않도록 하려면.. b.jsp 를 와 같이 정적 포함시켜야 한다. 와 같이 동적 포함시켰다면.. b.jsp 에서 세팅한 return; 코드에서 프로세스가 정지되지 않고 a.jsp 의 맨 마지막 까지 실행됨. if(조건){ ... 처리 로직 .. return; } 아니면, 동적 포함이기 때문에.. jspwork 에 있는 해당 파일을 삭제해서 다시 컴파일되게 해야 할지..
웹서비스 최적화 https://12bme.tistory.com/128 - ajax//jsonp 튜닝o 아래 내용은 전송되는 양이 얼마 없다면 고려할 필요 없음o 수치라면 문자열 보다 숫자를 사용. "key1":"val1", "key2":'val2" 보다는 "key1":val1, "key2":val2 가 전송량을 줄여준다 만약 val 이 없는 경우라면, "key1":val1, "key1":"" 과 같이 해도 된다. 단, 수신측에서 적절하게 처리해야 함. 숫자로 인식되기 때문에 문자열 처럼 사용하려면 적정한 처리가 필요o boolean 형이라면 문자열 보다 boolean 사ㅛㅇ. "key1":"true" 보다는 "key1":true 가 전송량 줄임o key 와 value 를 설계할 때, 의미 구분이 되면서도 글자수가 적은 ..
자바에서 제공하는 각종 컬렉션 비교 https://blog.naver.com/madplay/220902917893, 각 컬렉션간 기능 비교
세션이 살아 있는지 체크 .jsp 에서 세션이 살아 있는지 체크할 때 대체로는if(session==null){ ... } 과 같이 null 만 체크한다. 그런데, session.invalidate(); 를 실행할 때는.. session!=null 인 상태다. 그러므로,if(session==null || !request.isRequestedSessionIdValid()){ ... } 와 같이 isRequestedSessionIdValid() 를 추가한다.
ajax 로 데이타를 처리할 때 request 의 Referer 를 반드시 체크할 것 String referer = request.getHeader("Referer"); // 보안성 검토. 정상적이지 않은 방법으로 접근시 차단 if(referer.length()==0) return; // 엉뚱한 곳에서 호출하면 리턴, 이건 해킹 시도라고 봐야지.. else if(referer.indexOf("aaa.jsp")>-1) ; // http://www..../aaa.jsp 명확한 경로를 기술 else if(referer.indexOf("bbb.jsp")>-1) ; // http://www..../bbb.jsp 명확한 경로를 기술 else if(referer.indexOf("ccc.jsp")>-1) ; // http://www..../cccjsp 명확한 경로를 기술 else{ System.out...
jsp 쿠키값 추출 import javax.servlet.http.Cookie;import javax.servlet.http.HttpServletRequest; public String getCookies(HttpServletRequest request){ String rv = ""; Cookie[] cookies = request.getCookies(); if(cookies==null) return ""; rv = "@Cookies{ "; // 구분하기 쉽도록 표시를 이렇게 한 것. 입맛에 맞춰 바꾸면 됨 for(int i=0,s=cookies.length; i0 ? ", " : "") +cookies[i].getName()+ " = " +cookies[i].getValue(); // getName() 으로 비교해서 특정..