WEB/JSP

[JSP] HttpServlet

다콩잉 2022. 9. 16. 02:44

Servlet

  • Servlet 클래스는 HttpServlet 클래스를 상속받음
  • 클라이언트 요청에 따라 서블릿 컨테이너는 service() 메서드를 호출
  • service() 메서드는 요청이 GET인지 POST인지 구분하여 각각 doGet(), doPost() 메서드를 호출

 

Get & Post

 
Get방식 Post방식
URL값으로 정보가 전송되어 보안에 약함 header를 이용해 정보가 전송되어 보안에 강함
Form태그 method 속성값 = get Form태그 method 속성값 = post

 

 

HttpServlet 클래스

HttpServlet 클래스에서 사용자 요청을 처리하는 doGet/doPost 메서드는
모두 HttpServletRequest와 HttpServletResponse 객체를 매개변수로 가지고 있다.
HttpServletRequest와 HttpServletResponse 객체는 서블릿과 클라이언트를 연결해주는 중요한 객체들이다.

  • HttpServletRequest는 클라이언트의 요청 처리 객체
  • HttpServletResponse는 클라이언트에게 응답 처리 객체

1. doGet()

  • html내 form태그의 method속성이 get일 경우 호출(웹브라우저의 주소창을 이용하여 servlet을 요청한 경우에도 호출된다)
  • doGet메소드는 매개변수로 HttpServletRequest와 HttpServletResponse를 받음
  • HttpServletResponse 객체의 setContentType() 메소드 호출하여 응답방식 결정( euc-kr로 설정해야 한글이 깨지지 않음)
 
  • HttpServletResponse 객체의 getWriter() 메소드를 이용하여 출력 스트림을 얻음
 
  • 출력스트림의 println()메소드를 이용하여 출력하면 웹브라우저에 출력
 

 

2. doPost()

  • html 내 form 태그의 method 속성이 post일 경우 호출
  • 나머지는 위와 동일

 

 

HttpServletRequest클래스의 주요 메서드

 

메서드 설명
getParameterNames() 현재 요청에 포함된 매개변수 이름을 열거 형태로 넘겨준다.
getParameter(name) 문자열 name과 같은 이름을 가진 매개변수 값을 가져온다.
getParameterValues(name) 문자열 name과 같은 이름을 가진 매개변수 값을 배열 형태로 가져온다.                    ( 주로 checkbox, mutilple list 등에 사용 )
getCookies() 모든 쿠키 값을 javax.servlet.http.Cookie의 배열 형태로 가져온다.
getMethod() 현재 요청이 Get인지, Post인지 파악해서 가져온다.
getSession() 현재 세션 객체를 가져온다.
getRemoteAddr() 클라이언트의 IP 주소를 알려준다.
getProtocol() 현재 서버의 프로토콜을 문자열 형태로 알려준다.
setCharacterEncoding() 현재 JSP로 전달되는 내용을 지정한 캐리터셋을로 변환해 준다.                                HTML 폼에서 한글을 입력할 때 정상적으로 처리하려면 반드시 필요하다.
getAttribute(name) ''
setAttribute(null, null) ''

 

HttpServletResponse 클래스의 주요 메서드

메서드 설명
setContentType(type) 문자열 형태의 type에 지정된 MIME Type으로 Content Type을 지정한다.
setHeader(name, value) 문자열 name의 이름으로 문자열 value 값을 헤더로 설정한다.
setDateHeader(name, date) 문자열 name의 이름으로 date에 설정된 밀리세컨드 시간 값을 헤더에 설정한다.
sendRedirect(url) 클라이언트 요청을 다른 페이지로 보낸다.

 

 

출처: https://kimmy100b.github.io/jsp%20servlet/2020/02/13/JSP-Servlet-05/

 

Servlet 구조, HttpServlet 클래스 그리고 컨텍스트 패스

 

kimmy100b.github.io

출처: https://woojong92.tistory.com/entry/Servlet%EA%B5%AC%EC%A1%B0%EC%99%80-HttpServlet-%ED%81%B4%EB%9E%98%EC%8A%A4

728x90