Dolphins의 HelloWorld

Servlet 작성방법 1 (3.0 spec 이상에서) 본문

웹 프로그래밍/웹 프로그래밍 기초

Servlet 작성방법 1 (3.0 spec 이상에서)

돌핀's 2018. 8. 13. 13:08

버전에 따른 Servlet 작성 방법


- Servlet 3.0 spec 이상에서 사용하는 방법


- web.xml 파일을 사용하지 않는다.


- 자바 어노테이션(annotation)을 사용





실습







Dynamic WebProject 를 생성하는 버튼을 클릭한 후 기본적으로 선택되는 버전인 3.1을 선택한다.



그 후 Next를 눌렀을 때 다음과 같은 항목을 볼 수 있는데


서블릿이 컴파일되면 이 컴파일된 클래스 파일은 이 디렉토리에 들어온다.



위 화면은 Next를 누르면 나오는 마지막 화면이다.


Context root가 의미하는 것은 우리가 설정하기로 한 URL인


http:// localhost:8080/exam31/ten 에서 URL을 요청할 때 exam31이라는 URL이 들어가게하는 것이다.


밑에는 체크박스가 있고 web.xml을 생성할 것인가에 대한지를 물어보고있다.


우리는 지금 3.0이상의 버전을 하고있기 떄문에 굳이 web.xml을 생성할 필요는 없다.


하지만 서블릿이 3점대로 만들어졌다 하더라도 다른 설정 부분을 web.xml에 추가해야할 필요가 


있기 떄문에 그 떄는 생성하는것이 좋다.


이제 프로젝트가 완성되었으니 servlet을 생성해보자.



다음과 같이 패키지 이름과 class name을 입력해주고 Next를 누르면



다음과 같은 화면이 나오고 우리는 URL요청을 ten으로 하기로 했기 떄문에


Edit버튼을 눌러 Ten으로 수정해준뒤 생성을 마친다.



생성해주면 다음과 같은 doGet메소드를 볼 수 있다.


클라이언트가 요청을 하면 서버는 요청을 받아내는 객체와 응답을 하기위한 객체 두개를 자동으로 만들어낸다.


요청을 받아내는 객체는 HttpServletRequest, 응답을 하기위한 객체는 HttpServletResponse이며


요청에 대한 정보들은 모두 이 객체안에 추상화시켜 가지고 있을것이다.


1부터 10까지의 결과를 출력하는 코드는 다음과 같다.


package exam;

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 TenServlet
 */
@WebServlet("/Ten")
public class TenServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public TenServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("text/html; charset=utf-8");
		//브라우저가 요청을 받았을 때 그것이 text인지 동영상인지를 알게 해주는것
		PrintWriter out = response.getWriter();
		//응답을 보낼 내용을 저장하는 통로
		out.println("<h1>1부터 10까지 출력</h1>");
		for(int i=1; i<=10; i++) {
			out.println(i+"
"); } } }


위의 코드에서 보면 @WebServlet("/Ten") 이라는 것을 볼 수 있다


이것이 Servlet 3.0 이상에서 볼 수 있는 특징으로 요청을 받을 때 Ten이라는 URL을 통해 요청을 받아


응답을 할 것이라는 의미를 갖고있으며 만약 여기서 Ten을 tt로 수정한다면


http://localhost:8080/exam31/tt 로 요청을 해야 servlet의 응답 결과를 볼 수 있다.


출처 : edwith

https://www.edwith.org/boostcourse-web/lecture/16687/


'웹 프로그래밍 > 웹 프로그래밍 기초' 카테고리의 다른 글

서블릿 라이프사이클  (0) 2018.08.13
Servlet 작성방법 2 (3.0 spec 미만)  (0) 2018.08.13
Servlet 이란?  (0) 2018.08.13
CSS layout 2  (0) 2018.08.08
CSS layout  (0) 2018.08.08
Comments