티스토리 뷰
반응형
- 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를 입력 후 페이지를 확인해 본다.
* 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 대신 다른 문자를 입력해도 된다).
* 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"를 입력해야 한다).
- 확장자명은 지정하지 않을 수도 있고, 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
링크
TAG
- Java Server Page
- Redux
- javaserverpage
- Binding
- 스프링
- CSS
- 서블릿
- Servlet
- Spring
- el
- nodejs
- 서브넷팅
- html css
- FMT
- a 태그
- 리액트
- CSS 속성
- JSP
- 제이쿼리
- 내장객체
- 세션
- Session
- script element
- 네트워크
- httpServletRequest
- Network
- react
- HTML
- 미들웨어
- Spring MVC
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함