Servlet 작성방법 1,2

JOY·2022년 1월 5일
0

[Java] Servlet

목록 보기
2/9
post-thumbnail

📌 Servlet 작성방법 1,2


서블릿의 기본 작성법, 라이프 사이클을 통해 웹의 동작을 이해하자!

1. Servlet의 2가지 작성 방법

  1. Servlet 3.0 spec 이상
    • web.xml 파일 사용 안함
    • 자바 어노테이션(@) 사용

예시

@webServlet("")
@Repository("")
@RequestMapping(values="")
  1. Servlet 3.0 spec 미만
    • web.xml 파일에 등록

예시

<servlet>
	<description></description>
    <display-name>TenServlet</display-name>
    <servlet-name>TenServlet</servlet-name>
	<servlet-class>exam.TenServlet</servlet-class>
</servlet>
<servlet-mapping>
	<servlet-name>TenServlet</servlet-name>
    <url-pattern>/ten</url-pattern>
</servlet-mapping>

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

실습
Servlet 3.1 spec 으로 exam31 이라는 프로젝트 생성
해당 프로젝트에 1부터 10까지 출력하는 TenServlet 작성
http://localhost:8080/exam31/ten 으로 동작하도록 설정

  • Dynamic web module version 3.1 프로젝트 생성

❓ Generate web.xml deployment descriptor
3.0 이상 버전은 web.xml이 필수는 아님
다른 설정 부분을 추가해야할 부분이 있다면 반드시 web.xml을 추가해서 생성

  • Servlet 생성

  • 서블릿 파일을 요청할 때 지정할 서블릿 이름을 Ten 으로 하기 위해 수정

  • doGet 메서드만 사용

  • TenServlet.java 생성
package exam;

import java.io.IOException;
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 {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
	}

}
  • 동적으로 응답결과를 만들어내는 Servlet
    요청시 서블릿이 실행 되면서 응답할 코드를 만들어 내고 응답하게 함
  • 응답 처리
    HttpServletRequest : 클라이언트가 요청
    HttpServletResponse : 서버가 응답

  • setContentType()을 이용해 클라이언트에 전송할 데이터 타입 설정

/**
 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
 */
protected void doGet(HttpServletRequest request, HttpServletResponse response) 
					throws ServletException, IOException {
	response.setContentType("text/html;charset=utf-8");
	//printWriter 객체 리턴받음
	PrintWriter out = response.getWriter();
	out.println("<h1>1-10까지 출력</h1>");
	for(int i=1; i<=10; i++) {
		out.print(i + "<br>");
	}
	out.close();
}

📍 출력 하기



profile
Just Do IT ------- 🏃‍♀️

0개의 댓글