Helmi

서블릿이란? 본문

JSP

서블릿이란?

Helmi 2023. 6. 9. 15:30

서블릿(Servlet)

- Server + Applet 합성어. 서버에서 실행되는 Applet.

즉, 자바를 이용하여 웹에서 실행되는 프로그램을 작성하는 기술

- 자바 클래스 형태의 웹 애플리케이션.

- 브라우저 통해 자바 클래스 실행되게 하기 위해 javax.servlet.http 패키지에서 제공하는 HttpServlet 클래스 상속받아 구현함.

- 서블릿 클래스 : HttpServlet 클래스를 상속받아 만든 서브 클래스

서블릿 또한 자바 프로그램의 다른 클래스들처럼 자바 가상머신 JVM에서 동작해야 하므로 클래스 파일이 생성되어야 함. 그래서 클래스 형태로 작성.

- HttpServlet은 웹서비스가 가능한 웹 애플리케이션을 제작 할 수 있도록 자바 확장해 놓은 클래스, 톰캣 설치시 제공 됨.

 

-웹 프로그래밍에서 가장 중요한 것은 클라이언트가 어떻게 서버에 요청하는지 아는 것.

클라이언트는 서버에 get과 post 두 가지 방식 중 하나로 요청 함.

전송 방식 설명
get 주소 창 타고 넘어감. 서버로 보내는 데이터를 사용자가 그대로 볼 수 있음.
보안에 취약, 255자 이하 적은 양 데이터 전송
post html header 타고 넘어가므로 보안에 강함. 255자 이상 대용량 데이터 전송

get방식으로 요청하면 doGet()호출되고 post 방식으로 요청하면 doPost()호출 됨.

 

<form>태그 통해 서버에 무엇인가 전달 혹은 요청 함

<form action="CallServlet" //요청할 서블릿
	<input type = "submit" value="전송">
    //클릭하면 submit 서블릿이 요청 됨
</form>

action 속성값 : 요청 서블릿 이름 기술.

전송 버튼 눌리는 순간 action 속성 값에 지정된 서블릿이 요청 됨.

 

<form method="get" action="CallServlet" 
	<input type = "submit" value="전송">
</form>

<form method="post" action="CallServlet" 
	<input type = "submit" value="전송">
</form>

method 속성 값: get 혹은 post 방식 기술

method 속성 생략 시, 기본 값 get 방식으로 전송 됨.

 

HTML의 <a> 태그 사용해서 링크 걸어 주면 서블릿은 get방식으로 요청한 것으로 인식

이렇게 하이퍼 링크 통해 서버 요청되는 경우에는 무조건 get 방식

<a href ="CallServlet"> get 방식 요청 </a>

주소 입력란에 직접 서블릿 요청 위한 URL 입력해도 get 방식으로 요청한 것으로 인식

 

요청에 대한 처리 위한 doGet(), doPost() 메소드는 어떤 요청 왔냐 따라 둘 중 하나 호출되는 것 빼면 형태 완전 동일.

public void doGet(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException {
)

public void doPost(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException {
)

자세히 보면,

public void doGet(
HttpServletRequest request, //요청 처리
HttpServletResponse response) //응답 처리 
throws ServletException, IOException { //예외 처리 
)

 

get방식은 서버로 데이터 전송될 때 주소창 타고 넘어가므로 보안에 취약, 그러므로 서버가 데이터 전송될 때 주소창 타고 넘어가르모 보안에 취약. 그래서  get or post 선택 할 수 있는 일반적인 폼에서는 post 방식 사용하는 것이 일반적

'JSP' 카테고리의 다른 글

JSP를 이용해서 간단한 회원가입 만들기(db:mysql)  (1) 2024.11.29
서블릿 동작 원리  (0) 2023.06.13
서블릿 클래스 정의  (0) 2023.06.12
서블릿 기초  (1) 2023.06.11
JSP란?  (0) 2023.06.10