기업에서 사용하는 프로그램을 개발하는 용도의 Java개발 버전
Java EE중 웹 서비스를 구현하기 위해 CGI를 준수하여 제작된 기능.
동적으로 HTML을 생성하기 위해 사용.
CGI(Common Gateway Interface)
일반언어가 웹 서비스를 하기 위해 공통 방식을 정의해 놓은 것.
-C언어가 CGI를 준수하면 C-CGI.
-Java언어가 CGI를 준수하면 Servlet
장점 : 언어에서 제공하는 모든 기능을 사용할 수 있다.
단점 : -속도가 느리다.( 개발속도도 느리고, 서비스 되는 속도도 느리다.)
-구조가 복잡
-디자이너와 개발자간의 업무구분이 어렵다.
서비스하기 복잡하다.(DD : Deployment Descripter)
Web browser는 HTML만 실행할 수 있다.
.class파일을 실행하기위해 DD가 필요하다.



HttpServlet 클래스 상속(내가 만든 클래스로 웹 서비스가 가능.)
public class Test extends HttpServlet{
웹의 요청방식을 처리할 수 있는 method overriding
<a href="">, location, <form method="GET, POST">

protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException{
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException{
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException,IOException{

Servlet 등록
<servlet>
<servlet-name>객체명</servlet-name>
<servlet-class>패키지명.class명</servlet-class>
</servlet>
URL mapping ( web browser에서 클래스를 사용할 수 있도록 다른 이름으로 연결하는 것)
<servlet-mapping>
<servlet-name>객체명</servlet-name>
<url-pattern>/웹브라우저에서 인식할 이름</url-pattern>
</servlet-mapping>
*tomcat실행 ( startup.bat )

server.xml과 web.xml를 로딩한다.
요청 URL을 처리할 수 있는 HDD의 경로와 연결파일명이 설정된다.
접속자가 URL을 입력하여 요청.
http://localhost/servlet_prj/hello
hosts파일을 찾고 hosts파일에 domain정보가 존재하지 않으면 DNS서버로 가서 서버의 ip를 얻는다.
요청 URL을 분석하여 HDD에 존재하는 class파일을 객체화
servlet_prj/hello
setContentType()에 정의되어있는 파일이 생성 ?.html동적으로 생성
응답받은 HTML을 Rendering하여 보여줌.