본문 바로가기

웹 프로그래밍/Back-End

web.xml 에 서블릿 맵핑

반응형

맵핑을 하는 이유는 URL 주소가 너무 길고, 보안에 노출되어 있는 경로를 간단하게 노출하기 위해서 입니다.

예를들어 기존 경로가 다음과 같을 때,

기존 경로 : http://localhost:8181/helloworld/servlet/com.javalec.ex.HelloWorld

URL맵핑 경로 : http://localhost:8181/helloworld/HWorld

맵핑을 하기 위한 방법은 2가지가 있습니다. 

1. web.xml 에 서블릿 맵핑

<?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">
  <display-name>helloworld</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  <servlet>
	<servlet-name>helloworld</servlet-name>
	<servlet-class>com.javalec.ex.HelloWorld</servlet-class>  
  </servlet>
  <servlet-mapping>
  <servlet-name>helloworld</servlet-name>
  <url-pattern>/HWorld</url-pattern>
  </servlet-mapping>
</web-app>

<servlet-name > : 임의의 이름을 만들어 줍니다.

<servlet-class> : 맵핑할 클래스 파일명을 패키지명을 포함하여 정확하게 입력합니다.

<url-pattern> : servlet-class의 클래스를 맵핑할 임의의 이름을 입력합니다. 주의할 점은 '/'로 시작해야 합니다.

2. 어노테이션을 이용한 서블릿 맵핑

package com.javalec.ex;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class HelloWorld
 */
@WebServlet("/HWorld")
public class HelloWorld extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public HelloWorld() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
		System.out.println("HelloWorld~~~~");
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

@WebServlet("/HWorld")

- 맵핑명(HWorld)을 .java 파일의 소스에 직접 입력합니다.

반응형

'웹 프로그래밍 > Back-End' 카테고리의 다른 글

Django - SQL  (0) 2020.09.10
Django - CRUD  (0) 2020.09.03
Django 기초  (0) 2020.08.28
Servlet Parameter 와 한글처리  (0) 2020.03.11
Servlet 라이프사이클(생명주기), 선처리와 후처리  (0) 2020.03.11