서블릿 매핑하는 이유 & 방법 (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개의 댓글

관련 채용 정보