서블릿 API 종류에 대해 서치해보았습니다.
출처 : dreamform.egloos.com/v/2804746
javax.servlet 패키지 (프로토콜에 독립적인 서블릿을 위한 패키지,서블릿 기본패키지)
① Servlet 인터페이스
‣설명:서블릿의 생성에서 소멸까지 서블릿에 관련된 모든일을 담당한다. 따라서 모든 서블릿은 Servlet인터페이스를
구현해야한다.HttpServlet,GenericServlet 인터페이스를 Servlet인터페이스를 상속하므로 이 인터페이스를 직접적으로
구현보다는 HttpServlet,GenericServlet 인터페이스 둘중 하나를 구현하는 경우가 많음.
‣메소드
void init(ServletConfig config): 서블릿을 시작할 때 호출하여, 필요한 자원을 할당하는 등의 서블릿을 초기화 하고,
서비스를 시작할 수 있도록 합니다.
void service(ServletRequest req, ServletResponse res): 서블릿이 초기화 된 후 클라이언트로부터 온 요청에
대한 서비스를 수행합니다. 요청에 대해서 응답을 하기 위한 모든 작업을 수행한다.
void destroy(): 서블릿을 종료할 때 호출하여, 필요한 자원을 할당 해제 하는 등의 작업을 할 수 있도록 합니다.
ServletConfig getServletConfig(): 서블릿에 대한 초기화/시작 매개변수 등을 포함하고 있는
ServletConfig 객체를 얻습니다
String getServletInfo(): 서블릿의 작성자(author), 버전(version), 저작권(copyright) 등과 같은 서블릿 관련 정보를
제공해 주기 위해 재정의해 주어야 합니다.
② ServletConifg 인터페이스
‣설명: 서블릿을 초기화 하는 동안에 해당 서블릿에 정보를 전달하기 위해 사용되어진다. 서블릿 컨테이너가 서블릿 초기화를 위해 필요한 정보들을 ServletConfig타입으로 넘겨준다. 이러한 정보에는 서블릿의 서버와 관련된 정보를 나타내는 ServletContext, 이름과 값의 쌍으로 이루어진 초기화 매개변수가 있다
초기화 파라미터는 web.xml 파일내의 <serlet>태그에서 지정한다.
‣메소드
String getInitParameter(String name): 주어진 이름의 초기화 매개변수의 값을 포함하고 있는 문자열을 얻습니다.
Enumeration getInitParameterNames(): 서블릿을 위한 초기화 매개변수의 이름을 문자열 객체의 enumeration으로 얻음
ServletContext getServletContext(): 서블릿이 실행되는 서블릿 엔진에 대한 정보를 포함하고 있는 ServletContext
객체를 얻습니다.
String getServletName(): 서블릿의 이름을 리턴합니다. 서블릿 이름은 web.xml에서 설정한다.
③ RequestDispatcher 인터페이스
‣설명: RequestDespatcher는 클라이언트로부터 요청 받은 정보를 서버의 Html, JSP 또는 Servlet등의 자원에 보내는 역할을 하는 인터페이스입니다. 서블릿에서 다른 문서로 요청을 이동하거나, 다른 문서들을 포함할 때 사용한다. 내용을 살펴보면 요청 받은 내용을 서블릿에서 다른 서블릿, JSP 또는 Html파일 등으로 보내주는 forward 메서드와 다른 페이지의 내용을 서블릿에 포함시켜 응답하는 include 메서드로 구성됩니다.
‣메소드
④ ServletContext 인터페이스
‣설명: 웹애플리케이션의 정보를 가지고 있다
‣메소드
Object getAttribute(java.lang.String name): 주어진 이름의 서블릿 컨테이너 속성을 얻습니다.
Enumeration getAttributeNames(): 서블릿 컨테이너의 속성에 대해 이름들을 Enumeration 객체로 얻습니다.
void removeAttribute(java.lang.String name): 서블릿 컨텍스트(contect)로부터 주어진 이름의 속성을 제거합니다.
void setAttribute(java.lang.String name, java.lang.Object object): 서블릿 컨텍스트(context)에 주어진 이름의 속성을 추가합니다.
ServletContext getContext(java.lang.String uripath): 주어진 서버상의 URL에 해당하는 ServletContext 객체를 얻습니다.
int getMajorVersion(): 웹 서버가 지원하는 자바 서블릿 API의 major version을 얻습니다.
int getMinorVersion():웹 서버가 지원하는 자바 서블릿 API의 minor version을 얻습니다.
String getMimeType(java.lang.String file): 문자열로 주어진 파일에 대한 MIME 타입을 얻습니다.
String getRealPath(java.lang.String path): 주어진 가상 디렉토리의 실제 경로를 얻습니다.
RequestDispatcher getRequestDispatcher(java.lang.String urlpath): 주어진 경로에 위치에 있는 자원을 위한 wrapper로 작동하는 RequestDispatcher 객체를 얻습니다.
URL getResource(java.lang.String path): 주어진 경로에 매핑되는 자원을 얻습니다.
InputStream getResourceAsStream(java.lang.String path): 주어진 경로에 매핑되는 자원으로부터 입력받을 수 있는
입력 스트림을 얻습니다.
Enumeration getServlets(): 자바 서블릿 API 2.0에서부터는 제거되었습니다.
void log(java.lang.Exception exception, java.lang.String msg): 자바 서블릿 API 2.1에서부터는
log(String message, Throwable throwable) 메소드로 바뀌었습니다.
void log(java.lang.String msg): 서블릿 로그 파일에 주어진 메시지를 기록합니다. 일반적으로 이벤트 로그입니다.
void log(java.lang.String message, java.lang.Throwable throwable): 스택의 내용과 주어진 예외가 가지는 확장 메시지를 서블릿 로그 파일에 기록합니다.
String getServerInfo(): 서블릿이 실행되고 있는 서블릿 컨테이너의 이름과 버전을 얻습니다.
Servlet getServlet(java.lang.String name): 자바 서블릿 API 2.1에서부터는 제거되었습니다.
Enumeration getServletNames(): 자바 서블릿 API 2.1에서부터는 제거되었습니다.
⑤ ServletRequest 인터페이스
‣설명: 서블릿에 전달되는 기본적인 클라이언트 요청에 대한 모든 정보를 가지고 있는 인터페이스
‣메소드
클라이언트 자체에 대한 정보추출
Object getAttribute(String name): 주어진 이름을 갖는 속성값을 얻습니다.
Enumeration getAttributeNames(): 이 요청이 갖는 속성들의 이름에 대한 Enumeration 객체를 얻습니다.
void setAttribute(String key, Object o): 주어진 이름의 속성을 설정합니다.
void remvoeAttribute(String key): 주어진 이름의 속성을 제거합니다.
String getProtocol(): "HTTP/1.1" 과 같은 형식으로 프로토콜 및 major/minor 버전을 얻습니다.
String getRemoteAddr(): 요청한 클라이언트의 IP(Internet Protocol) 주소를 얻습니다.
String getRemoteHost(): 요청한 클라이언트의 호스트 이름을 얻습니다.
String getScheme(): http, https, 또는 ftp 등과 같은 요청을 위해 사용된 방법의 이름을 얻습니다.
String getServerName(): 요청을 받은 서버의 이름을 얻습니다.
int getServerPort(): 요청을 받은 포트 번호를 얻습니다.
ServletRequest의 멤버메서드
클라이언트가 전송한 정보추출
String getCharacterEncoding(): 이 요청에 사용된 문자 인코딩을 얻습니다.
int getContentLength(): 이 요청에 포함되어 있는 데이터의 길이를 구하며, 만약 길이를 알 수 없는 경우에는 ?1이 리턴됩니다.
String getContentType(): 요청에 포함되어 있는 내용에 대한 MIME 타입 또는 모를 경우에는 null을 얻습니다.
Enumeration getParameterNames(): 매개변수들의 이름에 대한 Enumeration 객체를 얻습니다.
String getParameter(String name): 주어진 이름의 매개변수가 갖는 값을 얻습니다.
String[] getParameterValues(String name): 주어진 이름으로 전달된 매개변수가 갖는 모든 값을 문자열 배열로 얻습니다. 매개변수가 다중 선택이 가능한 리스트(list) 또는 선택박스(choicebox)의 값이라면, 여러 개의 값이 하나의 이름으로 전달될 수 있습니다.
BufferedReader getReader(): 요청 바디로부터 문자 인코딩에 따라 텍스트를 읽어들이기 위한 BufferedReader 객체를 얻습니다.
ServletInputStream getInputStream(): 이 요청의 바디로부터 바이너리 데이터를 읽어들이기 위해, 한 번에 한 라인씩 읽을 수 있는 ServletInputStream 객체를 얻습니다.
⑥ ServletResponse 인터페이스
‣설명: 클라이언트에 응답을 보내기위한 기초적인 인터페이스
‣메소드
void flushBuffer(): 버퍼에 있는 내용을 클라이언트에 전달한다.
boolean isCommitted(): 응답이 Commit되었는지 여부를 리턴한다.
void reset(): 버퍼에 잇는 데이터를 삭제한다.
int getBufferSize(): 버퍼의 크기를 리턴한다.
String getCharacterEncoding(): 클라이언트에 대한 응답에 해당하는 MIME 데이터를 보낼 때 사용하기 위해 현재 설정된 문자 인코딩을 얻습니다.
ServletOutputStream getOutputStream(): 클라이언트에 대한 응답으로 바이너리 데이터를 보내기 위해 사용할 ServletOutputStream 객체를 얻습니다.
PrintWriter getWriter(): 클라이언트에 대한 응답으로 텍스트 데이터를 보내기 위해 사용할 PrintWriter 객체를 얻습니다.
void setContentLength(int len): 클라이언트에 대한 응답으로 보내지는 데이터의 길이를 설정합니다.
void setContentType(String type): 클라이언트에 대한 응답으로 보내지는 데이터의 형식을 설정합니다.
void setBufferSize(int size):버퍼의 크기를 설정한다.
⑦ SingleThreadModel 인터페이스
‣설명
‣메소드
⑨ GenericServlet 추상 클래스
‣설명:Servlet, ServletConfig 인터페이스의 모든 메소드를 구현하여 프로토콜에 독립적인 서블릿을 만들 때 필요한 메소드를 재공하지만 추상클래스 이므로 상속하는 하위 클래스를 통해 서블릿을 구현할수 있다.
단. 다른것은 다 구현을 햇지만 Service()메소드는 재정의 해줘야 한다.
‣메소드
void init(): 서블릿의 초기화를 수행합니다.
void init(ServletConfig config): 서블릿을 시작할 때 호출하여, 필요한 자원을 할당하는 등의 서블릿을 초기화 하고, 서비스를 시작할 수 있도록 합니다.
abstract void service(ServletRequest req, ServletResponse res): 서블릿이 초기화 된 후 클라이언트로부터 온 요청에 대한 서비스를 수행합니다. 이 메소드는 추상 메소드이므로, 서블릿을 작성하기 위해 GenericServlet 클래스를 상속하는 모든 하위클래스에서 반드시 구현해 주어야 하는 메소드입니다.
void destroy(): 서블릿을 종료할 때 호출하여, 필요한 자원을 할당 해제 하는 등의 작업을 할 수 있도록 합니다.
String getInitParameter(String name): 주어진 이름의 초기화 매개변수의 값을 포함하고 있는 문자열을 얻습니다.
Enumeration getInitParameterNames(): 서블릿을 위한 초기화 매개변수의 이름을 문자열 객체의 enumeration으로 얻습니다.
ServletConfig getServletConfig(): 서블릿에 대한 초기화/시작 매개변수 등을 포함하고 있는 ServletConfig 객체를 얻습니다.
ServletContext getServletContext(): 서블릿이 실행되는 서블릿 엔진에 대한 정보를 포함하고 있는 ServletContext 객체를 얻습니다.
String getServletInfo(): 서블릿의 작성자(author), 버전(version), 저작권(copyright) 등과 같은 서블릿 관련 정보를 제공해 주기 위해 재정의해 주어야 합니다.
void log(String msg): 서블릿의 클래스 이름과 서블릿 예외 메시지를 서블릿의 로그 파일에 기록합니다.
void log(String message, Throwable t): 시스템 예외 메시지를 서블릿 로그 파일에 기록합니다.
javax.servlet.http 패키지( HTTP에 한정된 서블릿 정의한 패키지)
①HttpServlet 추상클래스
‣설명: GenericServlet 추상클래스를 상속한 클래스로 Service 메소드는 재정의해서 상속되었으므루 따로 재정의 할 필요는 없고 클라이언트의 요청이 있다면 HttpServlet클래스의 Service메소드가 자동으로 호출되고, 요청방식에 따라 doGet(), doPost() 메소드가 자동호출된다 .그리고 doGet(),doPost()재정의 해줘야한다.
‣메소드
② HttpServletRequest 인터페이스
‣설명:ServletRequest를 상속하는 인터페이스로서 HTTP에 해당하는 클라이언트의 요청에 대한 메소드들을 정의하고 있다
‣메소드
request객체의 요청 파라미터
public String getParameter(String name) : 주어진 이름의 매개변수가 갖는 값을 얻습니다. 지정된 이름의 파라미터가 존재하지 않을 경우 null을 반환합니다.
public Enumeration getParameterNames(): 매개변수들의 이름에 대한 Enumeration으로 반환합니다.
public String[] getParameterValues(String name) : 주어진 이름으로 전달된 매개변수가 갖는 모든 값을 문자열 배열로 얻습니다. 매개변수가 다중 선택이 가능한 리스트(list) 또는 선택박스(choicebox)의 값이라면, 여러 개의 값이 하나의 이름으로 전달될 수 있지만 매개변수가 하나의 값을 갖는 경우라면 getParameter(String name)를 사용하는 것이 낫습니다.
request객체의 HTTP 헤더
public String getHeader(String headerName) : HTTP 요청헤더에 지정된 headerName의 값을 문자열로 반환합니다. 만약 HTTP 요청헤더에 headerName의 값이 존재하지 않는다면 null을 반환합니다.
public Enumeration getHeaderNames() : HTTP 요청헤더에 포함된 모든 헤더의 이름을 Enumeration으로 반환합니다.
public Enumeration getHeaders (String headerName) : HTTP 요청헤더에 포함된 headerName의 모든 값을 Enumeration으로 반환합니다.
public int getIntHeader (String headerName) : HTTP 요청헤더에 포함된 headerName의 값을 int로 반환합니다. 지정된 headerName의 값을 int로 변환 할 수 없는 경우 NumberFormatException이 발생하고 headerName 헤더가 HTTP 요청헤더에 존재하지 않을 경우에는 –1을 반환합니다.
public long getIDateHeader (String headerName) : HTTP 요청헤더에 포함된 headerName의 값을 millisecond 변환하여 long으로 반환합니다. 지정된 headerName의 값을 int로 변환 할 수 없는 경우 IllegalArgumentException이 발생하고 headerName 헤더가 HTTP 요청헤더에 존재하지 않을 경우에는 –1을 반환합니다.
request객체의 세션 데이터
public HttpSession getSession() : 요청을 시도한 클라이언트에 지정된 HttpSession 객체를 얻습니다. 이전에 생성된 HttpSession 객체가 없었다면 새로운 세션 객체를 생성합니다.
public HttpSession getSession(boolean create) : 요청을 시도한 클라이언트에 지정된 HttpSession 객체를 얻습니다. create가 false로 지정된 경우 해당 클라이언트에 대해 생성된 HttpSession 객체가 없는 경우 null을 반환합니다. create가 treu로 지정된 경우 이미 생성된 HttpSession 객체를 반환하고 만약 해당 클라이언트에 생성된 HttpSession 객체가 없는 경우 새로운 세션 객체를 생성하여 리턴합니다.
public String getRequestedSessionId(): 요청을 시도한 클라이언트의 세션 id를 문자열로 반환합니다.
public String isRequestedSessionId() : 요청을 시도한 클라이언트의 세션 id가 유효하면 true 아니면 false를 리턴합니다.
isRequestedSessionIdFromCookie() : 요청을 시도한 클라이언트의 세션 id가 쿠키로 전달된 경우 true 아니면
false를 리턴합니다.
isRequestedSessionIdFromURL() : 요청을 시도한 클라이언트의 세션 id가 URL에 포함된 경우 true 아니면 false를 리턴합니다.
request객체의 쿠키
public Cookie[] getCookies() : 클라이언트의 요청에 포함된 쿠키를 Cookie배열로 리턴합니다.
request객체의 요청에 사용된 URL/URI
public String getRequestURI() : 요청에 사용된 URL로부터 URI부분을 문자열로 리턴합니다.
public String getQueryString():요청에 사용된 쿼리 문자열을 문자열로 리턴합니다..
public String getMethod() : 요청에 사용된 요청방식을 문자열로 리턴합니다.
③ HttpServletResponset 인터페이스
‣설명:ServletReponse를 상속하는 인터페이스로서 HTTP에 요청 클라이언트의 응답을 처리하는
인터페이스이다
‣메소드
public void addCookie(Cookie cookie) : 주어진 쿠키를 응답에 추가합니다. 즉 지정도니 쿠키를 클라이언트가 저장하도록 HTTP 응답 헤더에 Set-Cookie헤더를 추가합니다.
public boolean containsHeader(String name) : 응답 메시지 헤더에 주어진 이름의 항목이 있을 경우는 true 아니면 false를 얻습니다.
public String encodeRedirectUrl(String url) : encodeRedirectURL(String url) 메소드로 바뀌었습니다.
public String encodeRedirectURL(String url) : 클라이언트 서버간 세션이 유지되는 상태에서 브라우저가 쿠키를 지원하지 않는 경우 주어진 URL을 sendRedirect 메소드 내에서 사용하기 위해 인코딩합니다.
public String encodeUrl(String url) : encodeURL(String url) 메소드로 바뀌었습니다.
public String encodeURL(String url) : 주어진 URL에 세션 ID를 포함하여 인코딩합니다.
public void sendError(int sc) : 기능상 setStatus()메서드와 거의 동일하나 주어진 상태코드와 그 코드에 해당하는 디폴트 메시지를 사용하여 클라이언트에게 에러를 응답합니다.
public void sendError(int sc, String msg) : 주어진 상태코드와 메시지를 사용하여 클라이언트에게 에러를 응답합니다.
public void sendRedirect(String location): 응답을 주어진 URL로 재전송합니다. 매개변수 location은 절대 URL 혹은 상대적 URK로 지정합니다. 이 메서드는 서버의 특정 자원이 임시 다른 URL로 옮겨진 경우 사용할 수 있는 메서드입니다.
public void setDateHeader(String name, long date) : 날짜를 millisecond로 변환하여 주어진 이름과 날자를 갖도록 응답헤더 항목을 추가합니다.
public void setHeader(String name, String value) : 주어진 이름과 값을 갖도록 응답헤더 항목을 추가합니다.
public void setIntHeader(String name, int value) : 주어진 이름과 정수값을 갖도록 응답헤더 항목을 추가합니다.
public void setStatus(int sc) : 이 응답으로 전송 될 HTTP응답에 대한 상태코드를 설정합니다.
public void setStatus(int sc, String sm) : 이 응답에 대한 주어진 상태코드와 메시지를 설정합니다.
④ HttpSession 인터페이스
‣설명
‣메소드
⑤ Cookie 클래스
‣설명
‣메소드
Javax.servlet.jsp (JSP 페이지 구현 클래스와 JSP 컨테이너에 의해 제공되는 실행환경과의 관계를 정의)
①HttpJspPage 인터페이스
‣설명:JspPage를 상속받은 인터페이스, HTTP Protocol을 사용할때 JSP 페이지 구현 클래스가 일반적으로 처리해야 하는 상호작용을 기술
‣메소드
_jspService()
②JspPage 인터페이스
‣설명:서블릿의 최상위 인터페이스인 Servlet 인터페이스를 상속받은 인터페이스, JSP 페이지 구현 클래스가 일반적으로 처리해야 하는 상호작용을 기술, Servlet를 상속받았기 때문에 init(),Service(),Destroy()를 재정의 해줘야한다.
‣메소드
jspDestory()
jspInit()
③JspEngineInfo 클래스
‣설명
‣메소드
getSpecificationVersion()
④JspFactory 클래스
‣설명
‣메소드
getDefaultFactory()
getEngineInfo()
getPageContext
releasePageContext()
setDefaultFactory()
setDefaultFactory()
⑤JspWriter 클래스
‣설명
‣메소드
JspWriter()
⑥PageContext 클래스
‣설명
‣메소드
'빅데이터 교육과정 (2021-01-25 ~ 2021-06-24) > WEB (02-22 ~)' 카테고리의 다른 글
스키마란? (개념스키마, 내부스키마, 외부스키마) (0) | 2021.03.14 |
---|---|
JSP 내장객체를 이용하여 장바구니 만들기 (shopping basket) (0) | 2021.03.10 |
JSP 에러 코드별 에러페이지 처리 (Servlet Exception Handling) (0) | 2021.03.08 |
JSP 자바빈즈 (0) | 2021.03.08 |
[JSP] UTF-8 한글 깨짐 처리 GET, POST 방식 (0) | 2021.03.08 |