반응형

  여러 데이터를 하나의 단위로취급하고 싶은 경우, 즉 배열 변수를 사용하고 싶은 경우에는 list형을 사용합니다.

  list는 리스트명[]을 사용하여 나타내고 아래와 같이 입력하면 list가 정의됩니다.

즉, x는 int형으로 구성된 list형이라고 이해할 수 있습니다. list형은 str형으로도 만들 수 있습니다.

list형은 2차원 배열 형태도로 만들 수 있습니다.

튜플과는 다르게 리스트는 수정도 가능합니다. 리스트명[인덱스]=수치

list의 길이

  연속된 정수 데이터의 작성 range(시작숫자삭제#끝숫자+1)

  range형은 list 형과 같은 방법으로 요소를 참ㄴ조할 수 있지만 요소를 수정할 수 없습니다. 예를들어, range형에 대해 y[2] = 2 명을 내리면 오류가 발생합니다.

  range형은 list함수를 사용하여 요소를 수정할 수 있는 list형으로 변환할 수 있습니다.

시작 숫자를 생략하고 rnage(끝숫자+1)을 입력하면 0부터 시작되는 수열이 만들어 집니다.

 

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형
자료형 사용 예

자료형의 의미

int형 a =1  정수
float 형  a = 1.5 실수
str 형 a="learning" 또는 b="abc" 문자열
bool형 True 또는 False 참과 거짓
list형 a=[1,2,3] 배열
tuple형 a=(1,2,3) 또는 b=(2,) 배열(수정 불가능)
ndarray형 a=np.array([1,2,3]) 행렬

Type으로 자료형을 알아보겠습니다.

 

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

  케라스는 파이썬으로 작성된 오픈소스 신경망 라이브러리입니다.

  텐서플로(TensorFlow)는 다양한 작업에 데이터 흐름 프로그래밍을 하는 오픈소스 라이브러리 입니다. 신경망과 같은 머신러닝 응용 프로그램 개발에도 사용됩니다.

 

  우선 시작 메뉴에서 Anaconda3 -> Anaconda Promplt 에서 마우스 오른쪽 버튼클 클릭하고

자세히 -> 관리자권한으로 실행을 클릭해주시면 명령 프롬프트가 열립니다.

  'CD 폴도명'명령으로 작업 폴더오 이동한 뒤, 다음과 같이 pip install명령으로 텐서플로를 설치합니다.

  이동 한 뒤 pip install tensorflow를 입력해 주시면 설치가 시작됩니다.

그 후 케라스를 설치하겠습니다

  pip install keras를 입력해 주시면 됩니다.

  그 후 주피터 노트북으로 돌아가서, 케라스가 설치되었음을 확인하기 위해, 셀에 입력해 보겠습니다.

 

반응형

'2020 > Machine Learning Deep Learning' 카테고리의 다른 글

JupyterNotebook 그래프 그리기  (0) 2019.12.12
Tensorflow 분류하기  (0) 2019.12.09
Tensorflow로 BMI측정  (0) 2019.12.09
Tensorflow basic  (0) 2019.12.06
SKLearn 분류(IRIS) scikit-learn IRIS  (0) 2019.12.06
블로그 이미지

꽃꽂이하는개발자

,
반응형

  HttpSessionListener를 이용해 웹 페이지 로그인 시 접속자수와 모든 접속자 ID를 표시해 주는 기능을 구현하겠습니다.

 

Login2.html

  첫번째 서블릿인 LoginTest 클래스 파일에는 setAttribute()를 이용해 loginUser를 세션에 바인딩하면 LoginImpl 클래스 에 구현된 이벤트 핸들러를 이용해 접속자수를 1 증가시킵니다. 그리고 user_list에 접속자 ID를 저장한 다음ServletContext 객체에 바인딩합니다.

LoginTest

 

LogoutTest 서블릿에서는 로그아웃 링크를 클릭하면 접속자 수를 1 감소시키고 user_list에 로그아웃한 접속자 ID를 삭제한 후 다시 user_list를 ServletContext 객체에 바인딩하도록 설정합니다.

LogoutTest

  LoginImpl 클래스는 HttpSessionListener를 구현해 세션 생성과 소멸 시 이벤트를 처리하는 핸들러입니다.

  중요한 것은 LoginImpl에서 구현한 HttpSessionBindingListener와는 다르게 HttpSessionListener는 반드시 리스너를 구현한 이벤트 핸들러를 애너테이션을 이용해서 등록해야 된다는 것입니다.

  리스너를 등록한 이벤트 핸들러를 이용해서 세션을 생성할 때는 SessionCreated()메서드로 이벤트를 처리하고, 세션을 삭제할 때는 sessionDestroyed() 메서드로 이벤트를 처리합니다.

LoginImpl

 

반응형

'2020 > JSP SERVLET' 카테고리의 다른 글

JSP 변환 과정  (0) 2019.12.11
JSP의 등장  (0) 2019.12.10
HttpSessionBindingListener 로그인 접속자 수 표시  (0) 2019.12.10
Servlet Listener API  (0) 2019.12.09
Filter API 사용자 정의 필터 만들기  (0) 2019.12.09
블로그 이미지

꽃꽂이하는개발자

,
반응형

HttpSessionBindingListener를 이용해 현재 웹 페이지에 로그인한 접속자수를 알아보는 기능을 구현하겠습니다.

login2.html

LoginTest 클래스를 다음과 같이 작성합니다. LoginImpl loginUser=new LoginImpl(user_id,user_pw)를 실행하여 전송된 ID와 비밀번호를 저장합니다. 또 session.setAttribute("loginUser", loginUser) 세션에 바인딩 시 미리 HttpSessionBinding Listener를 구현한 LoginImpl의 valueBound() 메서드를 호출합니다.

LoginTest

 

 

  LoginImpl 클래스에는 HttpSessionBindingListener를 구현하여 세션에 바인딩 이벤트를 처리하는 이벤트 핸들러를 구현하겠습니다. 세션에 바인딩 시 valueBound()가 호출되어 static 변수인 total_user의 값을 1 증가시킵니다.

LoginImpl

 

서로 다른 종류의 브라우저에서 접속하여 실행 결과를 확인해 보겠습니다. 

첫번째 이미지는 크롬 두번째 이미지는 익스플로러 입니다.

 

github : https://github.com/soulwine-it/Servlet-Scope-URLpattern-Filter-Listener

반응형

'2020 > JSP SERVLET' 카테고리의 다른 글

JSP의 등장  (0) 2019.12.10
HttpSessionListener 로그인 접속자수 표시  (0) 2019.12.10
Servlet Listener API  (0) 2019.12.09
Filter API 사용자 정의 필터 만들기  (0) 2019.12.09
Filter API  (0) 2019.12.09
블로그 이미지

꽃꽂이하는개발자

,
반응형

  자바 GUI에서는 마우스 클릭과 같은 이벤트 발생 시 여러가지 이벤트 핸들러를 이용해 화면의 기능을 구현합니다.

  이처럼 서블릿에서도 서블릿에서 발생하는 이벤트에 대해 적절한 처리를 해주는 여러가지 리스너를 제공합니다.

서블릿 관련 Listener 추상 메서드 기능
ServletContextAttributeListener

attributeAdded()

attributeRemoved()

attributeReplaced()

Context 객체에 속성 추가/제거/수정 이벤트 발생시 처리
HttpSessionListener

sessionCreated()

sessionDestroyed()

세션 객체의 생성/소멸 이벤트 발생 시 처리
ServletRequestListener

requestInitialized()

requestDestroyed()

클라이언트의 요청 이벤트 발생 시 처리
ServletRequestAttributeListener

attributedAdded()

attributedRemoved()

attributeReplaced()

요청 객체에 소성 추가/제거/수정 이벤트 발생 시 처리합니다.
HttpSessionBindingListener

valueBound()

valueUnbound()

세션에 바인딩/언바인딩된 객체를 알려주는 이벤트 발생 시 처리합니다.
HttpSessionAttributeListener

attributedAdded()

attributedRemoved()

attributeReplaced()

세션이 속성 추가/제거/수정 이벤트 발생 시 처리
ServletContextListener

contextInitialized()

contextDestroyed()

컨텍스트 객체의 생성/소멸 이벤트 발생시 처리
HttpSessionActivationListener

sessionDidActivate()

sessionWillPassivate()

세션의 활성화/비활성화 이벤트 발생시 처리합니다.

다음 글에서 Listener을 이용해 코딩을 해보도록 하겠습니다.

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

  사용자 정의 필터는 Filter 인터페이스를 구현해야 합니다. 그리고 init(), doFilter(), destroy()의 추상 메서드를 구현해 주어야 합니다.

  사용자 정의 필터를 생성하면 필터를 각각의 요청에 맞게 적용하기 위해 필터 매핑을 해야 하는데, 필터를 매핑하는 방법은 2가지 입니다.

- 애너테이션을 이용하는 방법

- web.xml에 설정하는 방법

일반적으로 애너테이션을 이용하는 방법이 편리하므로 많이 사용합니다.

 

  Filter를 이용한 한글 인코딩을 해보겠습니다. (WebContent/login.html)

login.html

 

아래의 서블릿에서는 setCharacterEncoding() 메서드를 주석 처리하여 한글 처리를 하지 않도록 합니다.

 

로그인을 하니 한글이 깨져서 표시됩니다.

 

  이번에는 필터를 이용해 한글 인코딩 기능을 구현하겠습니다.

  사용자 정의 필터 클래스는 반드시 Filter 인터페이스를 구현해야 합니다. 브라우저 요청 시 doFilter() 메서드의 매개변수로 request와 response가 전달되며, doFilter() 메서드는 FilterChain 타입인 chain을 세번째 매개변수로 가집니다. 전달된 request를 이용해 한글 인코딩 작업을 합니다. chain.doFilter() 메서드를 기준으로 위쪽에 위치한 코드는 요청 필터 기능을 수행합니다.

 

 

톰캣을 재실행하고 로그인창에서 한글을 입력합니다.

요청 필터 기능을 수행할 때마다 doFilter()가 수행되므로 이클립스 콘솔에도 다음과 같은 메시지가 출력 됩니다.

 

깃허브 주소 : https://github.com/soulwine-it/Servlet-Scope-URLpattern-Filter-Listener

반응형

'2020 > JSP SERVLET' 카테고리의 다른 글

HttpSessionBindingListener 로그인 접속자 수 표시  (0) 2019.12.10
Servlet Listener API  (0) 2019.12.09
Filter API  (0) 2019.12.09
서블릿 URL pattern  (0) 2019.12.09
서블릭 속성과 스코프(Scope)  (0) 2019.12.09
블로그 이미지

꽃꽂이하는개발자

,

Filter API

2020/JSP SERVLET 2019. 12. 9. 20:31
반응형

필터란?

  브라우저에서 서블릿에 요청하거나 응답할 때 미리 요청이나 응답과 관련해 여러가지 작업을 처리하는 기능입니다.

  프로그래밍을 하다가 한글 인코딩처럼 각 서블릿에 반복적으로 처리해야 하는 작업이 있을 수 있는데, 이런 경우 서블릿의 공통 작업을 미리 필터에서 처리하면 반복해서 작업할 필요가 없겠죠.

 

필터 기능 수행 과정

 

 

  위의 코드는 지금까지 우리가 해왔던 코드의 일부분입니다.

  이처럼 웹 페이지에서 입력한 한글을 서블릿에 전달 하려면 setCharacterEncoding() 메서드를 이용해 한글 인코딩 설정을 서블릿마다 상단에 추가해야 했습니다. 하지만 모든 서블릿에서 공통으로 처리하는 작업을 먼저 필터에서 처리해 주면 편리하겠죠.

 

필터는 용도에 따라 크에 요청 필터와 응답필터로 나뉘며 다음과 같은 API가 있습니다.

요청필터

  • 사용자 인증 및 권한 검사
  • 요청 시 요청 관련 로그 작업
  • 인코딩 기능

응답필터

  • 응답 결과에 대한 암호화 작업
  • 서비스 시간 측정

 

필터관련 API

  • javax.servlet.Filter
  • javax.servlet.FilterChain
  • javax.servlet.FilterConfig

Filter 인터페이스에 선언된 메서드

메서드 기능
destroy() 필터 소멸 시 컨테이너에 의해 호출되어 종료 작업을 수행
doFilter() 요청/응답 시 컨테이너에 의해 호출되어 기능 수행
init() 필터 생성 시 컨테이너에 의해 호출되어 초기화 작업

FilterConfig의 메서드

 

메서드 기능
getFilterName()  필터 이름을 반환합니다.
getInitParameter(String name)  매개변수 name에 대한 값을 반환합니다. 
getServletContext()  서블릿 컨텍스트 객체를 반환합니다.

 

다음 글에서 사용자 정의필터를 만들어 보고 직접 코딩하여 보겠습니다.

반응형

'2020 > JSP SERVLET' 카테고리의 다른 글

Servlet Listener API  (0) 2019.12.09
Filter API 사용자 정의 필터 만들기  (0) 2019.12.09
서블릿 URL pattern  (0) 2019.12.09
서블릭 속성과 스코프(Scope)  (0) 2019.12.09
세션 로그인 session login  (0) 2019.12.09
블로그 이미지

꽃꽂이하는개발자

,