Server Application Let의 줄임말. 웹서비스를 위한 자바 클래스이다. 서블릿은
클라이언트의 요청(Request) 처리와 응답(Response)하는 클래스의 구현을 지친 기술이다.
클라이언트의 특징에 따라 동적으로 작동한다.
javax.servlet.http.HttpServlet를 상속받아서 사용하며 MVC Model2에서 Controller로 이용한다.
초기에는 자바 동적 웹 프로젝트를 만들 때 생성되는 web.xml에 코드를 작성하여 mapping하는 방식으로 프론트 단의 form태그와 servlet을 연결해주었다.
하지만 javax.servlet.annotation.WebServlet를 import해서 클래스 위에 @WebServlet을 기입해서 연결하는 방식이 훨씬 간편하고 널리 쓰인다.
import javax.servlet.annotation.WebServlet;
// 어노테이션을 통해서 form 태그의 action에서 요청한 주소와 연결된다.
@WebServlet("/elTest")
public class ELTestServlet extends HttpServlet{}
요청하는 주소 뒤에 전달하는 값이 key=value 형식으로 붙어서 전달된다.
단순한 방식으로 주소값을 임의로 지정해 작성도 되며, 캐싱이 가능한 장점이 있다.
하지만 주소에 데이터가 그대로 전달되므로 보안에 취약하고 글자수 제한이 존재하는 단점이 있다.
주소 뒤가 아닌 Http Protocol Body 부분에 숨겨져서 전달된다. 길이 제한이 없고 보안성이 더 좋은 장점이 있지만 캐싱이 안되고 문자를 추가로 인코딩해야 한다.
import javax.servlet.annotation.WebServlet;
// 어노테이션을 통해서 form 태그의 action에서 요청한 주소와 연결된다.
@WebServlet("/elTest")
public class ELTestServlet extends HttpServlet{
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 요청 데이터 문자 인코딩 지정
req.setCharacterEncoding("UTF-8");
}
}