728x90

이클립스에서 Export --> java>javadoc 을 함으로써 소스파일을 쉽게 html 형식의 javadoc 파일을 쉽게 만들수 있다.

소스 코드를 UTF-8로 작성을 한 경우 빌드된 javadoc 파일들의 한글은 깨져 보이게 된다.

물론 브라우저 상에서 인코딩타입을 UTF-8로 변경하면 깨지지 않은 한글을 볼수 있지만

매번 다른 화면을 이동할 때마다 인코딩타입을 변경해주거나 자동선택을  선택해지 하고 UTF-8로 고정시켜야만 한다.

javadoc파일을 만들때 당연히 옵션이 있을 거라 생각하고 살펴보니..

역시나 javadoc 생성 마지막 단계에서 VM options을 지정함으로써 javadoc 파일의  Charset을 UTF-8로 설정할 수 있었다.

 

 

 

위의 그림과 같이 VM options 텍스트필드에 다음과 같이 입력한다.

 

-locale ko_KR -encoding UTF-8 -charset UTF-8 -docencoding UTF-8

728x90

'프로그래밍 > java' 카테고리의 다른 글

java get 방식 한글 전송 시  (0) 2015.05.26
전자정부(Spring) Framework] iBatis 입력(INSERT) 결과  (1) 2015.05.19
java jdbc db instance 설정  (0) 2015.05.06
오라클 페이징  (0) 2014.07.23
sprint MVC interceptor  (0) 2013.09.12
728x90

Spring MVC 를 사용하다가 보면 필연적으로 Interceptor 를 사용하게 됩니다.
Controller 에서 공통적으로 또는 특정 패키지들에 속한 부분에 대해서 선후 처리가 필요하기 때문입니다.
예전에 이러한 부분들을 AOP 로 구현한 것을 보았습니다. 다른 부분들은 AOP 로 구현하는것이 문제가 아니지만
Controller 부분이라면 Interceptor로 구현하시는것을 권장합니다.

Spring MVC 에서 interceptor 에 대해서 알아보겠습니다.

org.springframework.web.servlet.HandlerInterceptor ,
org.springframework.web.servlet.handler.HandlerInterceptorAdapter
를 상속받아 Interceptor를 구현하면 됩니다.

HandlerInterceptor 를 상속할 경우

preHandle , postHandle , afterCompletion 이렇게 3가지로 구분되어져 있습니다.
이름에서 대충 알수 있겠지만
preHandle : Controller 가 수행되기 전에 실행됩니다. 여기서는 이후 Controller를 수행할지 여부를 boolean 으로 return 하게 됩니다.
postHandle : Controller 가 수행된후 View 를 호출하기 전 상태입니다.
afterCompletion : View 작업까지 완료된 후 호출 됩니다. responseBody 를 이용할 경우 UI 에 이미 값을 전달후 해당 부분이 호출됩니다.

 

호출됩니다.

01 package com.softline.study.interceptor;
02  
03 import javax.servlet.http.HttpServletRequest;
04 import javax.servlet.http.HttpServletResponse;
05  
06 import org.springframework.web.servlet.HandlerInterceptor;
07 import org.springframework.web.servlet.ModelAndView;
08  
09  
10 public class ControllerLoggingInterceptor implements HandlerInterceptor {
11  
12     public boolean preHandle(HttpServletRequest request,
13             HttpServletResponse response, Object handler) throws Exception {
14         System.out.println("preHandle");
15         return true;
16     }
17  
18      
19     public void postHandle(HttpServletRequest request,
20             HttpServletResponse response, Object handler,
21             ModelAndView modelAndView) throws Exception {
22         System.out.println("postHandle");
23     }
24  
25     public void afterCompletion(HttpServletRequest request,
26             HttpServletResponse response, Object handler, Exception ex)
27             throws Exception {
28         System.out.println("afterCompletion");
29     }
30  
31 }

728x90
728x90

CSS3 투명도(opacity) 그림자(shadow) 설정

초창기 부터 주목되었던 투명도와 그림자에 대해 알아본다

투명도(opacity)

투명도를 설정함으로서 뒤의 z-inex설정에서 뒤에 엘리먼트라던가 겹친 엘리먼트를 보이게하는 등의 모습을 구현 할 수 있다.브라우저는 역시 IE가 예외 IE9는 지원한다. 단 IE8이하버전은 필터를 사용해야한다.

<div class="box1">box1 opctical 50%</div>
<div class="box2">box2 opctical 30%</div>

포지션은 겹치게 했다.

div{ width:300px; height:150px; position:relative;}
.box1{ left:100px; top:30px;
       background-color:#F00;
       opacity:.5;
     }
.box2{ left:150px; top:-50px;        
       background-color:#00F;        
       opacity:.3;
     }


투명도 쓸때 생각할것

 

1. 투명도는 누적되어 나타난다. 첫번째 박스는 50% 두번째 박스는 30%이다.
2. 투명도는 자식 엘리먼트에도 역시 적용된다. 자식엘리먼트는 부모것을 그대로 받아들이지 다시 원래대로 돌릴 수 없다.

문제의 IE8이하 버전을 해결할 필터를 이용한 방법은 다음과 같다.

#IE{ background-color:#00F;
     filter: alpha(opacity=75); }

투명도로 0~100%를 나타낸다.

그림자(shadow)

텍스트 그림자 효과와 같다. 좀더 옵션이 있다. IE는 IE9부터 지원한다
값은 색깔 가로 옵셋, 세로 옵셋, 블루어 효과, 그리고 마지막 값은 안쪽으로 그림자 옵션이다(inset)

.box3{ background-color:#090;
       box-shadow:#000 15px 15px 10px;
	 }
.box4{ background-color:#090;
       box-shadow:#C00 15px 15px 30px
	   ,#000 10px 10px 3px;
	 }
.box5{ background-color:#090;
       box-shadow:#000 15px 15px 10px inset;
	 }   

결과는 여기서 확인 http://sianasiatiger.cafe24.com/study/css3-box_03.html
첫번째는 간단한 적용한것. 마지막은 안으로 한 것이다.
두번째와 같이 여러개를 줄수도 있다. 여기서 먼저 설정해준것이 맨위에 보인다.

728x90

'프로그래밍 > CSS' 카테고리의 다른 글

CSS 리스트 스타일  (0) 2012.04.13
728x90

<?php
echo strtotime("now") . "\n"
;
echo 
strtotime("10 September 2000") . "\n"
;
echo 
strtotime("+1 day") . "\n"
;
echo 
strtotime("+1 week") . "\n"
;
echo 
strtotime("+1 week 2 days 4 hours 2 seconds") . "\n"
;
echo 
strtotime("next Thursday") . "\n"
;
echo 
strtotime("last Monday") . "\n"
;
?>

728x90

'프로그래밍 > php' 카테고리의 다른 글

mysql 함수 사용법  (0) 2019.11.26
Hierarchical queries in MySQL  (0) 2019.10.04
PHP $_SERVER 정리  (0) 2013.08.01
Mysql table의 AutoIncrement 값을 가져오기  (0) 2013.07.09
ORACLE, MSSQL, MYSQL 날짜함수 비교  (0) 2012.08.08
728x90

기본적인 HTML5 구조를 적어 보겠습니다.

 

   보통 웹 사이트를 나눌때의 구조 입니다.

 

    로고,메뉴,내용,부가내용, 하단

 

    보통 이런식의 주조로 나누어 있습니다.

   

    header - 로고영역

    nav      - 메뉴부분

    section - 본문 내용

    aside   -  서브 혹은 광고 컨텐츠

    footer   -  사이트 하단부

 

    이외에

 

    article  - section 내의 주요 컨텐츠

    hgroup - header 영역의 구조 담당 

 

이전 HTML과 다른 점이 요런 식으로 분리해서 정의해 놓은 부분 입니다.

 

기존 table 이나 div 로 만들어도 전혀 문제 될 건 없지만 일단 HTML5 를 배우고자 함이라

 

요 정도는 알아 두어야 겠네요.

 

 

대충 코드로 만들자면 이렇습니다.

 

<!doctype html>     -  HTML5 를 사용 할꺼라는 선언
<html>

<head>
<meta charset="utf-8"> - 메타 태그 문자 선언
<title>HTML5 CSS3</title> - 타이틀 입니다. 브라우저를 열면 -->
</head>

 

<body> 
 <header>

   <hgroup>
    <h1>header - 웹페이지 로고</h1>

   </hgroup>
 </header>
 
 <nav>

 <h2>nav</h2>
  <ul>
    <li>메뉴1</li>
    <li>메뉴2</li>
    <li>메뉴3</li>
  </ul>
 </nav>
 
 <aside>
   <h2>aside - 부가내용/광고</h2>
 </aside>
 
 <section>
    <h1>section - 본문</h1>                                      <실행시 위 그림처럼 나옵니다>
    <article>article - 주제1:내용</article>
    <article>article - 주제2:내용</article>                   
 </section>
 
 <footer>
    <h2>footer - 하단/카피라이트</h2>
 </footer>

</body>


</html>

 

참조 사이트 : http://sonjjy.blog.me/60194604086

728x90
728x90

$_SERVER['DOCUMENT_ROOT'] = 현재 사이트가 위치한 서버상의 위치 => /webapp/include


$_SERVER['HTTP_ACCEPT_ENCODING'] = 인코딩 받식 => gzip, deflate


$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 언어 => ko


$_SERVER['HTTP_USER_AGENT'] = 사이트 접속한 사용자 환경 => Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; Q312461; .NET CLR 1.0.3705


$_SERVER['REMOTE_ADDR'] = 사이트 접속한 사용자 IP => xxx.xxx.xxx.xxx

 

$_SERVER['HTTP_REFERER'] = 현제 페이지로 오기전의 페이지주소값 => http://www.test.net/index.php?user=??? (A태그나 form으로 전송시 값이 넘어옴. onclick으로 전송시 값이 넘어오지 않음)


$_SERVER['SCRIPT_FILENAME'] = 실행되고 있는 위치와 파일명 => webapp/include/index.php


$_SERVER['SERVER_NAME'] = 사이트 도메인 => www.test.com (버추얼 호스트에 지정한 도메인)

 

$_SERVER['HTTP_HOST'] = 사이트 도메인 => www.test.com (접속할 때 사용한 도메인)


$_SERVER['SERVER_PORT'] = 사이트가 사용하는 포트 => 80


$_SERVER['SERVER_SOFTWARE'] = 서버의 소프트웨어 환경 => Apache/1.3.23 (Unix) PHP/4.1.2 mod_fastcgi/2.2.10 mod_throttle/3.1.2 mod_ssl/2.8.6 OpenSSL/0.9.6c


$_SERVER['GATEWAY_INTERFACE'] = cGI 정보 => CGI/1.1


$_SERVER['SERVER_PROTOCOL'] = 사용된 서버 프로토콜 => HTTP/1.1


$_SERVER['REQUEST_URI'] = 현재페이지의 주소에서 도메인 제외 =>  /index.php?user=???&name=???


$_SERVER['PHP_SELF'] = 현재페이지의 주소에서 도메인과 넘겨지는 값 제외 = /default/index.php

      *파일명만 가져올때 : basename($_SERVER['PHP_SELF']);


$_SERVER['APPL_PHYSICAL_PATH'] = 현재페이지의 실제 파일 주소 => D:\webapp/

 

$_SERVER['QUERY_STRING'] = get방식의 파일명 뒤에 붙어서 넘어오는 값 => ?user=???&name=??? (반드시get방식으로 넘겨야됨)

 

 

728x90
728x90

일부 Naver 고객샌터 인용
로봇 배제 표준이란 말 그대로 웹 문서를 수집해 가는 로봇을 배제한다는 뜻입니다.

 

로봇의 배제와 관련된 내용을 적어 놓은 robots.txt 파일을 사이트의 최상위 주소

(서버 루트 디렉토리 예:www.naver.com/robots.txt)에 저장하면 됩니다.

(robots.txt를 서브디렉토리에 저장할 경우에는 효력이 없다는 사실에 주의하세요.)

예를 들어, www.yourhost/~mypage 밑에 robots.txt가 있어도 이는 아무런 효력을 갖지 못합니다.

로봇은 오직 루트 디렉토리의 robots.txt만을 참조할 뿐입니다.

로봇의 접근을 어디까지 허용할 것이냐에 따라 robots.txt에 들어가는 내용은 달라집니다.

(robot.txt가 아닌 복수형인 robots.txt 임에 주의해주세요.)

robots.txt 저장 방법 안내
1. 홈페이지 전체가 모든 검색엔진에 노출되는 것을 원하지 않을 때

코드:
User-agent: *
Disallow: /


2. 홈페이지 전체가 모든 검색엔진에 노출되기를 원할 때

코드:
User-agent: *
Disallow:


(Ex1과 비교했을 때 “/”가 빠져 있습니다. robots.txt를 작성하지 않으면 모두 검색허용으로 간주됩니다.)

3. 홈페이지 디렉토리의 일부만 검색엔진에 노출하고 싶을 때

코드:
User-agent: *
Disallow: /my_photo/
Disallow: /my_diary/


(이렇게 작성하면 로봇은 my_photo, my_diary라는 폴더에 속한 웹문서에 접근할 수 없습니다.)

4. 홈페이지 전체가 검색되길 원하지만 특정 검색엔진을 거부하고 싶을 때

코드:
User-agent: EvilRobot
Disallow: /


위의 예에서는 “EvilRobot”이라는 이름을 가진 로봇만을 배제하게 됩니다.
('네이버'에 대해서 막고 싶다면 NaverBot을 User-agent로 설정해주시면 됩니다. Naverbot은 네이버 로봇의 이름입니다.)

5. 홈페이지 전체가 검색되길 원하지만 특정 검색엔진에게만 노출되기를 원할 때

코드:
User-agent: NaverBot
Disallow:
User-agent: *
Disallow: /


(이 경우 NaverBot만이 웹문서를 수집해갈 수 있습니다.)
“robots.txt”를 작성하는 것과 유사한 방법으로 HTML문서의 (HEAD)와 (/HEAD)태그 사이에
(META NAME="ROBOTS" ConTENT="NOINDEX, NOFOLLOW")라는 메타태그를 추가하면 로봇은 웹 문서를 가져갈 수 없습니다.

 

이 방법은 다소 번거롭기는 하지만 문서 하나하나에 대해 정확하게 명시를 해주기 때문에
가장 확실하게 로봇의 접근을 막을 수 있는 방법입니다.


로봇 배제에 대한 보다 자세한 내용은 http://www.robotstxt.org 에서 확인할 수 있습니다.


robots.txt를 서버에 저장하고 로봇이 직접 방문하지 않는 경우라고 하더라도 본인의 홈페이지 중 일부 내용
혹은 링크 값이 NAVER 웹 문서 검색 결과에 나타나는 경우가 있을 수 있습니다.


이는 다른 웹 문서들이나 사이트들이 해당 웹 문서를 링크한 경우, 그 링크에 제시된 설명에 의해서 자동적으로 생성되는 것으로,

해당 웹 사이트의 robots.txt의 존재유무나 로봇의 동작과는 무관할 수 있습니다.

--------------------------------------------------------------------
* User-agent : 수집하는 주체의 범위를 정합니다. *으로 설정할 경우 모든 봇의 접근이 격리됩니다.

naver의 경우 봇 이름은 Naverbot입니다. 'User-agent : * '와 같은 꼴로 사용합니다.


* Allow : 뜻 그대로 허락할 디렉토리를 설정합니다.


* Disallow : 뜻 그대로 불허할 디렉토리를 설정합니다. Disallow: 뒤에 아무것도 표시하지 않을 경우에도,

모든 접근을 허락한다는 뜻이 되므로 유의하세요.

만약 모든 디렉토리의 접근을 막고 싶다면 'Disallow: /'와 같이 쓰면 됩니다.

다른 포탈은 모르겠지만 현 한국에서 가장 많이 데이터를 긁어가는 포탈은 네이버 입니다.
하지만 네이버에서도 로봇은 거의 다 막아 놓고 있습니다.

http://blog.naver.com/robots.txt
http://cafe.naver.com/robots.txt
http://kin.naver.com/robots.txt
http://news.naver.com/robots.txt

엄청나게 긁어가는 포탈들의 횡포와 자기 컨텐츠를 지키려는 사람들의 조정자가 될수 있는것이 robots.txt입니다.
문론 robots.txt로 다 막을 수는 없습니다. robots.txt를 무시하는 로봇도 많습니다. 하지만 대부분은 제어가 가능 할것입니다.

728x90
728x90

검색엔진이 긁어가는 것 막기 (robots.txt 이용)

검색엔진이 자동으로 긁어가는 것을 막는 방법이다...

단순히 아래의 두 줄을 메모장 등에서 입력하고 파일명을 "robots.txt"로 저장해서 웹서버의 최상단 디렉토리에 올려놓기만 하면 된다.

robots.txt
-----------------------------------------------------------------------------------------------------------
User-agent: *
Disallow: /
--------------------------------------------------------------------------------------------
위의 두줄데로 설정하면 모든 검색엔진에 대해서 모든것을 막는다는 의미이다...



검색엔진별로 노출을 막고자 하면, 아래의 검색엔진별로 선택해서 사용하세요..^^

//모든 검색 엔진 막기
User-agent: *
Disallow: /

//네이버 로봇 막기
User-agent: cowbot
Disallow: /

//구글 로봇 막기
User-agent: Googlebot
Disallow: /
User-agent: Googlebot-Image
Disallow: /

야후 로봇 막기
User-agent: Slurp
Disallow: /
User-agent: Yahoo-MMCrawler
Disallow: /

엠파스봇 로봇 막기
User-agent: empas
Disallow: /

MSN
User-agent: MSNBot
Disallow: /

첫눈
User-agent: 1Noonbot 1.0
Disallow: /



검색엔진이 긁어가는 것 막기 (메타태그 이용법)

이 방법 외에도 html 페이지에 메타태그를 써서 검색엔진을 막을 수 있습니다.

[meta name="robots" content="noindex,nofollow"]

위 소스를 [head] 사이에 넣어주면 됩니다.


구글쪽에서 검색안된다고 메일 올경우는 아래와같이 바꿔주시면 됩니다.
User-agent: *
Disallow: /

User-agent: Googlebot
Disallow:

User-agent: cowbot
Disallow:

User-agent: Googlebot-Image
Disallow:

User-agent: Slurp
Disallow:

User-agent: empas
Disallow:

User-agent: MSNBot
Disallow:

User-agent: 1Noonbot 1.0
Disallow:



robots.txt 가 아닌 소스 하부페이지에서 검색을 차단하고 싶으면
소스 상단에 아래와같이 입력하면 된다.

<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW" >

 

[사이트보안] 1편 - 구글이나 네이버등 검색로봇 긁어가기 막는법


구글의 강력한 긁어가기식 로봇 검색으로 울산지역 ㅌ 케이블방송의

가입자현황이 담긴 XLS 파일이 유출되는 사고가 있었습니다.


구글이나 네이버 로봇들이 웹서버들의 인증이 안걸린 디렉토리들을

거의 다 뚫고들어오기때문인데요, 검색어로 "관리자모드"나

"회원명단" 등으로 검색해보면 심심치않게 개인정보들이 나타납니다.


주민번호가 담긴 신경외과협회 회원명단이나 포항시 공무원정보

주민번호등도 엄청나게 나타나기때문에 이런 긁어가기식의 검색 로봇을

사이트관리자로서 차단하는 방법을 찾아보고 소개합니다.


웹사이트 wwwroot 루트디렉토리에 robots.txt 파일을 하나 만듭니다.

내용에

User-agent: *
Disallow: /

라고 하시면 모든 긁어가기 검색에서 제외됩니다.


To allow all robots complete access (몽땅 긁어가기 허락)
User-agent: *
Disallow:

Or create an empty "/robots.txt" file. (빈파일 만들기로 해도 됨)

To exclude all robots from part of the server
(일부분 긁어가기 제외)

User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /private/

To exclude a single robot (배드봇이란 검색로봇만 긁어가기 제외)
User-agent: BadBot
Disallow: /


To allow a single robot (웹크롤러 검색로봇만 긁어가기 허락)
User-agent: WebCrawler
Disallow:


To exclude all files except one (한군데 빼고 몽땅 긁어가기 허락)
This is currently a bit awkward, as there is no "Allow" field. The easy way is to put all files to be disallowed into a separate directory, say "docs", and leave the one file in the level above this directory:

User-agent: *
Disallow: /~joe/docs/

위 내용들은 http://www.robotstxt.org 참고하시구요



개인들은 웹페이지의 메타태그에다

META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"

라고 해서 그 웹페이지를 긁어가기로 부터 보호할수 있습니다.


In a nutshell, when a Robot vists a Web site, say
http://www.foobar.com/, it firsts checks for
http://www.foobar.com/robots.txt. If it can find this document, it will
analyse its contents for records like:

User-agent: *
Disallow: /

 

728x90

'프로그래밍' 카테고리의 다른 글

웹 보안 취약점 대응 방안  (0) 2014.03.25
robots.txt 설정하기  (0) 2013.07.28
XSS 기본 방어 방법  (0) 2013.04.19
초대장 필요하신 분 받아가세요. [마감되었습니다.]  (15) 2012.07.09
주민번호 알고리즘  (0) 2012.06.20

+ Recent posts