Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
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 30
Tags
more
Archives
Today
Total
관리 메뉴

으나님의 잡다한 개발상식

(JSP) 웹과 JSP, 인코딩, 로컬호스트 본문

JSP

(JSP) 웹과 JSP, 인코딩, 로컬호스트

스위트치즈 2019. 12. 3. 18:02

1. 웹과 JSP

(1) 웹

인터넷 기반의 정보기술로 World Wide Web의 줄임발로 쓰이며 www라고도 한다. 전 세계에 거대한 네트워크망을 통해 정보를 공유한다.

 

(2) 웹 어플리케이션

웹에서 실행되는 응용프로그램을 뜻하며 인터넷을 통해 은행 업무, 인터넷 쇼핑 등등 인터넷에서 하는 여러 서비스를 총칭하며 사용자가 필요한 요청(Request)을 하고 서버에서는 이에 요청을 수행하고 그리고 요청한 데이터를 응답(Response)한다.

 

(3) 웹 브라우저

클라이언트에서 요청을 하고 전달받은 페이지를 볼 수 있는 환경을 말한다(크롬, 익스플로러 등)

 

(4) 웹 서버

클라이언트로부터 요청 받아 서버에 저장된 리소스를 클라이언트에게 전달한다. 주로 정적 컨텐츠를 담당한다.

물리적인 하드웨어를 말한다.

웹을 구동할 수 있는 서버인 것이다.

클라이언트로부터 받아서 전송하는 것이다.

데이터 저장 등

 

(5) 웹 어플리케이션 서버

줄여서 was라고도 부르며 서버단에서 필요한 기능을 수행하며 웹서버에게 전달한다.

우리가 말하는 jsp서버 php서버 등(jsp 구동하기 위해서 깔아주는 것, tomcat, tomcat이 jdk와 연결해서 구동되는 것입)

데이터 해석 등

정적 웹 프로그래밍에서 관리자가 하던 역할을 대신 하는 부분

데이터베이스와 웹 서버를 연결

정보가 저장되어 있는 데이터베이스에 클라이언트의 요청이 있을 때마다 데이터베이스에 접근하여 실시간 정보를 클라이언트에게 제공

톰캣은 웹 어플리케이션 서버의 일종임.

 

(6) 웹 어플리케이션

기존의 정적인 웹 어플리케이션의 기능을 그대로 사용하면서 서블릿, JSP, 자바 클래스들을 추가하여 사용자에게 동적인 서비스를 제공하는 프로그램이다.

웹 컨테이너에서 실행되는 JSP, 서블릿, 자바 클래스들을 사용해 정적 웹 프로그래밍 방식의 단점을 보완하여 서비스를 제공하는 서버 프로그램을 웹 애플리케이션이라고 한다.

 

(7) 데이터베이스

대표적인 프로그램으로 mySQL이 있다.

 

(8) 자바 서블릿

서블릿이란 웹페이지를 동적으로 생성하기 위한 서버측 프로그램을 말한다.

이는 자바 언어를 기반으로 만들어지며 웹 어플리케이션 서버 위에서 컴파일 되고 동작한다.

자바와 서버 연결

ex) 익스피디아 같은 여행 사이트에서 해당 날짜에 대한 데이터를 받아 페이지를 자동으로 생성해줄 때 서블릿을 사용한다.

서블릿 안에 클래스, 배열, 쓰레드 등을 만드는 것도 가능하다.

 

(9) JSP(JAVA Server Page)

HTML 코드에 JAVA 코드를 넣어 동적 웹페이지를 생성하는 웹 어플리케이션 도구이다.

JSP가 실행되면 자바 서블릿으로 변환되며 웹 어플리케이션 서버에서 동작되면서

필요한 기능을 수행하고 그렇게 생성된 데이터를 웹페이지와 함께 클라이언트로 응답한다.

 

JSP는 스레드 방식으로 수행하여 클라이언트 각각의 요청에 대한 기능을 메모리에 따로 로드하지 않아도 된다(최초 한 번만 메모리에 로드).

다수의 사용자가 접속해서 기능을 수행해야 하는 환경에서는 JSP나 ASP, PHP와 같이 스레드 방식으로 동작하는 프로그램이 유리하다.

기존에 사용한 기능을 재사용한다.

 

 

(10) JSP 동작 과정

JSP가 실행되면 WAS(=tomcat)는 내부적으로 JSP 파일을 JAVA Servlet(.java)으로 변환한다.

WAS는 이 변환한 Servlet을 동작하여 필요한 기능을 수행한다.

 

(11) Servlet의 동작(중요!)

1)WAS는 사용자 요청(HTML이 요청)에 맞는 적절한 Servlet 파일(맵핑)을 컴파일(.class파일 생성)한다.

 

※HTML이 action명과 같은 것을 서블릿에서 찾는다. 그 설정은 맵핑으로 가능

※초기 맵핑 설정

 

2).class 파일을 메모리에 올려 Servlet 객체를 만든다.

3)메모리에 로드된 Servlet 객체를 초기화하는 init()메서드가 실행된다.

4)WAS는 Request가 올 때마다 thread를 생성해서 처리한다.

요청이 올때마다 멈춰있으면 안되고 돌아야 하니까 당연히 thread로 돌아감.

5)thread는 Servlet의 객체에 대한 service()메서드를 실행한다.

6)service() 메서드는 요청에 맞는 적절한 메서드(doGet, doPost)를 호출한다.

get 또는 post를 여기서 설정 가능

 

① out.println은 화면에 내용 송출. HTML에서 작업하므로 글씨 효과도 HTML로 작성

② system.out.println은 콘솔 화면에 표시하는 것

 

(11) 클라이언트에서 서블릿으로 요청하는 방식

1) GET

-간단한 파라미터를 전송하는 경우 사용

-페이지 이동하면 .com 뒤에 여러 문자 있는 경우

- 브라우저 주소 표시줄에 주소를 직접 입력해서 요청을 전송하는 경우

get을 사용하면 입력한 값이 주소로 드러나기 때문에 보안의 위험이 있다.

2)POST

-특정 페이지로 많은 양의 파라미터를 전송하여 처리할 때 사용되는 방식

회원가입요청, 게시판 글쓰기, 자료실 업로드 등

-주로 많은 양의 데이터를 전송할 때 사용

post를 사용하면 get처럼 입력값이 주소로 드러나지 않으므로 보안상 더 안전하다.

 

2. 인코딩

1) UTF-8

한글 인코딩방식, UTF는 유니코드를 좀더 꼬아놓은 것 UTF는 유니코드의 확장형

유니코드 인코딩 중에 하나로 문자열을 8-bit기반으로 저장한다. ANSI 문자(영어 포함)는 그대로(1byte)로 아시아 문자는 3byte로 가변 표기하는 인코딩 방식이다.

그래서 영어는 잘 안깨지는데 한국어는 잘 깨짐

 

유니코드

문자열을 숫자로 표현하기 위하여, 문자 하나와 숫자 하나를 각각 맵핑한 것

 

 

2) EUC-KR

ANSI를 한국에서 확장한 것

 

※ANSI

아스키코드와 비슷(1byte). 아시아 문자는 3byte.

그래서 영어는 잘 안깨지는데 한국어는 잘 깨짐

 

3) 인코딩 방식

한글을 사용하기 위해서는 모든 인코딩을 하나로 맞춰주어야 동작한다.

 

 

※저장할 때 인코딩 형식을 지정할 수 있음

 

 

3. 로컬 호스트

loop back : 자신의 웹페이지를 볼 수 있는 방법 IP는 127.0.0.1

'JSP' 카테고리의 다른 글

(JSP) 데이터 저장의 라이프사이클(scope)  (0) 2019.12.10
(JSP) Forward 3가지  (0) 2019.12.10