1. Servlet 버전에 따른 작성방법
Servlet은 버전에 따라 작성방법이 아래와 같이 2가지로 나뉜다.
- Servlet 3.0 spec 이상
- web.xml 파일 사용 x, 자바 어노테이션 사용
해당 방식의 예시 코드는 다음과 같다.
@WebServlet("/exam")
public class ExamServlet extends HttpServlet {...}
- Servlet 3.0 spec 미만
- Servlet 등록 시 web.xml 파일에 등
해당 방식의 web.xml 파일 예시 코드는 다음과 같다.
<servlet>
<description></description>
<display-name>ExamServlet</display-name>
<servlet-name>ExamServlet</servlet-name>
<servlet-class>exam.ExamServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ExamServlet</servlet-name>
<url-pattern>exam</url-patter>
</servlet-mapping>
이 글에서는 3.0 버전 이상의 방식에 대해서 살펴본다.
2. Servlet 3.0 spec 이상
먼저 Eclipse에서 [File]-[New]-[Dynamic web Project]를 선택하자. 그러면 아래와 같은 창이 발생한다.
이때 우리는 3.0 이상 버전을 사용할 것이므로 [Dynamic web module version]을 default 설정인 3.1로 진행하면 된다. 이후 next 버튼을 누르고 Source 폴더 설정을 진행 후 next를 한 번 더 누르면 아래와 같은 창이 발생한다.
Context root는 우리가 url을 요청할 때 사용된다. url의 구조는 "http://localhost:8080/{Context root}/{Project name}"으로 우리는 "http://localhost:8080/servletExam01/{Project name}"으로 요청할 수 있다. 또한 아래 체크 박스를 체크하면 web.xml 파일을 자동으로 만들어준다. 우리는 3.1 버전이므로 web.xml이 필수는 아니다. 하지만 이후에 spring 등을 사용하게 되면 servlet을 3.0 이상 버전으로 만들었더라도 다른 설정 부분을 web.xml에 추가해야할 필요가 있기 때문에 그때는 반드시 web.xml을 생성해야 한다. 이후 Finish를 누르면 프로젝트 생성이 완료된다. 아래는 url을 요청받으면 1~10을 출력하는 servlet 예시 코드다.
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;
@WebServlet("/TenServlet")
public class TenServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public TenServlet() {
super();
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset:utf-8");
PrintWriter out = response.getWriter();
out.println("<h1>print 1-10</h1>");
for(int i=1; i<=10; i++) {
out.print(i+"<br>");
}
out.close();
}
}
References
https://www.boostcourse.org/web326
'BackEnd > JSP & Servlet' 카테고리의 다른 글
[Servlet] 한글 깨짐 현상 해결 (0) | 2023.01.31 |
---|---|
Servlet이란? (0) | 2023.01.24 |
[JSP] JSTL(JSP Standard Tag Library) (0) | 2022.12.24 |
[JSP] EL(Expression Language) (0) | 2022.12.23 |
Servlet과 JSP 연동 (0) | 2022.12.23 |