getCurrentlyURL.java
    /**
    * Comment  : 현재 페이지의 서블릿 URL 전체 경로를 추출. 
    */
    public static String getCurrentlyURL(HttpServletRequest req){
        Enumeration<?> param = req.getParameterNames();

        StringBuffer strParam = new StringBuffer();
        StringBuffer strURL = new StringBuffer();

        if (param.hasMoreElements()){
            strParam.append("?");
        }

        while (param.hasMoreElements()){
            String name = (String) param.nextElement();
            String value = req.getParameter(name);

            strParam.append(name + "=" + value);

            if (param.hasMoreElements()){
                strParam.append("&");
            }
        }

        String url;
        if(req.getAttribute("javax.servlet.forward.request_uri") == null) {
            url = req.getRequestURI().toString();
        }
        else {
            url = req.getAttribute("javax.servlet.forward.request_uri").toString();
        }
        // contextPath 제거, 필요한 값(/index.do)
        url = url.replace(req.getContextPath(),"");


        //# URL 에서 URI 를 제거, 필요 값만 사용(프로토콜, 호스트, 포트)
        String getUrl = req.getRequestURL().toString().replace(req.getRequestURI(), "");
        strURL.append(getUrl);
        strURL.append(url); // servlet 경로 : /index.do 
        strURL.append(strParam); // getQueryString() 값
        
        // 전체 추출 경로 : http://www.aaa.co.kr/index.do?type=aaa(쿼리스트링)
        return strURL.toString();
    }




JSP


<%@ page import="com.util.Utilities" %>

<%@ page import="java.net.URLEncoder" %>

<%
    // SNS 로 넘길 URL 경로 전체와 제목을 를 인코딩 함
    String urlEnc = URLEncoder.encode(Utilities.getCurrentlyURL(request), "utf-8");
    Report report = (Report)request.getAttribute("report");
    String pubTitle = URLEncoder.encode("\""+report.getReportTitle()+"\"", "utf-8");
    // 트위터 타이틀에 "" 있을시, 교차 사이트 스크립팅 오류
    String twitterTitle = URLEncoder.encode(report.getReportTitle(), "utf-8"); 

%>

<c:set var="currentlyEncURL" value="<%=urlEnc%>" />

<c:set var="facebookTitle" value="<%=pubTitle%>" />
<c:set var="twitterTitle" value="<%=twitterTitle%>" />
<c:set var="me2dayTitle" value="<%=pubTitle%>" />


<div id="snsSet">
   <a href="http://www.facebook.com/share.php?u=${currentlyEncURL}&t=${facebookTitle}" target="blank"><img src="${contextPath}/img/sns/facebook_b.gif"  alt="페이스북 보내기" /></a>
   <a href="http://twitter.com/share?url=${currentlyEncURL}&text=${twitterTitle}" target="blank"><img src="${contextPath}/img/sns/twitter_b.gif"  alt="트위터 보내기" /></a>
   <a href="http://me2day.net/posts/new?new_post[body]=${me2dayTitle}:${currentlyEncURL}&new_post[tags]=${me2dayTitle}" target="blank"><img src="${contextPath}/img/sns/me2day_b.gif"  alt="미투데이 보내기" /></a>
</div>




07 6, 2011 11:08 07 6, 2011 11:08

Trackback URL : http://develop.sunshiny.co.kr/trackback/641

  1. # 이종훈 2011年 10月 15日 14時 54分 Delete Reply

    이거 어떻게 사용하는건가요..

    죄송하지만 예제좀 만들어서 제 메일로 보내주시면 안될까요 ㅠㅠ

    배우고싶은데 아무리 찾아봐도 어렵네요 ㅠ..

    mose_love@naver.com 부탁드립니다 ㅠ

    1. Re: # sunshiny 2011年 10月 16日 16時 16分 Delete

      메일 보내드렸습니다.
      좋은 하루 보내세요^^

Leave a comment

C 언어

Posted 04 2, 2010 18:38, Filed under: Language/Etc

C 언어의 자료형


정수형의 범위

정수형은 int, short long, unsigned형의 4가지이며, 정수형의 범위에 있어서 int의 경우 컴퓨터에 따라 범위가 다르므로 사용할 때 주의해야 한다.

정수형

범위

크기

short int

-32768 ~ 32767

2 byte

long int

-2147483648 ~ 2147483647

4 byte

int

-32768 ~ 32767

2 byte

unsigned short int

0 ~ 65535

2 byte

unsigned long int

0 ~ 42959667295

4 byte

unsigned int

0 ~ 65535

2 byte

 

실수형의 범위

실수형은 float, double형의 2가지이며, 소수점 형태와 지수 형태로 표현된다.

실수형

범위

크기

float

소수점이하6자리까지 기억

(지수는 -32 ~ + 32)

4 byte

double

소수점이하 12자리가지 기억

(지수는 -32 ~ +32)

8      byte

 

문자형의 범위

- char형은 한 글자를 기억한다.

- char형의 크기는 1 byte이다

- 문자는 내부적으로 0 ~ 255 사이으 정수인 ASCII 코드 값을로 처리된다.

- 문자의 치환시 단일 인용부호(' ' )로 묶어야한다.

 

 

선행 처리기


선행처리기(preprocessor)란 컴파일에 앞서 미리 처리되는 처리기를 말한다.

, C언어로 작성된 원시 프로그램을 컴파일하여 하나의 실행파일 형태를 만들어내는 데는

1 선행처리 2 컴파일 3 링킹의 3단계를 거치게 된다.

이때 원시 프로그램을 컴파일러에 전달하기 전에 사용자가 정의한 각종 내용을 먼저 처리하게 되는데(선행처리), 이를 선행처리기가 담당하게 되는 것이다.

예를 들어 C언어에 보면 *.h(헤더파일)라는 파일이 있고, *.h(stdio.h)내의 파일에는 각종 매크로와 외부 파일에 대한 정의가 들어있다.

따라서 프로그램상에 이러한 헤더 파일을 사용하게 되면 컴파일하기 전에 해당 헤더 파일을 불러와서 연결시켜 주게 되는 것이다.

 

일반적인 선행처리기의 종류와 기능

선행처리기

기능

#include

파일 포함

#define

매크로 정의

#if ~ #endif

조건부 컴파일

 

# 선행 처리기 사용시 주의사항

- 반드시 #으로 시작해야 한다.

- 명령문 끝에는 세미콜론( ; )을 붙이지 않는다.

- 한 줄에 하나의 명령만 쓴다.

- 일반적으로 첫 칸부터 기입한다.

 

 

C 언어의 표준 입출력 함수

 

- 출력함수

 printf()     화면에 여러 종류의 자료를 출력

 putchar()   화면에 1개의 문자를 출력

 puts()      화면에 문자열을 출력

 

- 입력함수

 scanf()     키보드를 통해 1개의 이상의 자료를 입력 받는다.

 getchar()   키보드를 통해 1개의 문자를 입력 받는다.

 gets()      키보드를 통해 문자열을 입력 받는다.

 

▶ 출력 양식 변환기호

% 문자

변환 기능

인자의 자료형

%d

지정한 자료를 10진 정수로 변환하여 출력

정수형, 문자형

%f

지정한 자료를 부동 소수점 형식으로 변환하여 출력

실수형

%e

지정한 자료를 지수형태로 변환하여 출력

실수형

%c

지정한 자료를 한 문자로 변환하여 출력

정수형, 문자형

%s

지정한 자료를 문자열로 변환하여 출력

문자열 포인터

%o

지정한 자료를 8진수로 변환하여 출력

정수형, 문자형

%x

지정한 자료를 16진수로 변환하여 출력

정수형, 문자형

 

 

입력 양식 변환기호

% 문자

변환 기능

%d

키보드를 통해 정수형을 입력받음

%ld

키보드를 통해 long 정수형을 입력 받음

%f

키보드를 통해 실수형을 입력 받음

%lf

키보드를 통해 double 실수형을 입력 받음

%c

키보드를 통해 문자형을 입력 받음

%s

키보드를 통해 문자열을 입력 받음

 

자료의 입 출력

(1) printf() 함수

- 형식 ; printf("출력양식", 변수 1, 변수 2, ...);

- 기능 : 주어진 양식으로 자료를 출력한다.

- 사용 예 : printf("This is an example\n");

          printf("A=%d, B=%c\n", a, b);

 

(2) scanf() 함수

- 형식 : scanf("입력양식", &변수 1, &변수 2, ....);

- 기능 : 주어진 양식으로 자료를 입력받아 지정된 기억공간(변수)에 저장.

- 사용 예 : scanf("%d", &a);

 

 

문자 단위의 입 출력

(1) getchar() 함수

- 형식 : getchar();

- 기능 : 한 문자를 키보드를 통해 입력받는다.

- 사용 예 : a = getchar();

 

(2) putchar() 함수

- 형식 : putchar(문자);

- 기능 : 한 문자를 화면에 출력한다.

- 사용 예 : putchar('A');

 

문자열 단위의 입 출력

(1) gets() 함수

- 형식 : gets(변수);

- 기능 : 문자열을 키보드로부터 입력 받는다.

- 사용 예 : char s[50]

          gets(s);

(2) puts() 함수

- 형식 : puts(변수);

- 기능 : 문자열을 화면에 출력한다.

- 사용 예 : char s[] = "seoul"

          puts(s);

 

 

연산자 우선 순위


연산자명

연산자

결함 방향

우선순위

괄호, 구조체, 공용체 연산자

() [] -> .

높음

 

 

 

 

 

 

 

 

 

 

 

 


낮음

단항 연산자

! ~ ++ -- & * sizeof()

→ 좌

 

 

 

 

이항 연산자

* / %

→ 우

∙ 감

+ -

→ 우

비트 이동

<< >>

→ 우

대소 비교

< <= > >=

→ 우

등가 판정

== !=

→ 우

비트 AND

&

→ 우

비트 XOR

^

→ 우

비트 OP

\

→ 우

논리 AND

&&

→ 우

논리 OR

||

→ 우

조건 연산자

?  :  

→ 좌

대입 연산자

= += *= ∙∙∙ &=

→ 좌

 


Escape 문자


escape 문자

기능

\n

출력시 줄바꿈(new line)

\t

수평으로 탭 이동

\f

프린터의 form feed

\a

'' 소리를 낸다.

\r

커서를 행의 시작 위치로 이동(carrige return)

\0

ASCII 코드 값 0인 문자(null 문자)

 


자료 출처 : C 프로그래밍 - 곽덕훈, 김형근 공저

04 2, 2010 18:38 04 2, 2010 18:38

Trackback URL : http://develop.sunshiny.co.kr/trackback/424

Leave a comment

bat 파일로 FTP 파일 업, 다운로드

Posted 10 16, 2009 16:23, Filed under: Language/Etc

exp_ftp.bat 파일 내용
ftp -s:exp_ftp_exe.txt

-s 옵션은 ftp 명령어를 실행시킬 파일명을 정의 해줌



exp_ftp_exe.txt 파일 내용 - 파일 다운로드 실행
open 192.168.1.***
user_id
user_pwd
# 서버의 파일이 있는 위치
/home/data_backup/      
# 다운로드할 파일과 받을 위치(받을위치 없을시 ftp접속할때의 위치에 저장)
get 20091016.tar D:/02.TEMP/20091016.tar   
bye # ftp 종료



# mput, put 등을 이용하여 파일을 업로드 할수 있음
mput D:/02.TEMP/*.*


10 16, 2009 16:23 10 16, 2009 16:23

Trackback URL : http://develop.sunshiny.co.kr/trackback/315

Leave a comment

프로그램 언어의 역사 이미지

Posted 06 19, 2009 12:33, Filed under: Language/Etc

사용자 삽입 이미지

이미지를 클릭하면 새창으로 뜹니다.

































06 19, 2009 12:33 06 19, 2009 12:33

Trackback URL : http://develop.sunshiny.co.kr/trackback/235

Leave a comment

Http 통신규약 문서

Posted 06 16, 2009 10:38, Filed under: Language/Etc

첨부파일 참고

06 16, 2009 10:38 06 16, 2009 10:38

Trackback URL : http://develop.sunshiny.co.kr/trackback/232

Leave a comment

필드 갯수만큼 출력, 개행

Posted 04 1, 2009 13:57, Filed under: Language/Etc



사용자 삽입 이미지

원하는 개수만큼 위와 동일한 방식으로 구현
04 1, 2009 13:57 04 1, 2009 13:57

Trackback URL : http://develop.sunshiny.co.kr/trackback/189

Leave a comment

선택 정렬(Selection Sort)

Posted 03 20, 2009 09:06, Filed under: Language/Etc

출처 : http://wiki.oracleclub.com/pages/viewpage.action?pageId=4555009

선택 정렬

-가장 간단한 알고리즘
-실생활에서 가장 많이 사용하는 알고리즘
-가장 작은 수를 찾아 맨앞에 놓는다.

1. i=0
2. i가 n-2가 되면 끝낸다.
3. 배열의 i항부터 n-1항까지 중 최소값을 찾아서 그항을 min에 저장한다.
4. i를 하나 증가시키고 2로 돌아간다.

public void selectArray() {
int a[] = new int[]{12,5,1,23,44,11};


int temp =0 ;
int index =0; // 위치저장
for(int i=0 ; i<a.length ; i++){
temp = a[i];
index = i;
for(int j =i+1 ; j <a.length ; j++){

if(temp > a[j]){
temp = a[j];
index = j; }
}
a[index] = a[i];
a[i] = temp;

LLog.debug.println("a[]:"+ a[0]+","+ a[1]+","+ a[2]+","+ a[3]+","+ a[4]+","+ a[5]);


}
}
결과)
a[]:1,5,12,23,44,11
a[]:1,5,12,23,44,11
a[]:1,5,11,23,44,12
a[]:1,5,11,12,44,23
a[]:1,5,11,12,23,44
a[]:1,5,11,12,23,44
03 20, 2009 09:06 03 20, 2009 09:06

Trackback URL : http://develop.sunshiny.co.kr/trackback/176

Leave a comment


사용언어 MSSQL, ASP

<%
# 해당하는 각각 컬럼의 선택한 개수를 구한다.
# SQL 처리
SELECT 
        SUM(CASE WHEN choice = '벅스' THEN 1 ELSE 0 END)AS 'bugs',
        SUM(CASE WHEN choice = '엠넷' THEN 1 ELSE 0 END)AS 'mnet',
        SUM(CASE WHEN choice = '소리바다' THEN 1 ELSE 0 END)AS 'sori'
        FROM TEST_TABLE
        WHERE search_week = 8


# ASP 처리

' 정의된 총 값이 500일때, 3개의 입력값을 받아서,

' 각각의 값이 500/3 의값인 166,167 보다 작을경우, 작은값은 그대로 두고 각각 할당된값을 채우기위함.
' 입력값중에서 167보다 큰 값에서 모자란 값 만큼을 더한다.
Dim groupLotteryCnt(3), lackCnt, groupTot(3), maxLottery, lackLottery, limitLottery(3), lackLimitLottery

groupTot(0) = 191 ' 입력값 1 예)'bugs'
groupTot(1) = 165 ' 입력값 2 예)'mnet'
groupTot(2) = 200 ' 입력값 3 예)'sori'

maxLottery = 500 ' 최대 값
lackLottery = 0
lackGroup = 0

limitLottery(0) = Fix(maxLottery/3)
limitLottery(1) = Fix(maxLottery/3)
limitLottery(2) = Fix(maxLottery/3)

For k = 0 To 50

        For i = 0 To 2

                If groupTot(i) < limitLottery(i) then
                        limitLottery(i) = groupTot(i)
                End If

        Next

        lackLottery = maxLottery-(limitLottery(0)+limitLottery(1)+limitLottery(2))
        If lackLottery = 0 or (groupTot(0)+groupTot(1)+groupTot(2)) = (limitLottery(0)+limitLottery(1)+limitLottery(2)) Then
                Exit for
        End If

        lackLimitLottery = Fix(lackLottery/3)
        If lackLimitLottery < (lackLottery/3) Then
                lackLimitLottery = lackLimitLottery + 1
        End If
        For i = 0 To 2
                limitLottery(i) = limitLottery(i) + lackLimitLottery
        next

next

' 설정한 최대값에서 입력받은 3개의 배열 합을뺀 값이 -1 일때 첫번째 배열에서 1을 뺀다.
' maxLottery 에 정의한 500을 맞추기위함
If lackLottery < 0 Then 
        limitLottery(0) = limitLottery(0) - 1
End If 
       
%>
<%=limitLottery(0)%><BR>
<%=limitLottery(1)%><BR>
<%=limitLottery(2)%><BR>

<!--
출력 값
167
165
168
-->
03 2, 2009 13:44 03 2, 2009 13:44

Trackback URL : http://develop.sunshiny.co.kr/trackback/151

Leave a comment


Recent Posts

  1. Linux - Telnet 서비스 비활성및 실행
  2. NT - 서버 원격데스크탑 연결
  3. NT - http와 https간에 세션 공유가...
  4. Unix - 대량 파일 이동, 삭제시 Argu...
  5. Oracle - SYS_CONTEXT 함수를 이용하...

Recent Comments

  1. 네. 고맙습니다^^ 행복한 한해 보... sunshiny 01 16,
  2. sunshiny님. 안녕하세요... 올려 주... yihans 01 16,
  3. 답글 주셔서 고맙습니다^^ 소스 복... sunshiny 01 11,
  4. 관리자만 볼 수 있는 댓글입니다. 비밀방문자 01 11,
  5. 넵 답변감사합니다^^ 좋은 하루 되... 노로링

Recent Trackbacks

  1. 윈도우 cmd 명령어 팁 월풍도원(月風道院) - Delight on th... %M
  2. 파일 압축 Like RadioHead %M
  3. Mysql - mysql 설치후 Character set... 멀고 가까움이 다르기 때문 %M

Calendar

«   02 2012   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      

Bookmarks

  1. 위키피디아
  2. MysqlKorea
  3. Oracle All Documentation
  4. 엑셈
  5. 오라클 클럽
  6. 네이버개발자센터
  7. API - Java
  8. API - Spring
  9. Java Community
  10. Reference - Spring
  11. 스프링사용자
  12. 자바지기
  13. Ready System
  14. Solaris Freeware
  15. Linux-Site
  16. RedHat Korea
  17. 윈디하나의 솔라나라

Site Stats

TOTAL 217715 HIT
TODAY 17 HIT
YESTERDAY 115 HIT