Download presentation
Presentation is loading. Please wait.
Published byLeon Wiggins Modified 6년 전
1
Servlet 서블릿 기초 FORM 처리 서블릿의 API 세션과 쿠키 com.oreilly.servelet 패키지
2004년 2월 10일 PSLAB : 문세원, 남지민
2
1.1 서블릿의 정의 자바를 이용해서 작성하는 CGI프로그램 서버에서 실행
cf) 애플릿(클라이언트의 브라우저에서 실행) 일반 CGI와는 다르게 클라이언트의 요청이 있을 때 쓰레드를 생성 서블릿 프로그램을 작성하기 위해서 javax.servlet패키지의 클래스가 필요 서블릿을 실행시킬 때 클래스의 이름만 사용
3
1.2 서블릿의 장점 플랫폼의 독립성 서버 독립성 확장성 네트워크를 통한 동적인 로딩지원
4
2. FORM 처리 getParameter() getParameterNames() getParameterValues()
5
3.1 서블릿 라이프 사이클 서블릿이 메모리에 로드되면 Init()함수가 실행
클라이언트로 부터 요청이 있을 때마다 쓰레드들에 의해 병행적으로 service 함수 실행 끝내기 작업 destroy()수행 병행성 문제 Synchronized를 이용 SingleThreadModel인터페이스를 이용 init service Servic()함수 : 응용프로그램 수준의 프로토콜을 구현한 코드 한번 로드된 서블릿은 계속적으로 메모리에 유지 destroy
6
3.2 서블릿의 상속관계 I Servlet GenericServlet HttpServlet HelloServlet
- 서블릿 관리 - 클라이언트와 통신 할 수 있는 메소드 지원 Servlet implements 프로토콜에 무관한 기본적인 기능 제공 Servlet 과 ServletConfig 인터페이스를 구현 GenericServlet extend HTTP서비스를 위한 기본적인 기능 제공 클라이언트 요청 종류에 따라 각각 다른 service 함수를 호출 HttpServlet extend HttpServletRequest : 서블릿엔진에서 구현되는 것으로 client 요청에 관련된 정보를 HttpServlet으로 전달하는 기능의 인터페이스 HttpServletResponce : Http응답을 client에 전송하는 기능의 인터페이스(ex. 헤더 세팅, 쿠기설정) HelloServlet
7
4.1 세션의 정의 HTTP 에서 특정 사용자와 연속적으로 인터랙션이 일어나는 것
HttpServletRequest의 getSession()메소드를 이용하여 httpSession을 얻음 Method getCreationTime(), getId(), getLastAccessedTime(), getMaxInactiveInterval(), getAttribute(), getValueNames(), invalidate(), isNew(), setAttribute(), removeValue(), setMaxInactiveInterval()
8
Cookie 객체생성 -> 쿠키속성 부여 ->쿠키전송
4.2.1 쿠키의 정의 클라이언트 측에 정보를 지속적으로 저장하는 방법 쿠키 정보 얻기 절차 : 사용자의 요청에서 모든 쿠키를 얻음 ->원하는 쿠키를 이름을 통해서 얻음 ->찾아진 쿠키에서 정보를 얻음 예) cookie : name1=value1; name2=value2;… 3.웹페이지 요청 쿠키전송 1.웹페이지요청 쿠키설정절차 Cookie 객체생성 -> 쿠키속성 부여 ->쿠키전송 예) Set-cookie : name=value; expires=date; path=path; domain=domain; secure 예) cookie : name1=value1; name2=value2;… 2.쿠키설정 웹페이지 전달 쿠키설정절차 : Cookie 객체생성 -> 쿠키속성 부여 ->쿠키전송 예) Set-cookie : name=value; expires=date; path=path; domain=domain; secure
9
4.2.2 메소드 Method getDomain(), getMaxAge(), getPath(), getSecure(), getValue(), setComment(), setDomain(), setMaxAge(), setPath(),setSecure(), setValue()
10
5.1 com.oreilly.servlet 패키지
- class Base64Decoder , class Base64Encoder - class CacheHttpServlet , class DaemonHttpServlet - class RemoteDaemonHttpServlet (implements java.rmi. Remote) , class RemoteHttpServlet (implements java.rmi.Remote) - class HttpMessage , class HttpsMessage - class LocaleNegotiator , class LocaleToCharsetMap - class MailMessage - class MultipartRequest , class MultipartParser - class FilePart , class ParamPart - class FileRenamePolicy (New) , class DefaultFileRename Policy(New) - class MultipartFilter ,class MultipartWrapper ,class MultipartResponse - class ParameterParser - class ServletUtils - class VersionDetector
11
5.2 ConnectionPool doGet(), doPost() 메소드 호출시 새로 데이터 베이스 연결 -> 작업 과부하 데이터 베이스의 connection을 pool에 저장
12
5.3 파일 업로드 Com.oreilly.servlet에 있는 MultipartRequest클래스를 사용
5.3 파일 업로드 Com.oreilly.servlet에 있는 MultipartRequest클래스를 사용 MultipartRequest multi = new MultipartRequest(req, “저장될 장소”, 최대 크기) Com.oreilly.servlet에 있는 MultipartRequest클래스를 사용하면 쉽다
Similar presentations