ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 12. 서블릿 스코프, URL 패턴
    개발자 수업/JSP 2021. 12. 6. 14:26

     

     

    package kr.co.ezenac.scope;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    @WebServlet("/set")
    public class SetAttribute extends HttpServlet{
    	
    	@Override
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		response.setContentType("text/html;charset=utf-8");
    		PrintWriter out = response.getWriter();
    		
    		String ctxMesg = "context에 바인딩합니다.";
    		String sesMesg = "session에 바인딩합니다.";
    		String reqMesg = "request에 바인딩합니다.";
    		
    		//HttpSessionContext객체, HttpSession객체, HttpServletRequest객체를 얻은 후 속성을 바인딩 함
    		ServletContext ctx = getServletContext();
    		HttpSession session = request.getSession();
    		
    		ctx.setAttribute("context", ctxMesg);
    		session.setAttribute("session", sesMesg);
    		request.setAttribute("request", reqMesg);
    		
    		out.print("바인딩을 수행합니다.");
    	}
    }

    package kr.co.ezenac.scope;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
    
    @WebServlet("/get")
    public class GetAttribute extends HttpServlet{
    	
    	@Override
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		response.setContentType("text/html;charset=utf-8");
    		PrintWriter out = response.getWriter();
    		
    		ServletContext ctx = getServletContext();
    		HttpSession session = request.getSession();
    		
    		//각 서블릿 API에서 바인딩된 속성의 값을 가져옴
    		String ctxMesg = (String)ctx.getAttribute("context");
    		String sesMesg = (String)session.getAttribute("session");
    		String reqMesg = (String)request.getAttribute("request");
    		
    		out.print("context 값 : " + ctxMesg + "<br>");
    		out.print("session 값 : " + sesMesg + "<br>");
    		out.print("request 값 : " + reqMesg + "<br>");
    	}
    }


    package kr.co.ezenac.urlpattern;
    
    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;
    
    @WebServlet("/first/test")	//정확히 이름까지 일치하는 URL 패턴
    public class UrlTestServlet01 extends HttpServlet{
    	
    	@Override
    	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.getRequestURI().toString();	//전체 URL을 가져옴
    		String mappint = request.getServletPath();			//서블릿 매핑 이름만 가져옴
    		String uri = request.getRequestURI();				//URI를 가져옴.
    		
    		out.print("<html><body bgcolor = 'yellow'>");
    		out.print("<b>UrlTestServlet01입니다.</b><br>");
    		out.print("</body></html>");
    		
    	}
    }


    package kr.co.ezenac.urlpattern;
    
    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;
    
    @WebServlet("/first/*")		//디렉토리 이름만 일치하는 URL 패턴
    public class UrlTestServlet02 extends HttpServlet{
    	
    	@Override
    	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();	//전체 URL을 가져옴
    		String mapping = request.getServletPath();			//서블릿 매핑 이름만 가져옴
    		String uri = request.getRequestURI();				//URI를 가져옴.
    		
    		out.print("<html><body bgcolor = 'blue'>");
    		out.print("<b>UrlTestServlet02입니다.</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>");
    		
    	}
    }


    package kr.co.ezenac.urlpattern;
    
    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;
    
    @WebServlet("*.do")		//확장자만 일치하는 패턴
    public class UrlTestServlet03 extends HttpServlet{
    	
    	@Override
    	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();	//전체 URL을 가져옴
    		String mapping = request.getServletPath();			//서블릿 매핑 이름만 가져옴
    		String uri = request.getRequestURI();				//URI를 가져옴.
    		
    		out.print("<html><body bgcolor = 'red'>");
    		out.print("<b>UrlTestServlet02입니다.</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>");
    		
    	}
    }


    package kr.co.ezenac.urlpattern;
    
    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;
    
    @WebServlet("/*")			//모든 요청 URL 패턴
    public class UrlTestServlet03 extends HttpServlet{
    	
    	@Override
    	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();	//전체 URL을 가져옴
    		String mapping = request.getServletPath();			//서블릿 매핑 이름만 가져옴
    		String uri = request.getRequestURI();				//URI를 가져옴.
    		
    		out.print("<html><body bgcolor = 'red'>");
    		out.print("<b>UrlTestServlet02입니다.</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>");
    		
    	}
    }

    '개발자 수업 > JSP' 카테고리의 다른 글

    14. 서블릿 관련 Listener API  (0) 2021.12.06
    13. 필터 API  (0) 2021.12.06
    11. 웹 페이지 연결 기능  (0) 2021.12.03
    10. ServletConfig  (0) 2021.12.03
    9. ServletContext  (0) 2021.12.02

    댓글