서블릿 매핑하는 이유 & 방법 (Servlet Mapping)

DongHyun Kim·2022년 9월 2일
0

백엔드

목록 보기
7/16

서블릿 매핑하는 이유

브라우저는 URL을 이용해 웹 프로젝트를 서버에게 요청한다. 이때 URL은 다음과 같은 구성으로 이루어져있다

http:// IP주소:포트번호 / 프로젝트이름 / < 패키지이름 >.< 클래스이름 >

문제점❗

그런데 클래스 이름이 길어지면 입력하기도 불편하고, 클래스 이름이 노출되며 어떤 기능을 하는지 쉽게 파악할 수 있기 때문에 보안에도 취약하다. 그래서 이러한 문제점을 방지하기 위해 실제 서블릿 클래스 파일 이름을 대체할 수 있는 별명을 붙여주는 것이다.

http:// IP주소:포트번호 / 프로젝트이름 / 매핑한 이름 (별명)

서블릿 매핑하는 방법

서블릿 매핑하는 방법은 2개로 나뉜다
1. web.xml에 직접 작성하기
2. 서블릿 어노테이션 이용하기

서블릿 매핑하는 방법 1. web.xml에 직접 장성하기

실행할 프로젝트 -> WebContent -> WEB-INF -> web.xml 파일의 wep-app 태그 안에 다음과 같이 작성하면 된다

  <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
	<servlet>
      <!-- servlet-name은 중복 불가능 -->
		<servlet-name>aaa</servlet-name> <!-- servlet과 servlet-mapping이 짝을 이어주도록 같은 이름을 붙여준다  -->
		<servlet-class>ex.ex1</servlet-class> <!-- mapping할 class"패키지이름.클래스이름" 형식으로 작성 -->
	</servlet>
	<servlet-mapping>
		<servlet-name>aaa</servlet-name> 
		<url-pattern>/first</url-pattern> <!-- 클래스이름 대신에 웹 브라우저에서 요청하는 이름  -->
	</servlet-mapping>
</web-app>



서블릿 매핑하는 방법 2. 애너테이션 이용하기

이 방법의 장점은 web.xml에 여러 서블릿 매핑 설정 시 복잡해지는 것을 방지할 수 있다.
서블릿 클래스 위에 다음을 적으면 된다

  	@WebServlet("/서블릿매핑이름");
    public class myServlet extends HttpServlet{ <!-- 애너테이션을 이용해 만드는 서블릿 클래스는 반드시 HttpServlet 상속받아야함 -->
  		...
  	}



이 과정을 처음 servlet을 생성할 때부터 설정할 수 있는 방법이 있다.
1. class를 생성할 패키지에 우클릭 -> New -> Servlet

2. 생성할 class name 적고 Next 클릭

3. 매핑할 class를 선택하고 Edit 클릭

4. mapping할 이름 적고 OK

5. 애너테이션 생성된 모습!

profile
do programming yourself

0개의 댓글