티스토리 뷰

Servlet

서블릿 URL 패턴

dev23 2024. 8. 13. 16:16
반응형

- URL 패턴이란 실제 서블릿의 매핑 이름을 말한다. , 서블릿 매핑 사용되는 가상의 이름으로, 클라이언트가 브라우저에서 요청할 사용되며 반드시 /(슬래시) 시작해야 한다.

- URL 패턴 종류는 정확이 이름까지 일치하는지, 디렉터리까지만 일치하는지 ,확장자만 일치하는지에 따라  가지로
나누어진다.

 

* TestServlet1.java

package url;

import java.io.IOException;
import java.io.PrintWriter;

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 TestServlet1
 */
@WebServlet("/first/test")
public class TestServlet1 extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		
		PrintWriter out = response.getWriter();
		
		String context = request.getContextPath(); // project Path. pro10
		String url = request.getRequestURL().toString(); 
		String mapping = request.getServletPath();
		String uri = request.getRequestURI();
		
		out.print("<html><head>");
		out.print("<title>Test Servlet</title></head>");
		out.print("<body bgcolor='green'>");
		out.print("<b>testServlet1입니다.<b><br>");
		out.print("<b>컨텍스트 이름 : " + context + "</b><br>");
		out.print("<b>전체경로 : " + url + "</b><br>");
		out.print("<b>매핑 이름 : " + mapping + "</b><br>");
		out.print("<b>URI : " + uri + "</b><br>");
		out.print("</body></html>");
		out.close();

	}

}

 

- 코드 작성 후 톰캣을 재시작하고 브라우저에 localhost:[port]/[project_name]/first/test를 입력 후 페이지를 확인해 본다.

 

 

/first/test

* TestServlet2.java

package url;

import java.io.IOException;
import java.io.PrintWriter;

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 TestServlet1
 */
@WebServlet("/first/*")
public class TestServlet2 extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		
		PrintWriter out = response.getWriter();
		
		String context = request.getContextPath();
		String url = request.getRequestURL().toString();
		String mapping = request.getServletPath();
		String uri = request.getRequestURI();
		
		out.print("<html><head>");
		out.print("<title>Test Servlet</title></head>");
		out.print("<body bgcolor='yellow'>");
		out.print("<b>testServlet1입니다.<b><br>");
		out.print("<b>컨텍스트 이름 : " + context + "</b><br>");
		out.print("<b>전체경로 : " + url + "</b><br>");
		out.print("<b>매핑 이름 : " + mapping + "</b><br>");
		out.print("<b>URI : " + uri + "</b><br>");
		out.print("</body></html>");
		out.close();

	}

}

 

- 코드 작성 후 톰캣을 재시작하고 브라우저에 localhost:[port]/[project_name]/first/123을 입력한 후 페이지를 확인해 본다

(123 대신 다른 문자를 입력해도 된다).

 

/first/123

 

* TestServlet3.java

package url;

import java.io.IOException;
import java.io.PrintWriter;

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 TestServlet1
 */
@WebServlet("*.do")
public class TestServlet3 extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		
		PrintWriter out = response.getWriter();
		
		String context = request.getContextPath();
		String url = request.getRequestURL().toString();
		String mapping = request.getServletPath();
		String uri = request.getRequestURI();
		
		out.print("<html><head>");
		out.print("<title>Test Servlet</title></head>");
		out.print("<body bgcolor='red'>");
		out.print("<b>testServlet1입니다.<b><br>");
		out.print("<b>컨텍스트 이름 : " + context + "</b><br>");
		out.print("<b>전체경로 : " + url + "</b><br>");
		out.print("<b>매핑 이름 : " + mapping + "</b><br>");
		out.print("<b>URI : " + uri + "</b><br>");
		out.print("</body></html>");
		out.close();

	}

}

 

- 코드 작성 후 톰캣을 재시작하고 브라우저에 localhost:[port]/[project_name]/servlet.do를 입력한 후 페이지를 확인해 본다(servlet 대신 다른 문자를 입력해도 되며 문자 끝에 ".do"를 입력해야 한다).

 

/servlet.do

 

 

- 확장자명은 지정하지 않을 수도 있고, do 대신 자신이 원하는 이름으로 지정해서 사용할 수도 있다

( do 일반적으로 MVC 프레임워크에서 자주 사용하는 확장자명이다).

반응형

'Servlet' 카테고리의 다른 글

서블릿 Listener  (0) 2024.08.13
필터  (0) 2024.08.13
서블릿 속성 및 스코프  (0) 2024.08.13
encodeURL()  (0) 2024.08.13
서블릿 - 세션 로그인 예제  (0) 2024.08.12
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함