으나님의 잡다한 개발상식
(JSP) 웹과 JSP, 인코딩, 로컬호스트 본문
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)를 호출한다.
① out.println은 화면에 내용 송출. HTML에서 작업하므로 글씨 효과도 HTML로 작성
② system.out.println은 콘솔 화면에 표시하는 것
(11) 클라이언트에서 서블릿으로 요청하는 방식
1) GET
-간단한 파라미터를 전송하는 경우 사용
-페이지 이동하면 .com 뒤에 여러 문자 있는 경우
- 브라우저 주소 표시줄에 주소를 직접 입력해서 요청을 전송하는 경우
2)POST
-특정 페이지로 많은 양의 파라미터를 전송하여 처리할 때 사용되는 방식
회원가입요청, 게시판 글쓰기, 자료실 업로드 등
-주로 많은 양의 데이터를 전송할 때 사용
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 |