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
728x90