서블릿(servlet)은 클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet클래스의 구현 규칙을 시킨 자바 웹 프로그래밍 기술이다.
다른 말로는, 서버에서 웹페이지를 동적(혹은 정적까지도)으로 생성하거나 데이터 처리를 수행하기 위해 자바로 작성된 프로그램이라고 할 수 있다. 따라서 확장자는 .java이며, 해당 코드 안에 HTML태그가 삽입된다.
javax.servlet.http.HttpServlet
클래스를 상속받음브라우저 언어와 servlet, 또는 JSP만 직접 소통
html / css / java script 는 절대 일반 순수 자바 클래스와 소통이 불가하다.
즉, 웹 요청/응답 처리 시 servlet이나 JSP로 개발해야 한다.
이클립스에서의 웹 개발 구조
*.java
개발.html
/ .css
/ .js
/ .jsp
/ 이미지, 동영상HttpServlet
HttpServletRequest
http 프로토콜 기반으로 요청하는 client의 정보를 보유
→ 접속한 client의 ip, 브라우저 기본정보, client가 server에 전송하는 입력 데이터 등..
doGet()
or doPost()
메소드 실행 시 parameter로 쓰임. 즉, 메소드 실행을 위해 필요한 client의 정보를 제공해주는 API
HttpServletResponse
http 프로토콜 기반으로 요청하는 client에게만 응답하는 처리 수행
응답 포멧 설정 가능
→ 속성지정 가능 (ex.한글로 응답하기 위한 속성 설정)
→ setContentType()
: client 브라우저에 응답하는 포멧 + 인코딩 설정
→ getWriter()
: 2byte출력이 가능하고, 사용 시 PrintWriter
객체를 생성해주어야 함. (PrintWriter
는 접속된 client에게만 출력)
→ PrintWriter
는 2byte 단위로 출력됨
client 브라우저에 응답하는 객체
아래 코드처럼 작성하면 된다.
public class Servlet2Validation extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String id = request.getParameter("id");
String pw = request.getParameter("pw");
System.out.println("id : " + id + " pw : " + pw);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String id = request.getParameter("id");
String pw = request.getParameter("pw");
System.out.println("id : " + id + " pw : " + pw);
}
}
servlet container란 말 그대로 servlet을 관리해주는 container이다.
우리가 서버에 서블릿을 만들었다고 해서 스스로 작동하는 것이 아니고 서블릿을 관리해주는 것이 필요한데, 그러한 역할을 하는 것이 바로 서블릿 컨테이너이다. 서블릿 컨테이너는 클라이언트의 요청(Request)을 받아주고 응답(Response)할 수 있게, 웹서버와 소켓으로 통신하며 대표적인 예로 톰캣(Tomcat)이 있다. 톰캣은 실제로 웹 서버와 통신하여 JSP(자바 서버 페이지)와 Servlet이 작동하는 환경을 제공해준다.
출처 : https://mangkyu.tistory.com/14
servlet lifecycle은 servlet container에서 관리한다.
init()
doGet() / doPost()
destroy()
<form action="idcheck" method="post">
id 입력 from : <input type="text" name="id"> <br>
pw 입력 from : <input type="password" name="pw"> <br>
<input type="submit" value="로그인">
</form>
위 코드에서처럼, <from>
태그에는 method
속성을 정해줄 수 있다. 이 속성은 form data가 서버로 제출될 때 사용되는 HTTP 메소드를 명시한다. method
의 속성으로는 아래 네 가지가 있다.
get
doGet()
으로 처리post
doPost()
으로 처리put
delete