전반적 구조.
jsp는 MVC에서 V요소 즉, view의 요소를 담당한다.
이 구조를 이해하기 위해, 자동적으로 폴더 생성 및, 파일 경로등을 해주는 것을 일일히 직접해보는 과정을 가졌다.
프로젝트 안에 src를 생성. 그 bin dir안에 자바 클래스들이 들어가게 된다.
우리는 javaEE를 쓰고 있기에, 자바 프로젝트 보단, 자바 웹 프로젝트 생성이 일반적인데 설정을 바꿀 것인가?라 물어보는 창이다. 여기서 설정이란 밑 이미지의 오른쪽 상단에 빨간색으로 표시되있는, 보기메뉴 버튼설정을 의미한다.
톰캣에 맞는 dir 구조를 가져야 웹 애플리케이션을 만들 때 잘 구동이된다.
그렇다면 그 dir 구조는 어떻게 되는가? 아래가 그 구조의 전반적 모습이다.
생성된 모습. 보통 자동생성된다.
- webapp은 이 프로젝트의 이름을 지닌, '루트'가 되는 홈 디렉토리.(이름이 바뀌어도 상관 x)
- WEB-INF는 웹을 관리하는 폴더.(이름 그대로 유지필수)
- classes는 자바 파일들이 패키지 형태 등으로 저장된다.(이름 그대로 유지필수)
- lib 는 라이브러리를 받아오는 폴더로 있어도 되고, 없어도 된다.
- web.xml은 java class들의 배치 정보를 나타낸 파일.
둘다 자신의 현재 서버가 클라이언트이자, 서버가 되는 것을 의미한다.
현재는 톰캣쪽을 server, 브라우저 쪽을 client쪽이라 생각하면 된다.
우리가 만든 WAS를 tomcat에 등록해줘야 한다.
이걸 Context 등록이라 한다.
Context 등록하기.
/web은 브라우저에서 나타내주는 경로.
정확한 webapp의 위치는 저렇게 파일의 현재 위치를 알려줘서 등록한다.
(정확한 위치는 webapp에서 오른쪽 클릭 후, 맨아래의 Properties에 들어가면 확인할 수 있다.)
파일 저장 후. 톰캣 실행. index.html이 톰켓에 저장되었다고 화면이 뜬다.
이후 localhost:8080/web/index.html에 들어가게 되면 아래와 같이 index.html이 브라우저에 표시된다.
(작년 10,11월에 spring설정하면서.. 하위 경로/web이런식으로 설정해주면 계속 오류가 나던 부분이었는데
드디어!!!! 제대로 뜬다.)
/web은 server.xml의 긴 코드 속에서 문단을 찾기 위한 부분이었고,
정확한 index.html의 위치를 뒤에 등록해주게 된것이다.
아래는 그 과정을 요약 설명한 부분이다.
<번외>
반드시 server.xml을 바꿨다면 톰캣을 실행해서 바꾼 내용을 등록시켜줘야 한다.
그대로 브라우저만 실행하면 이렇게 된다.
다시 톰캣에 등록 후 실행해보니 잘 나온다.
다시 /web을 하니 404가 뜬다.
jsp파일을 만들었으나, 빨간색 x 표시를 확인할 수 있다.
jsp와 servlet을 구동하는 톰캣과 연결이 되지 않아서 그렇다.
둘을 매개하기 위해 톰캣 dir에서 servlet과 매개하는 폴더를 집어와서 javaEE의 lib에 저장해주고 경로설정까지 지정해줘야 톰캣을 써서 jsp와 servlet 사용이 가능해진다.
(물론, 원래 자동으로 생성하면 다 컴퓨터가 해주는 것들이다.)
경로설정은 아래와 같이 한다.
add External JARs로 servlet.jar 추가하고서 apply and close 실행.
빨간색 x 표시가 사라졌다.
톰캣이 html 혹은 다른 %로 둘러 쌓여있는 자바코드 등을 해석하여 요청한 client 에게 렌더링을 하게 된다.
jsp는 자바를 기반으로, html과 js의 역할을 하는 것이었다.
렌더링과 client에 응답하는 것은 다르다.
톰캣이 아래의 html 형식으로 다 바꿔준것이 jsp 파일을 렌더링한 상태이다.(파란색 점선 화살표 부분)
그리고 그 파일을 보낸게 client의 요청에 응답하는 것이다.(뭐 거의 같다.)
'📟java > JSP, Servlet' 카테고리의 다른 글
Servlet 이해하기 (0) | 2023.02.27 |
---|---|
Model1 이해 (jsp + Model)[구조 이해, 공부방향 설정] (0) | 2023.02.27 |
eclipse에서 mysql 연동해보기 (0) | 2023.02.27 |
Mysql cmd에서 실행 후 연동, 비밀번호 변경 (0) | 2023.02.25 |
jsp 설치 및 환경세팅(톰캣) (0) | 2023.02.24 |