상세 컨텐츠

본문 제목

[4th] Servlet 개념

Java/Servlet

by 탑~! 2012. 5. 17. 11:44

본문

HttpServlet abstract 클래스

 

HttpServlet은 일반적으로 웹 클라이언트로부터 온 요청을 받아서 처리하고,

그 결과를 다시 웹 클라이언트에게 되돌려 주는 작업을 수행한다.

 

httpservlet은 service메서드를 재정의하여 만들어졌기 때문에

일단 클라이언트의 요청이 있다면 httpservlet클래스의 service메소드가 자동으로 호출된다.

그리고 service메서드의 내부에서는 클라이언트의 요청방식에 따라 doGet, doPost메서드가 자동으로 호출된다.

 

 

 

물론 httpservlet은 genericservlet을 상속하기 때문에 httpservlet자체의 서블릿 주기는 그대로 적용된다. (init, service,destroy)

 

 

클라이언트의 요청방식에 따라 service메서드가 호출하는 메서드

- doGet 메소드: 서블릿이 HTTP GET 요청을 처리하기 위해서 재정의합니다.

- doPost 메소드: 서블릿이 HTTP POST 요청을 처리하기 위해서 재정의합니다.

- doPut 메소드: 서블릿이 HTTP PUT 요청을 처리하기 위해서 재정의합니다.

- doDelete 메소드: 서블릿이 HTTP DELETE 요청을 처리하기 위해서 재정의합니다.

 

 

 HelloDoGet.java

import java.io.*;  
import javax.servlet.*;  
import javax.servlet.http.*;  
public class HelloDoGet extends HttpServlet {  
  
public void doGet(HttpServletRequest request, HttpServletResponse response)  
    
throws ServletException, IOException {  
    PrintWriter out = response.getWriter();  
    String name = request.getParameter(
"name"); 
    out.println(
"<html><body>");  
    out.println(
"<h1> Hello doGet Test</h1>");  
    
if(name != null){ 
      out.println(
"<h2>"+name+"</h2>");     
    }
else{ 
      out.println(
"<h2>nothing parameter</h2>"); 
    } 
    out.println(
"</body></html>");  
  }  
}

 

 doGet메서드의 원형

-public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException

  doGet메서드의 매개변수 HttpServletRequest와 HttpServletResponse는 service메서드에 의해서 자동으로 넘어오게 되며 이 두 매개변수는 클라이언트로부터의 요청과 응답을 클래스로 맵핑한 것이기 때문에 아주 중요한 역할을한다.

 

-String name = request.getParameter("name");

  클라이언트에게 응답을 하기 위한 스트림을 얻어내기 위해서 response객체로부터 다음과 같은 메서드를 사용합니다.

 

 -PrintWriter out = response.getWriter();

 클라이언트와 연결된 스트림 out을 얻었다면 스트림을 이용해서 클라이언트로 테이터를 전송하기만하면 된다.

 대부분은 out객체의 println메서드를 이용하여 클라이언트로 데이터를 보내기만하면 됩니다.

 


 HelloDoPost.java

import java.io.*;  
import javax.servlet.*;  
import javax.servlet.http.*;  
public class HelloDoPost extends HttpServlet {  
  
public void doPost(HttpServletRequest request, HttpServletResponse response)  
    
throws ServletException, IOException {  
    PrintWriter out = response.getWriter();  
    String name = request.getParameter(
"name"); 
    out.println(
"<html><body>");  
    out.println(
"<h1> Hello doPost Test</h1>");  
    
if(name != null){ 
      out.println(
"<h2>"+name+"</h2>");     
    }
else{ 
      out.println(
"<h2>nothing parameter</h2>"); 
    } 
    out.println(
"</body></html>");  
  }  
}

 HelloDoPost.html

 <HTML><HEAD><TITLE>doPost 테스트</TITLE></HEAD> 
<BODY> 
<h1>doPost 테스트</h1> 
<form action="/MySample/servlet/HelloDoPost" method="Post"> 
  <input type="text" name="name"> 
  <input type="submit" name="submit1"> 
</form> 
</BODY> 
</HTML>

 

 doPost메서드의 원형

- public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException

 doPost메서드의 매개변수 HttpServletRequest와 HttpServletResponse는 자동으로 넘어오게 되며 역시 이 두 매개변수는 클라이언트로부터의 요청과 응답을 클래스로 맵핑하게 된다.

 

- String name = request.getParameter("name");

 클라이언트에게 응답을 하기 위한 스트림을 얻어내기 위해서 response객체로부터 다음과 같은 메서드를 사용한다.

 

- PrintWriter out = response.getWriter();

 클라이언트와 연결된 스트림 out을 얻었다면 스트림을 이용해서 클라이언트로 테이터를 전송하기만 하면 된다.

 여기서도 out객체의 println메서드를 이용하여 클라이언트로 데이터를 보내기만하면 됩니다.

[출처] 서블릿(3)|작성자 kkan

'Java > Servlet' 카테고리의 다른 글

Tomcat 과 Servlet 버전 지원  (0) 2014.06.10
[2th] Servlet 개념  (0) 2012.05.17
[2th] Servlet 개념  (0) 2012.05.17
[1th] Servlet 개념  (0) 2012.05.17

관련글 더보기