아파치가 웹서버다 (정적)
톰켓은 웹 컨테이너다 컴파일이라고 생각할 수 있음. 1. 컴파일(서블릿) 2. html 변환 3. 응답 4. request, response 객체 만들어서 메모리에 띄워줌.
이 객체에 뭐가 들어가 있는지 공부하는 것이 목표.
request 정보가 들어있음.
예전에는 http 1.0이었는데 지금은 http 1.1임.
html 1.0 -> post, get
방식 2가지였다. (form 태그는 기본 get방식, method속성에 값으로 get/post)
지금은 아래 4가지.
html 1.1 -> post, put, delete, get+@ 나머지는 잘 안 씀.
클라이언트가 서버한테 요청을 함.
이 요청 방식이 4가지임
1. get - select
2. post - insert (회원가입, 글쓰기......같은 새로운 레코드 추가하는 요청)
3. delete - update (회원 정보 수정시)
4. get - delete
-> CRUD
get방식은 URL, URI로 요청함.
URL(Uniform Resource Locator) : 실제 파일을 찾아내는 방식 -> 실제 파일을 노출...
예) http://ip주소:포트/컨텍스트 root/a.jsp
URI(JSP, 아파치, 톰캣 개념) : 식별자(주소)를 통해 특정 파일을 찾아냄 -> 실제 파일 노출 되지 않음. 보안상 유용!
예) http://ip주소:포트/컨텍스트 root/user/1 식별자
HTML에 JAVA코드 추가 한거가 .jsp
.jsp파일을 클라이언트가 웹서버인 아파치에게 요청을 하면 자기가 할 수 없으니까
컨테이너로 던지고 이 컨테이너가 톰켓임!
이거를 톰켓이 Java컴파일 html 코드 아래와 같이 변환
a.jsp -> a_jsp.java(서블릿) -> a_jsp.class -> html
.html을 이제 응답하면 브라우저가 읽을 수 있다.
a.jsp -> a_jsp.java 이 부분은 서블릿으로 변환하는 과정임.
서블릿 : java파일에 html코드 넣는건데... 너무 머리아파서... 톰켓이 해줘서 좋음!
WebContent 안에 있지만 접근 안되는 폴더들
META-INF
WEB_INF
설정파일이나 라이브러리를 넣어둠
이 안에 들어갈 파일들은 정해져 있음
프로젝트에서 빌드패스 라이브러리
test.jsp 파일을 WebContent에 생성
<%@에 오류가 발생할 수 있다 그럴경우 밑에 방식처럼 빌드 패스를 함.
<%@ %> ->
여기서 설정을 안하면 아파치에 프로젝트가 올라가지 않는다.
우측 아래에 있는 아이콘으로 아파치톰켓을 Start하면 root파일(아파치톰캣의 기본폴더)을 웹서버로 만드는 것임.
서버가 동시에 실행되면 포트에 의해서 충돌 될 수 도 있기 때문에 이건 stop해주고!
JVM은 JRE이 필요하다.
JDK에 JRE가 포함되어 있음.
JDK 내부에 JRE는 개발자를 위한 거
JDK 외부에 JRE는 사용자를 위한 거
jsp->.java->.class 과정이 일어날때
class는 보관하고 html은 보관하지 않음
html은 정적이고 class 동적이기 때문이다.
<hr/> : 이렇게 닫아요!!!
<br> : 닫는 태그 없어요!
bufferedwrite, print write
서버는 돌고 있으니까 재시작 안하고
해당 경로에서 새로고침
아파치 : 웹서버 (정적)
톰캣 : 웹컨테이너
- 컴파일(서블릿)
- HTML 변환
- 응답
- request, response (클라이언트에서 요청이 올 때 마다 두 객체가 새로 만들어짐 -기존에 있는 것을 추가정보만 추가하는 방법도 있음)
-
서블릿 : Java 파일 안에 HTML코드
JSP : HTML 파일 안에 Java
- 서블릿의 단점을 극복하기 위해서 나옴
- 서블릿 변환이 필요함
---------------------------------
---------------------------------
톰캣 - 웹 컨테이너, 컴파일러
java 컴파일 + html 코드로 변환
html을 따로 보관하고 jsp의 java코드 내용만 따로 빼서 컴파일하고
jvm에서 실행한 후 결과를 다시 합친다.
a.jsp -> a_jsp.java -> 컴파일 -> a_jsp.class -> jvm -> html
html 파일은 정적이라 쓰고 버리기 때문에 temp파일 취급
class 파일은 실행할 때마다 값이 바뀌기 때문에 저장
--------------------------------
'WEB' 카테고리의 다른 글
servlet 파일 만들기, mapping시켜주는 거 (0) | 2020.05.25 |
---|---|
pull/push (0) | 2020.05.25 |
ubuntu 실행. 카카오 미러 사이트로 저장소 바꿔서 자바 다운받기! (0) | 2020.05.23 |
ubuntu 실행/혹시 비번 까먹으면 (0) | 2020.05.22 |
Linux(리눅스) 설치 - Redhat , Debian (0) | 2020.05.22 |