2021. 4. 24. 15:20ㆍJSP 공부
이번에는 JSP의 URL 매핑에 대해서 알아 봅시다.
URL 매핑
JSP도 하나의 서버를 개발 및 관리하는 언어 입니다. 저희가 사용하고 있는 서버는 Tomcat 이라는 거죠.
JSP는 파일을 실행(요청)하면, 웹 서버에서 우선 jsp파일을 java코드로 변환합니다. 그 이후 그 파일을 컴파일하 고 html로 응답합니다. <- JSP 아키텍처
즉. ".jsp" 라는 파일을 컴파일(실행) 하면, JSP가 서버(Tomcat)에 이 파일을 실행해 달라고 요청을 하는 겁니다.
요청을 받은 서버는, ".jsp"라는 파일을 ".java"파일로 변환시켜서 컴파일하고 그 파일을 html 로 되돌려 줍니다.
URL매핑은, 위의 과정들을 기본적으로 담고 있다고 생각하시면 되겠습니다.
Servlet
URL 매핑을 하지 않으면, URL주소가 너무 길어지고, 경로가 노출되어 보안에 위험이 생기기 때문에 URL 매핑을 사용하여 그 문제들을 해결합니다.
URL 매핑에는 Servlet(서블릿) 이 있습니다.
Servlet 을 한번 만들어 봅시다.
Servlet 은 ".java" 파일이기 때문에, 프로젝트 내에 있는 src 폴더에 만들어 줍시다.
이름은 "Test1" 이라고 지어 주었습니다.
Servlet을 만들게 되면, 아래와 같이 자동으로 코드가 생성이 되어 집니다.
근데, 이렇게 보면, 뭐가 뭔지 잘 모르겠죠? 일단 주석을 한번 다 지워볼까요?
주석을 지우니까, 별거 없죠?
기본 생성자 Test(). 메서드 doGet, doPost 라는 것.
HttpServlet 클래스를 상속받고 있기 때문에, HttpServlet 클래스의 메서드, 멤버변수 들을 사용할 수 있다는 것 정도 입니다.
그리고 @WebServlet("/Test1") 이라고 되어 있는 부분 있죠? 이 부분이 "어노테이션" 입니다.
어노테이션
어노테이션은 URL매핑 서블릿의 종류 중 1개 입니다.
어노테이션은 @WebServlet("/변경할명") 으로 사용 합니다.
여러가지 경로를 ("/변경할명")으로 변경한다 라는 뜻 입니다.
즉. 원래의 URL은 "ip주소:포트번호/프로젝트/하위폴더/하위폴더/파일명" 이지만, 이 URL을 "ip주소:포트번호/프로젝트명/Test1" 으로 매핑(연결) 해준다는 것 입니다.
web.xml 파일 수정
URL매핑을 web.xml 이라는 파일을 수정함 으로써 변경하는 방법 입니다.
그러려면, 먼저 web.xml 파일을 만들어야 하는데요,
프로젝트 내에 있는, "Deployment Descriptor.프로젝트명" 에 우클릭을 하고, "Generate Deployment Descriptor Stub" 를 눌러주면, WebContent폴더-WEB-INF폴더에 web.xml파일이 생성 됩니다.
※ 클릭할 경우. 약간의 시간이 소모 됩니다 ( 이클립스가 멈춘다고 놀라지 마세요. )
이렇게 생성된, web.xml 파일을 수정 해줍시다.
web.xml 을 더블클릭 해서 아래의 Soruce 를 누르고 아래와 같이 작성해주면 됩니다.
<servlet>
<servlet-name>별칭</servlet-name>
<servlet-class>(패키지이름).(sevlet이름)</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>위에서 변경해준 별칭</servlet-name>
<url-pattern>/실제URL매핑으로 원하는 이름</url-pattern>
</servlet-mapping>
※ web.xml 파일은 저장이 오래걸리니까, 모두 다 타이핑 하고 저장합시다
※ web.xml 방법은, 어노테이션 방법과 같이 사용할 수 없습니다.
이렇게만 봐도, URL매핑은 1번째 방법인 어노테이션 이 훨씬 쉽게 느껴지시죠? ㅎㅎㅎ
보통 어노테이션 방법으로 URL 매핑을 합니다.
이번에는 Servlet 을 이용한 URL 매핑 ( 어노테이션, web.xml ) 에 대해서 알아 보았습니다.
고생하셨습니다.
'JSP 공부' 카테고리의 다른 글
Day50 - [JSP]유튜브 영상 사용하기 (0) | 2021.04.26 |
---|---|
Day49 - [JSP]HttpRequest (0) | 2021.04.24 |
Day48 - [JSP]태그.지시자 , 주석 (0) | 2021.04.23 |
Day48 - [JSP]태그.스크립트릿, 선언자, 표현식 (0) | 2021.04.23 |
Day47 - TomCat 설치 및 서버 접속 (0) | 2021.04.21 |