이클립스는 개발자가 컴파일을 하지 않기 때문에 저장을 하면 그 파일이 자동으로 컴파일이 되어서 Classes에 임시 저장을 한다. 때문에 이클립스에서 WEB-INF/Classes를 확인할 필요가 없다.
하지만 Tomcat은 Classes가 필요하고 이때 build\classes 안으로 옮긴다.
각각 src와 res는 결국 build\classes안에 함께 저장되기 때문에 src/res는 개발자의 편리함을 위해서 구분한 폴더이다.
src는 자바 파일, res는 xml이나 properties안에 넣어 둔다.
res안에 xml, properties를 꼭 넣을 필요는 없지만 폴더 안에 생성할 시 Class path Resource로 만들기 위해서 이다.
Class path 아래에 xml에 있다면, D: 경로를 넣을 필요 없이 Class path 뒤의 경로만 적어주면 된다. => Class path의 특징
Class path Resource
자원에 접근하기 위한 경로 체계의 차이
class path resource :
Web resource : 우리가 알고 있는 주소 체계를 접근하는 Resource
Project의 구조
build : 개발자가 사용하지 않는 폴더
1번 : 웹상에서 주소로 접근할 수 있는 웹 리소스
2번 : Web content는 임시 폴더/ 안에 있는 모든 파일은 Context-Root로 이동한다.
그 Context-Root안에 뎁스 구조로 반영 해 놓으면 URL을 통해서 브라우저로 네트워크 반대편에 있는 클라이언트가 접근
주소는 없지만 클래스 패스로 접근할 수 있는 클래스패스 리소스
docbase
WEB-CONTENT : 관리의 목적으로 구분해 놓은 임시 폴더
dummi01/index.html
index.html을 생략해도 된다 -> 생략할 수 있다는 소스가 들어있다.
*
package란 그저 경로 구분자로 사용되는 것
관리의 목적으로 구분된 것 뿐
클래스 패스 아래에 HelloServlet 이 배포가 된 것을 확인할 수 있다.
kr/or/ddit/sample.xml => 클래스 패스 뒤에서 부터의 경로
클래스 패스 리소스
클래스 로더
A라는 클래스를 메모리에 저장하고 검색해오는 것
ex) IBatis에 sqlMapClient를 만들기 위해서는 xml을 읽어야 하고 Reader 객체를 이용해서 Class Path 이후의 경로로 읽어들인다.
Web Resoruce를 통해서 접근하는 경로
서버 안에서 Web.xml을 접근할 때는 kr/or/ddit를 사용하지 않고 Context-Root부터 찾는다.
/WEB-INF/web.xml
dummi01, httpProtocol 등 이 생략된 경로=> 서버 사이드 방식의 URL
Mime
자동 완성 가능 ->라이브러리에 jar파일이 있다는 뜻
Servlet과 관련한 API를 모두 쓸 수 있다는 점
서로 Serlvet관련한 에러가 났을 때 unbound error를 확인하는 경로
doGet에서 super코드를 제거를 하지 않으면 override하지 않는 것이나 다름 없기 때문에 삭제해줘야 한다.