servlet(서블릿) 정리 예제1

    servlet(서블릿) : 자바 플랫폼에서 동적인 웹을 개발할 때 사용하는 기반 기술로 웹에서 JAVA 프로그래밍을 할 수 있다. 사용자에게 요청(request)을 받아 요청한대로 처리해주는 doGet() 또는 doPost() 일을 처리한 후 처리 결과를 사용자에게 응답(response) 해준다.

     

    1. 클래스는 HttpServlet을 상속받는다.

    서블릿의 기본이 되는 것은 javax.servlet.http 패키지에 준비되어 있는 HttpServlet 클래스이다. 서블릿은 이 클래스를 상속하여 만든다.

    2. 기본은 'doGet'과 'doPost' 메소드

    클래스에 거의 필수 항목으로 제공되는 것은 'doGet'과 'doPost'메소드이다. 이들은 각각 HTTP 메소드인 GET/POST에 액세스할 때 실행된다. 이 중에 하나(또는 양쪽)가 반드시 준비될 것이다. 어느 메소드도 IOException이 발생할 수 있으므로 throws IOException해 둔다.

    3. HttpServletRequest에서 요청 정보를 관리

    이러한 메소드는 두 가지 중요한 객체가 인수로 전달된다. 하나는 'HttpServletRequest'이다. 이것은 요청 정보(클라이언트가 서블릿에 액세스하여 왔을 때 정보)를 관리하는 객체이다. 요청에 대한 다양한 정보는 이 객체의 메소드를 호출하여 얻을 수 있다.

    4. HttpServletResponse에서 응답을 관리

    또 다른 객체가 "HttpServletResponse"이다. 이것은 응답 정보(서블릿에서 클라이언트에 반환하는 정보)를 관리하는 객체이다. 클라이언트에 출력 등도 이 HttpServletResponse에서 PrintWriter를 꺼내어 써서 내보낸다.

     

    servletTest.java

    package com.gu.common;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.Calendar;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    // HttpServlet을 상속받는 ServletTest이다. 
    public class ServletTest extends HttpServlet {
    	
    	@Override // Get 방식으로
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) 
                                  throws ServletException, IOException {
    //		super.doGet(request, response);
    		response.setContentType("text/html");
    		response.setCharacterEncoding("utf-8");
    		
    		Calendar calendar = Calendar.getInstance();
    		int hour = calendar.get(Calendar.HOUR_OF_DAY); //시
    		int minute = calendar.get(Calendar.MINUTE); //분
    		int second = calendar.get(Calendar.SECOND); //초
    		String time = hour + "시" + minute + "분" + second + "초"; 
    		
    		PrintWriter out = response.getWriter();
    		out.write("<!DOCTYPE html>");
    		out.write("<html>");
    		out.write("<head>");
    		out.write("<title>");
    		out.write("제목");
    		out.write("</title>");
    		out.write("</head>");
    		out.write("<body>");
    		out.write("<h1>" + time + "</h1>");
    		out.write("</body>");
    		out.write("</html>");
    		
    		
    	}
    }

    web.xml

    <servlet>
        <servlet-name>ServletTest</servlet-name>  //서블릿 이름
        <servlet-class>com.gu.common.ServletTest</servlet-class> //서블릿 클래스 위치
      </servlet>
      <servlet-mapping>
        <servlet-name>ServletTest</servlet-name> //서블릿 이름
        <url-pattern>/test</url-pattern> // 공개하는 주소
      </servlet-mapping>

    이때 ServletTest.java에 서블릿의 기능이 없고 단지 HttpServlet을 상속 받는 클래스이기 때문에

    서블릿의 기능을 사용하기 위해서는 web.xml에 서블릿 설정을 하여 서블릿 기능을 수행하게 한다.

    ServletTest2.java

    package com.gu.common;
    
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.Calendar;
    
    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("/test2")  //자체적으로 서블릿 주소 설정
    public class ServletTest2 extends HttpServlet {
    	private static final long serialVersionUID = 1L;
           
        
        public ServletTest2() {
            super();
          
        }
    
    	
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //		super.doGet(request, response);
    		response.setContentType("text/html");
    		response.setCharacterEncoding("utf-8");
    		
    		Calendar calendar = Calendar.getInstance();
    		int hour = calendar.get(Calendar.HOUR_OF_DAY); //시
    		int minute = calendar.get(Calendar.MINUTE); //분
    		int second = calendar.get(Calendar.SECOND); //초
    		String time = hour + "시" + minute + "분" + second + "초"; 
    		
    		PrintWriter out = response.getWriter();
    		out.write("<!DOCTYPE html>");
    		out.write("<html>");
    		out.write("<head>");
    		out.write("<title>");
    		out.write("제목");
    		out.write("</title>");
    		out.write("</head>");
    		out.write("<body>");
    		out.write("<h1>" + time + "</h1>");
    		out.write("</body>");
    		out.write("</html>");
    	}
    
    }

    'JSP' 카테고리의 다른 글

    MVC 패턴(Model 2)  (0) 2023.09.12
    servlet(서블릿) 정리 예제 2  (1) 2023.09.12
    EL 정리 예제 2  (0) 2023.09.12
    EL 정리 예제 1  (0) 2023.09.11
    JSTL 정리 예제  (0) 2023.09.11

    댓글