-
(Servlet) 개념과 특징 정리서버 프로그래밍 2021. 8. 24. 17:22
Servlet은 웹 페이지를 동적으로 생성하기 위한 서버 측 프로그램이다.
개념과 특징들을 정리해보자.
- Java 기반으로 만들어졌으며 확장자는 .java이다. 반드시 패키지 밑에 있어야한다.(디폴트x)
- 자바 코드 내부에 HTML 코드를 작성할 수 있다.
- WAS(Web Application Server) 위에서 컴파일 되어 동작한다.
- 자바와 HTML을 동시에 사용할 수 있어 서버프로그래밍이 가능하지만 자바 코드로 HTML을 구성하는 것이
매우 복잡해서 협업이 어렵고 유지보수가 어렵다. 밑의 코드 예시를 보자.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748package test;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("/Test") // URL 맵핑 사항public class Test extends HttpServlet {// 객체 직렬화// 자바 내 클래스의 상태 정보를 파일로 저장하는 방법// serialVersionUID 가 있어야 참조해서 저장 가능// 필요할 때 다시 객체화하여 메서드, 멤버를 이용할 수 있게 됨.private static final long serialVersionUID = 1L;public Test() { // 기본 생성자를 반드시 필요로 함super();}// request(요청), response(응답)// GET 요청에 대한 처리 방식protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// response.getWriter().append("Served at: ").append(request.getContextPath());response.setContentType("text/html;charset=UTF-8");PrintWriter out=response.getWriter();out.println("<HTML>");out.println("<HEAD><TITLE>서블릿 정리</TITLE></HEAD>");out.println("<BODY><H1>서블릿 시작!</H1></BODY>");out.println("</HTML>");}// POST 요청에 대한 처리 방식protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// POST 방식으로 요청해도, GET으로 처리하겠다.doGet(request, response);}}cs - 기본적인 Servlet 코드 예시로 doGet 함수 안에 HTML 코드를 작성한 것을 보았을 때, 굉장히 귀찮아 진다는 것을 확인할 수 있다..!
- 서버 프로그래밍을 해야하는데 이건 너무 힘들고... 오! 반대로 HTML 코드 안에 자바 코드를 넣는 방식으로 하면 구성이 편해지지 않을까??! ----> JSP 등장.
- 그런 고로 다음 글은 JSP, JSP와 Servlet의 관계를 포스팅 해보겠습니다 :)
'서버 프로그래밍' 카테고리의 다른 글
(JSP) 포워딩과 리다이렉트 (0) 2021.08.26 (JSP) 자바 빈즈를 활용한 계산기 (0) 2021.08.26 (JSP) 계산기를 만들어보자 (0) 2021.08.26 (JSP/Servlet) 개념과 기초 정리 (0) 2021.08.24