웹 서버 (WS)

클라이언트 요청을 받아 HTML이나 오브젝트를 HTTP Protocol을 이용하여 전송하는 것

user가 Client로 request를 보내오면 그 명령에 대한 처리를 실행하고 다시 user에게 response를 보내주는 역할


하지만, 사용자가 요청한 것들 중에 웹 서버 자체적으로 처리 할 수 없는 것들을 WebLogic이나, Tomcat과 같은 웹 컨테이너나 php 모듈과 같이 처리 할 수 있는 곳으로 넘겨 처리 결과를 받은 후, 사용자에게 넘겨주는 역할도 수행


웹 서버만 구축된 서버는 웹페이지, 이미지 등 정적인 페이지를 생성 하지만, Jsp 컨테이너가 탑재되어 있는 웹 어플리케이션 서버는 jsp 페이지를 컴파일해 동적인 페이지를 생성한다.


따라서 웹 서버는 일반 웹 문서를, 웹 어플리케이션 서버는 jsp 페이지 등을 양분하여 서버 부담을 줄이는 역할을 한다


웹 컨테이너 (Web Container)

Jsp와 Servlet을 이용하는 웹 응용 프로그램은 자바 언어를 이용해서 작성 할 수 있는데 Jsp와 Servlet을 실행시킬 수 있는 소프트웨어를 웹 컨테이너(web Container) 혹은 서블릿 컨테이너(Sevlet Container) 라고 한다.


Sevlet 컨테이너, Jsp 컨테이너, EJB 컨테이너 등의 종류가 있으며,

대표적인 웹 컨테이너(web Container)로는 웹로직(JSP 실행 가능), 자카르타 Tomcat, Resin 등이 있다.

웹 서버(ws)에서 jsp를 요청하면 웹로직에서는 jsp파일을 servlet으로 변환하여 컴파일을 수행하며, 서블릿의 수행 결과를 웹 서버에 전달하게 된다.


Servlet Container

서블릿을 동작시킬 수 있는 환경을 제공하는 서버 프로그램

즉, Http 요청을 받아 해당 서블릿을 동작시키고, 그 결과를 사용자 브라우저로 전달하는 역할

Http 파라미터 파싱, 결과 전달 컨트롤, Forwarding, Redirecting 기능 제공

개발한 서블릿을 컨테이너에 등록하면 컨테이너가 알아서 처리한다


Jsp Container / Engin

서블릿 컨테이너가 Jsp 컨테이너가 된다.

즉, Jsp는 서블릿으로 변환된 후 실행되는데 이 Jsp를 서블릿으로 컴파일 해주는 것이 Jsp 서블릿/엔진 이다.


웹 컨테이너는 웹 응용프로그램을 위해 보안, 병행성 관리, 라이프 사이클 관리 등의 서비스를 제공 한다.

1. 보안(Security)

사용자 인증과 제한된 사용자만 접근 할 수 있도록 지원

2. 병행성 관리(Concurrency management)

여러 개의 작업이 동시에 이루어지는 경우에 쓰레드를 통해서 작업이 보다 효과적으로 이루어지도록 지원

3. 라이프 사이클 관리(Life Cycle management)

웹 응용 프로그램이 생성되고, 실행되고, 삭제되는 라이프 사이클 전 과정을 지원


웹 어플리케이션 서버 (Web Application Server)

웹서버(ws) + 웹 컨테이너(Web Container)

웹상에서 사용하는 컴포넌트들을 올려놓고 사용하게 되는 서버

EJB(Enterprise JavaBeans) 와 같은 빈들이 올라가게 되며, 서버에 따라 웹에 필요한 많은 기능들을 포함하고 있다

POJO (Plain Old Java Object)


POJO는 기본적으로 Sun의 Java Beans나 EJB(Enterprise JavaBeans)의 Beans를 뜻하는 것이 아닌 순수하게 setter, getter 메소드로 이루어진 Value Object성의 Bean을 뜻한다.


example)

public class SimpleBean{

private String name;

private String age;


public void setName(String name) {

this.name = name;

}

public void getName(String age) {

this.age age;

}


public void getName(String name) {

return this.name;

}

public void getName(String age) {

return this.age;

}

}


일반 자바개발자들이 코딩하거나 이클립스를 통해 자동으로 생성하던 VO 개념의 Bean이 바로 POJO 이다.


하지만, 왜 Beans라고 말하지 않고 POJO라고 할까?

그 이유는 Beans라는 용어로 위 클래스를 정의하기에는 Java Beans나 EJB의 Beans와 구분이 모호하고 Beans라는 용어로 정의되는 여타 다른 개념들과의 확실한 분리를 위해 POJO라는 용어를 사용한 것이라 볼 수 있다.

'Server Enterprise > Java' 카테고리의 다른 글

[decompile] java decompiler  (0) 2014.12.30
[Encode] 한글 인코딩  (0) 2014.08.15
[Image Object] width, height  (0) 2014.03.11
[Java] System.getProperty() 에 관하여  (0) 2013.06.14
Java 멤버와 변수에 대한 고찰  (0) 2013.01.08

root@ 권한 일 시에만 가능하다.


rpm -qa | grep ftp

xxxftp not open


setup

시스템구성도 xxxftp 앞 * 체크


/etc/init.d/xxxftp start

xxxftp 올라오는지 확인


ps - ef | grep ftp

~


'Server > Web Application' 카테고리의 다른 글

[Upload] 파일 업로드시 권한 문제  (0) 2014.03.10
[Linux] Spring 톰캣 War Deploy  (0) 2014.02.26
linux name  (0) 2012.07.31
vi 명령어, vi 단축키, vi(Visual Editer), vim  (0) 2012.07.27
CentOs 6.2 Tomcat 설치  (0) 2012.07.20

uname -a

커널 uname -r


cat /etc/issue

'Server > Web Application' 카테고리의 다른 글

[Linux] Spring 톰캣 War Deploy  (0) 2014.02.26
[Redhat] ftp 연결 설정  (0) 2012.08.01
vi 명령어, vi 단축키, vi(Visual Editer), vim  (0) 2012.07.27
CentOs 6.2 Tomcat 설치  (0) 2012.07.20
CentOs 6.2 Apache(httpd) 설치  (0) 2012.07.20

apache 실행 후에..  netstat -na | grep :8000

netstat -na | grep :8001

ps -ef | grep apache | grep httpd

vi 명령어, vi 단축키, vi(Visual Editer), vim

0. 읽기전에!!!

  • 큰따옴표 " " 로 묶인 글은 그 안의 내용을 말하는 것입니다. 만일 "가나다" 라고 하면 큰따옴표("")를 제외한 가나다만 입력하면 됩니다.
  • "", "/", "?" 표시는 입력모드에서 ESC키를 누른뒤 입력하면 됩니다.
  • filename.xxx는 아무 파일을 의미합니다. 즉 자기가 원하는 대로 쓰면 됩니다. 단, 파 일명 작성규칙에 맞는 파일명을 입력해야 합니다.
  • 대소문자는 구분합니다. x와 X는 다릅니다.
  • ""은 엔터키를 의미합니다.
  • "[n]"은 숫자를 의미 합니다.
  • "x, dl"은 x 또는 dl을 의미합니다.

1. History of vi

vi는 BSD의 C shell을 개발한 빌 조이가 1976년에 ed의 기능을 확장시킨 ex(Extended editer)편집기를 개발 하고 이를 확장 시켜서 만들었다. <<유닉스.리눅스 프로그래밍 필수 유틸리티>>
※vi는 Visual editer의 줄임이다.

2. vi의 특징

장점

  1. 키보드로 모든것을 할 수 있다.(처음 시작하는 사람들에게는 치명적인 단점이다.)
  2. 가볍다. 하지만 매우 많은 기능이 있다.
  3. 사용하면 할 수록 재미있다.

단점

  1. 키보드 만을 사용한다.
  2. 단축키가 매우 많다.
  3. 처음 사용자들은 사용하기가 매우 힘들다.

3. vi의 모드(mode of vi)

  1. 명령모드(command mode)
  2. ex모드
  3. 입력모드
  4. ex모드 <=> 명령모드 <=> 입력모드

즉 ex모드에서 입력모드로 가기위해서는 명령모드를 거쳐서 가야한다. 모드라고해서 거창한것은 없다. 단지 "ESC" 키 를 한번 누르는것이 전부다.

4. vi의 명령(command of vi)

ㄱ. 파일관련 단축키

  1. w filename.xxx : 쓰기(write)
  2. w >> filename.xxx : 파일에 덧붙여서 저장>
  3. q : 종료(quit)
  4. q! : 저장하지 않고 종료
  5. e filename.xxx : 열기(open)
  6. wq! : 저장하고 종료하기

ㄴ. 입력모드 전환 키

  1. a : 커서 위치의 다음칸부터 입력
  2. A : 커서 행의 맨 마지막부터 입력
  3. i : 커서 위치부터 입력
  4. I : 커서 행의 맨 처음부터 입력
  5. o : 커서 행의 다음행에 입력
  6. O : 커서 행의 이전행에 입력
  7. s : 커서 위치의 한 글자를 지우고 입력
  8. cc : 커서 위치의 한 행을 지우고 입력

ㄷ. 이동(move)

  1. h : 왼쪽
  2. l : 오른쪽
  3. j : 아래
  4. k : 위
  5. w : 다음 단어의 첫글자로 이동
  6. b : 이전 단어의 첫글자로 이동
  7. $ : 커서 행의 맨 마지막으로 이동
  8. ^ : 커서 행의 맨 처음으로 이동 
  9. + : 다음행의 첫 글자로 이동
  10. - : 이전행의 첫 글자로 이동 
  11. ( : 문장의 처음으로 이동
  12. ) : 문장의 마지막으로 이동
  13. { : 문단의 처음으로 이동
  14. } : 문단의 마지막으로 이동 
  15. H : 커서를 화면의 맨 위로 이동
  16. M : 커서를 화면의 가운데로 이동
  17. L : 커서를 화면의 마지막으로 이동 
  18. z : 현재 행을 화면의 맨 위로 이동
  19. z. : 현재 행을 화면의 중앙으로 이동
  20. z- : 현재 행을 화면의 최하단으로 이동 
  21. [n]H : 커서를 현재 화면의 [n]행으로 이동
  22. [n]L : 커서를 현재 화면의 아래서 [n]행으로 이동 
  23. ctrl + u : 반 화면 위로 스크롤
  24. ctrl + d : 반 화면 아래로 스크롤 
  25. ctrl + b : 한 화면 위로 스크롤
  26. ctrl + f : 한 화면 아래로 스크롤 
  27. gg : 문서의 맨 첫 행으로 이동
  28. G : 문서의 맨 마지막행으로 이동
  29. [n]G : 문서의 [n]번째 행으로 이동
  30. [n] : 문서의 [n]번째 행으로 이동 

ㄹ. 삭제

  1. x, dl : 커서위치의 글자 삭제
  2. X : 커서 바로 앞의 글자 삭제
  3. dw : 한 단어를 삭제
  4. d0 : 커서 위치부터 행의 처음까지 삭제
  5. D, d$ : 커서 위치부터 행의 끝까지 삭제
  6. dd : 커서가 있는 행을 삭제
  7. dj : 커서가 있는 행과 그 다음 행을 삭제
  8. dk : 커서가 있는 행과 그 앞 행을 삭제

ㅁ. 복사 & 붙여넣기

  1. yw : 커서가 있는 단어를 복사한다.
  2. yy : 커서가 있는 줄을 복사한다.
  3. v : 현재 커서부터 블록을 시작한다.
  4. y : 블록이 되어있는 부분을 복사한다.
  5. p : 현재 커서가있는곳에 붙여 넣는다.

ㅂ. 잘라내기

잘라내기를 이해하기위해서는 vi의 레지스터를 알아야 한다. vi는 총 17개의 레지스터를 가지고 있다. 일단 삭제명령으로 지운 글자들은 순서대로 레지스터로 이동한다. 그러므로 p를 눌러주면 삭제된 글자들이 붙여넣기가 된다.

ㅅ. 레지스터

윈도우에서 말하는 클립보드와 같은것이다.

  1. reg : 레지스터에 있는 내용을 볼 수 있다.
  2. "[n]p : [n]번 레지스터에 있는 값을 현재 커서위치에 붙여넣는다.

o. 블록

  • 블록은 v키를 누른뒤 커서를 이리저리 움직이면 설정된다.
  • 직사각형의 영역을 지정하기 위해서는 "ctrl + v"를 누르면 된다.
  1. ~ : 대소문자 전환
  2. d : 삭제
  3. y : 복사
  4. c : 치환(바꾸기)
  5. < : 앞에 탭 제거
  6. > : 앞에 탭 삽입

선택된 영역에 대하여 ex명령

  1. J : 행을 합침
  2. U : 대문자로 만듦
  3. u : 소문자로 만듦

ㅈ. 되돌리기와 되살리기

  1. u : 되돌리기(undo) 윈도우에서 ctrl + z 와 같다.
  2. ctrl + r 되살리기 지워진것을 다시 살린다.>

ㅊ. 문자열 찾기

  1. /[찾고자하는 문자열] : 아래로가면서 문자열을 찾는다.
  2. ?[찾고자하는 문자열] : 위로 올라가면서 문자열을 찾는다.
    • n : 다음 문자열
    • N : 이전의 문자열

ㅋ. 문자열 치환

  1. %s/old/new/g : 아래로 가면서 문서에 있는 모든 old문자열을 new로 바꿈
  2. s/old/new/ : 아래로 가면서 제일 처음 매칭되는 행의 문자열을 치환
  3. 2,4s/old/new/g : 2행에서 4행사이에 매칭되는 문자열을 치환한다.
  4. -1,+3s/old/new/g : 현재 커서에서 위로1줄 아래로 3줄 범위내의 문자열을 치환
  5. %s/old/new/ : 문서의 전체를 조사하되 한행에서는 처음 만나는 문자열만 치환
  6. %s/old/new/gc : 치환여부를 물어본다.

Vim window split Manual

vim은 정말 알면 알수록 재미있고 신기한 에디터인것 같다. 소개할 window split기능은 여러가지로 재미있게 이용할 수 있을것이다. 아래에서 부터는 ^는 "ctrl 키와 함께 누름" 을 의미한다.

새창으로 파일 열기

:sp filename

커서의 창 이동

  1. ^ww 다음창으로 이동
  2. ^wt 최상위 top으로 이동
  3. ^wb 최하위 botton으로 이동
  4. ^wj 아래창으로 이동
  5. ^wk 위쪽 창으로 이동

창 닫기

  1. ^wc 현재창 닫기
  2. :q 현재창 닫기
  3. ^wo 현재창만 남기고 모두 닫기
  4. :only 현재창만 남기고 모두 닫기
  5. :qa 모든 창을 닫고 종료

창의 크기조절

  1. ^w_ 활성창 크기 최대화
  2. 10^w_ 활성창 크기를 10줄으로
  3. :res10 활성창 크기를 10줄으로
  4. ^w= 모든창 크기를 같게

창의 위치 이동

  1. ^wH 창을 왼쪽으로 이동
  2. ^wL 창을 오른쪽으로 이동
  3. ^wJ 창을 아래로 이동
  4. ^wK 창을 위로 이동

파일으로 바로 이동

커서를 파일 이름위에 대고 ^wf

vim 유용한 기능들, vim useful commands, functions

마우스 사용하기

:set mouse=a

html 으로 소스코드를 색을 입혀서 새 창에 띄운다.

:TOhtml

외부 명령어 실행

:!ls 
쉘에서 ls를 친것과 같은 기능을 한다.

현재 커서에 파일 불러서 더하기

:r filename

이런방법도 있음
:r !ls

vim 옵션조정

1. 커서, 백스페이스 설정

windows 에서 vim 사용시 초기화 파일은 자기 홈디렉토리에 "_vimrc" 파일을 생성하여 넣어놓으면 된다. 즉 나의 경우는
"C:\Documents and Settings\김성환" 폴더에 "_vimrc"파일을 넣어두었다.
그렇지 않으면 vim이 설치된 폴더 c:\Program Files\Vim\ 에다가 넣어도 된다.
_vimrc 파일을 설정하는법은 쉽다.

		-----------------------_vimrc 파일의 내용-------------------------
set nu
set autoindent
set backspace=indent,eol,start
set ruler
syntax on
set incsearch
------------------------------------------------------------------

이렇게 넣어두었다.
set nu 는 라인의 번호를 출력하라는 명령이고
set autoindent 는 자동 들여쓰기기능
set backspace=indent,eol,start 는 처음에 vim을 설치했을때 backspace를 눌러도 글자가 지워지지 않고 커서만 이동했는데 이 명령후에는 일반 윈도우의 메모장이나 한글프로그램처럼 동일하게 작동한다.
set ruler 는 우측하단에 현재 커서의 위치를 표시해주게된다.
syntax on 은 자동으로 파일을 인식하여 색을 입혀주는 기능이 활성화 되는기능이다.

2. gVIM에서 color scheme 지정법

가. c:\Program Files\vim\_vimrc 파일을 연다.
나. 아래와 같이 입력

		------------------ _vimrc --------------------
: colorscheme torte
----------------------------------------------

3. gVIM에서 폰트지정

가. c:\Program Files\vim\_vimrc 파일을 연다.
나. 아래와 같이 입력

		------------------ _vimrc --------------------
set guifont = 나눔고딕코딩:h14:cHANGEUL
----------------------------------------------

4. 그외 다른 옵션들

		" ---- language-env DON'T MODIFY THIS LINE!
""" ========================================================
""" 기본적인 설정들
""" ========================================================
set nocompatible " Vim 디폴트 기능들을 사용함
set backspace=2 " 삽입 모드에서 백스페이스를 계속 허용
"set autoindent " 자동 들여쓰기
set cindent " C 언어 자동 들여쓰기
set smartindent " 역시 자동 들여쓰기
"set textwidth=76 " 76번째 칸을 넘어가면 자동으로 줄 바꿈
set nowrapscan " 찾기에서 파일의 맨 끝에 이르면 계속하여 찾지 않음
"set nobackup " 백업파일을 만들지 않음
set novisualbell " 비주얼벨 기능을 사용하지 않음
set nojoinspaces " J 명령어로 줄을 붙일 때 마침표 뒤에 한칸만 띔
set ruler " 상태표시줄에 커서 위치를 보여줌
set tabstop=4 " 간격
set shiftwidth=4 " 자동 들여쓰기 간격
"set keywordprg=edic " K를 눌렀을 때 실행할 명령어
set showcmd " (부분적인) 명령어를 상태라인에 보여줌
set showmatch " 매치되는 괄호의 반대쪽을 보여줌
set ignorecase " 찾기에서 대/소문자를 구별하지 않음
set incsearch " 점진적으로 찾기
set autowrite " :next 나 :make 같은 명령를 입력하면 자동으로 저장
set title " 타이틀바에 현재 편집중인 파일을 표시


""" ========================================================
""" 파일 인코딩을 한국어로 설정
""" ========================================================
if $LANG[0] == 'k' && $LANG[1] == 'o'
set fileencoding=korea
endif


""" ========================================================
""" 터미널에 따른 설정 : Xterm이면 16컬러 사용
""" ========================================================
if &term =~ "xterm-debian" || &term =~ "xterm-xfree86"
set t_Co=16
set t_Sf=^[[3%dm
set t_Sb=^[[4%dm
set t_kb=?
fixdel
endif


""" ========================================================
""" 문법 강조기능 사용
""" ========================================================
if has("syntax")
"syntax on
syntax off
endif


""" ========================================================
""" GUI 모드로 실행할 경우
""" ========================================================
if has("gui_running")
set visualbell " 비주얼벨 기능 사용
set hlsearch " 찾는 단어를 하이라이팅
set guifontset=-*-fixed-medium-r-normal--14-*-75-75-*-70-iso8859-1,
-*-gulim-medium-r-normal--14-140-75-75-*-140-ksc5601.1987-0
endif

'Server > Web Application' 카테고리의 다른 글

[Redhat] ftp 연결 설정  (0) 2012.08.01
linux name  (0) 2012.07.31
CentOs 6.2 Tomcat 설치  (0) 2012.07.20
CentOs 6.2 Apache(httpd) 설치  (0) 2012.07.20
CentOs 6.2 JDK 설치  (0) 2012.07.20

<html>

<body>

 <script type="text/javascript" src="./jquery-1.7.1.js"></script>

 <script language="javascript">

 

  $(document).ready(function(){

  $('#vgSortApp').change(function(){

    if( $('#vgSortApp option:selected').val() == "a"){

    alert("a");

    }else{


    }

  });

  });

 

 </script>

 <body>

 <select id="vgSortApp">

  <option value="">------</option>

  <option value="a">a항목</option>  

  <option value="b">b항목</option>  

 </select>  


CentOS Apache Tomcat 설치

http://tomcat.apache.org/ 접속 > 톰캣 다운

명령어 : tar zvxf apache-tomcat-x.x.xx.tar

로 압축을 푼 뒤

cd /usr/local 이동

명령어 : ln -s src/apache-tomcat.x.x.xx/ tomcat

으로 심볼릭 링크 생성 해준다.


vi /etc/profile 수정

# add path

JAVA_HOME=/usr/local/java

CATALINA_HOME=/usr/local/tomcat

CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/jsp-api.jar:$CATALINA_HOME/lib/servlet-api.jar

PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin

export JAVA_HOME

export CLASSPATH

export PATH

export CATALINA_HOME

#end add path


root 계정으로 /etc/sysconfig/iptables 파일을 연뒤

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

항목을 추가한 뒤

명령어 : /etc/rc.d/init.d/iptables restart

로 방화벽을 재부팅 한다.


그러고선 http://localhost:8080 으로 접속하여

고양이를 확인 하면 된다.


'Server > Web Application' 카테고리의 다른 글

linux name  (0) 2012.07.31
vi 명령어, vi 단축키, vi(Visual Editer), vim  (0) 2012.07.27
CentOs 6.2 Apache(httpd) 설치  (0) 2012.07.20
CentOs 6.2 JDK 설치  (0) 2012.07.20
Apache 2.2 Web Server, Apache Tomcat 연동  (0) 2012.07.20

CentOS Apache (httpd) 설치

명령어 : yum -y install httpd

/sbin/service httpd start

> http://localhost/ 

아파치2 테스트페이지가 뜨는 것을 확인

'Server > Web Application' 카테고리의 다른 글

linux name  (0) 2012.07.31
vi 명령어, vi 단축키, vi(Visual Editer), vim  (0) 2012.07.27
CentOs 6.2 Tomcat 설치  (0) 2012.07.20
CentOs 6.2 JDK 설치  (0) 2012.07.20
Apache 2.2 Web Server, Apache Tomcat 연동  (0) 2012.07.20

CentOS JDK 설치

JDK 설치 : java.sun.com > java SE > JDK 선택 > 플랫폼(리눅스)

jdk-linux-586.bin 다운

(/usr/local/src 폴더 저장)

명령어 : chmod 755 jdk-linux-586.bin

./jdk-linux-586.bin

실행해주면 알아서 실행한다.


/usr/local 로 이동하여 심볼릭 링크를 설정해 준다.

*추후 jdk업데이트에 있어 환경 설정 파일을 수정하지 않기 위함이다. 업데이트 후 심볼릭링크만 바꿔주면 간편하기 때문이다.


vi /etc/profile

#add path

JAVA_HOME=/usr/local/java

CLASSPATH=$JAVA_HOME/lib/tools.jar

PATH=$PATH:$JAVA_HOME/bin

export JAVA_HOME

export CLASSPATH

export PATH

#end add path

(가장 상단부에 써준다 (주석이 끝난 상단부))

명령어 : source /etc/profile

java -version 쳐서 확인,

whereis java

를 통해 제대로 설치한 위치(심볼릭링크의경로) 가 나오는지 확인

'Server > Web Application' 카테고리의 다른 글

linux name  (0) 2012.07.31
vi 명령어, vi 단축키, vi(Visual Editer), vim  (0) 2012.07.27
CentOs 6.2 Tomcat 설치  (0) 2012.07.20
CentOs 6.2 Apache(httpd) 설치  (0) 2012.07.20
Apache 2.2 Web Server, Apache Tomcat 연동  (0) 2012.07.20

+ Recent posts