728x90

예전과 지금의 uri의 설계는 조금 바뀐면이 많다.

예전 홈페이지의 경우에는 경로에 확장자가 있는경우가 많다.

멀리 갈것도 없다. 넥슨의 uri를 한번 보자.



보다시피 넥슨의 홈페이지는 asp로 되어있는 것을 볼 수 있다.

그러나 요즘에는 restful디자인이 아니라 할지라도 확장자를 사용하지 않는 것이 좋다.

디자인적인 측면에서, 보안적인 측면에서이다.


사실 다른 웹프로그래밍에서(nodejs,flask 등)는 url매핑이(endpoint지정) 매우 쉬운데 jsp는 조금 귀찮다. 

물론 어렵지는 않다. servlet과 jsp는 살짝 방법이 다르다.

따라서 두가지 방법을 모두 보도록 하자.


servlet endpoint 지정


서블릿은 총 방법이 두가지가 있다.

둘중 뭘 쓸지는 상황에서 따라서 다르다.

일단 첫 방법은 애너테이션을 사용한 방법이다.



이 방법은 새로 서블릿을 만들 때 지정해 줄 수 있다.

일단 서블릿을 만들 때 무작정 Finish를 누르지 말고 Next를 눌러주자.



Next를 눌러보면 최근 eclispe에서는 자동으로 매핑되어있는 것을 알 수 있다.

여기서 mapping을 변경하거나 다른 url을 중복해서 사용해 줄 수도 있다.

변경하거나 손대지 않고 Finish를 눌러주자.



그러면 해당 클래스 위에 WebServlet 애너태이션이 생성된것을 알 수 있다.

이제 접근할때 해당주소로 접근한다. 물론 여기서 애너테이션을 변경해 줄 수 도 있다.



실행해보면 Hello로 매핑된 것을 알 수 있다.

다른 방법으로는 web.xml을 건드려 주는것이다.

web.xml을 열어주자.



여기서 추가된 소스는 아래와 같다.


<servlet>
<servlet-name>Hello-Servlet</servlet-name>
<servlet-class>Hello</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Hello-Servlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>


이 소스코드를 해석하자면 먼저 servlet-name으로 servlet-class를 지정해준다.
예를들어서 Hello-Servlet은 내가 원하는 이름으로 servlet-name의 경우아무거나 지정해주면된다.
그러나 servlet-class는 반드시 현재 존재하는 class이름으로 해줘야한다.

이제 servlet을 하나 xml에서 선언해 주었다. 그러면 url에 매핑을 시켜주면된다.
여기서 위에서 선언했던 servlet을 호출하고 url을 원하는 url로 해준다.



보다시피 똑같은 효과를 낼 수 있다는 것을 알 수 있다.


여기서 궁금한건 첫번째가 좋은데 두번째 방법을 굳이 써야하느냐이다.

결론 부터 말하자면 이는 케이스 바이 케이스이다.

프로젝트가 커진다면 의외로 두번째 방법이 관리해주기 더 편하다.

즉 본인이 쉬운방법을 선택해주면 되겠다.


jsp endpoint 지정


jsp는 단한가지의 방법밖에 없다.

파일의 형태상 애너테이션 설치는 불가하므로 servlet에서 사용한 2번째 방법과 같은 원리를사용한다.



일단 jsp파일을 하나 만든다.



사용방식은 servlet과 매우 유사하나 같지는 않다. 


<servlet>
<servlet-name>kukaro-jsp</servlet-name>
<jsp-file>/kukaro.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>kukaro-jsp</servlet-name>
<url-pattern>/kukaro</url-pattern>
</servlet-mapping>


먼저 servlet을 지정해주는건 같다. 그러나 jsp는 jsp-file을 호출해준다.

파일의 경우 WEB-INF를 /라고 생각하고 파일 아래에 존재한다면 추가로 디렉터리를 적어줘야한다.

그 외의 방식은 servlet과 동일하다.



보다시피 제대로 매핑이 됬음을 알 수 있다.


+ Recent posts