반응형

URL 패턴이란?

  실제 서블릿 매핑 이름을 말합니다. 즉 서블릿 매핑 사용되는 가상의 이름으로, 클라이언트가 브라우저에서 요청할 때 사용되며 반드시 /(슬래시)로 시작해야 합니다.

  서블릿 매핑 이름으로 사용되는 URL 패턴의 종류는 정확히 이름까지 일치하는지, 디렉터리까지만 일치하는지, 확장자만 일치하는지에 따라 세가지로 나누어집니다.

 

서블릿에 여러 가지 URL 패턴을 적용해보겠습니다.

첫 번째 서블릿은 /first/test로 요청할 때 실행됩니다. 브라우저의 요청 URL에 대해 서블릿의 여러가지 메서드를 이용하여 요청 관련 정보를 가져옵니다.

  이 서블릿은 /first/test로 요청할때 실행 됩니다. 브라우저의 요청URL에 대해 서블릿의 여러 가지 메서드를 이용하여 요청관련 정보를 가져옵니다.

두번째 서블릿은 /first/ 디렉터리 이름으로 시작되는 요청에 대해 실행됩니다.

세번째 서블릿은 매핑 이름에 상관없이 확장자가 .do면 실행됩니다.

각각의 매핑 이름으로 요청해 보겠습니다.

디렉터리 이름만 일치하는 경우에는 각각 다음과 같이 출력됩니다.

다음은 확장자가 일치했을 경우의 출력 결과로, 각각 /base.do와 /second/base.do로 요청했을 때 출력 결과 입니다.

/first/base.do로 요청하면 확장자명이 .do로 끝나지만 앞의 디렉터리 이름이 우선하므로 TestServlet2가 실행됩니다.

반면에 /second/base.do로 요청하면 /second 디렉터리는 존재하지 않으므로 확장자명 .do를 우선하여 TestServlet3이 실행됩니다.

 

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

반응형

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

Filter API 사용자 정의 필터 만들기  (0) 2019.12.09
Filter API  (0) 2019.12.09
서블릭 속성과 스코프(Scope)  (0) 2019.12.09
세션 로그인 session login  (0) 2019.12.09
세션을 이용한 로그인 정보 바인딩  (0) 2019.12.06
블로그 이미지

꽃꽂이하는개발자

,
반응형

인터넷 관련 대기업의 면접에서 물어보았다.

"URL이 무슨 약자 인가요?"

"......"

 

 

과연 우리는 면접장소에서 답이 나오게 할 수 있을까?

URL = Uniform Resource Locator

URI = Uniform Resource Identifier

자원 파일 위치와 자원 식별자이다

 

즉 웹사이트 주소가 windorsky.tistory.hello/java 라면 hello/java라는 파일은 없다.

아마도 hello 클래스의 java메소드를 호출 하게 될 것이다. 

이렇게 구분자(Identifier)로 보는 것이 URI이다.

 

 

URI와 URL는 다른 것이 아니라 포함관계이다

모든 URL은 URI이다

URL = URL+ URN(Uniform Resource Name)

 

결론적으로 요약하자면, URL과 URN은 URI의 종류이며

모든 URL은 URI이고, 또한 모든 URN은 URI이다

 

 

출처:  https://blog.lael.be/post/61

출처 :  https://mygumi.tistory.com/139

반응형

'2020 > 신입 개발자 면접 질문 모음' 카테고리의 다른 글

Struts2  (0) 2020.03.12
ERP? Framework?  (0) 2020.03.11
신입 개발자 면접질문 #3  (0) 2019.12.06
신입개발자 면접 질문 #2  (0) 2019.12.06
신입개발자 면접 질문 #1  (0) 2019.12.06
블로그 이미지

꽃꽂이하는개발자

,
반응형

서블릿의 스코프(scope)는 서블릿 API에 바인딩된 속성에 대한 접근 범위를 의미합니다.

ServletContext에 바인딩된 속성은 애플리케이션 전체에서 접근할 수 있으므로 애플리케이션 스코프를 갖습니다.

HttpServlet에 바인딩된 속성은 그 HttpSession에 해당하는 브라우저에만 접근할 수 있으므로 세션 스코프를 갖습니다. HttpServletRequest는 해당 요청/응답에 대해서만 접근하므로 리퀘스트 스코프를 갖습니다.

 

스코프의 기능

  • 로그인 상태 유지
  • 장바구니 기능
  • MVC의 Model과 VIew의 데이터 전달기능

 

스코프의 종류 해당 서블릿 API 속성의 스코프
애플리케이션 스코프 ServletContext 속성은 애플리케이션 전체에 대해 접근
세션 스코프 HttpSession 속성은 브라우저에서만 접근
리퀘스트 스코프 HttpServletRequest

속성은 해당 요청/응답 사이클에서만

접근

 

이제 코드로 작성해 보겠습니다

SetAttribute 클래스에 ServletContext, HttpSession, HttpServletRequest 객체의 setAttribute() 메서드를 이용해 속성을 바인딩 합니다.

두번째 서블릿인 GetAttribute 클래스를 다음과 같이 작성합니다. 각 서블릿 API들의 getAttribute() 메서드를 이용해 속성 이름으로 바인딩한 값을 가져와 브라우저로 출력하겠습니다.

브라우저에서 /set으로 요청해 속성을 바인딩하겠습니다.

Context와 Session 객체에 바인딩된 속성은 같은 브라우저에서 접근할 수 있으므로 값을 출력합니다. 그러나 기존에 바인딩된 request 객체는 /get으로 요청하여 생성된 request객체와 다르므로 null이 출력됩니다.

 

인터넷 익스플로러에서 /get을 요청한다면??

  익스플로러에서 요청했기 때문에 이번에는 크롬 세션 객체에는 접근할 수 없어 null을 출력합니다. 반면에 Context객체에 바인딩된 데이터는 모든 브라우저에 같은 결과를 출력하게 됩니다.

반응형

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

Filter API  (0) 2019.12.09
서블릿 URL pattern  (0) 2019.12.09
세션 로그인 session login  (0) 2019.12.09
세션을 이용한 로그인 정보 바인딩  (0) 2019.12.06
세션 유효 시간 재설정, 세션 삭제  (0) 2019.12.05
블로그 이미지

꽃꽂이하는개발자

,
반응형

login3.html

로그인 창의 요청을 처리하는 LoginServlet입니다.

로그인 창에서 전송된 id와 비밀번호를 가져와 MemberVO객체를 생성한 후 속성에 ID와 비밀번호를 설정합ㄴ디ㅏ. 그런 다음 MemberVO객체를 생성한 후 속성에 ID와 비밀번호를 설정합니다. 그런 다음 MemberDAO의 isExisted() 메서드를 호출하면서 memberVO를 인자로 전달합니다. 조회된 결과가 true이면 isLogOn 속성을 true로 세션에 설정하고, ID와 비밀번호도 세션에 저장합니다.

MemberDao 클래스를 다음과 같이 작성합니다. 오라클에서 제공하는 decode() 함수를 이용해 SQL문으로 회원 정보를 조회합니다. 정보가 존재하면 true를, 존재하지 않으면 false를 반환합니다.

ShowMember 클래스를 작성하겠습니다.

두번째 서블릿은 사용자가 로그인할때 회원 정보를 표시해 줍니다. 먼저 로그인 상태를 확인하기 위해 getSession(false)메서드를 호출하여 세션을 얻은 다음 getAttribute() 메서드에 isLogOn을 인자로 전달해 로그인 상태를 가져옵니다. isLogOn의 값이 true이면 회원 정보를 세션에서 가져와 출력합니다. 만약 세션이 존재하지 않거나 isLogOn이 false면 다시 고그인 창으로 이동합니다.

memberVO화면입니다.

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

반응형
블로그 이미지

꽃꽂이하는개발자

,
반응형

bmi.csv
0.23MB

여기에서 사용할 BMI 자료입니다.

저는 쥬피터 data폴더 안에 bmi.csv를 넣어 놓고 시작했습니다.

반응형

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

케라스(Keras)와 텐서플로(TensorFlow) 설치  (0) 2019.12.10
Tensorflow 분류하기  (0) 2019.12.09
Tensorflow basic  (0) 2019.12.06
SKLearn 분류(IRIS) scikit-learn IRIS  (0) 2019.12.06
tensorflow install  (0) 2019.12.06
블로그 이미지

꽃꽂이하는개발자

,
반응형

로그인 상태처럼 사용자와 관련된 정보를 바인딩해서 사용할 때는 세션을 이용하는 것이 편리합니다. 

세션은 사용자당 한 개씩 생성되기 때문입니다.

우선 연습을 하기전에 톰캣이 종료된 후에도 세션이 메모리에서 삭제되지 않는 경우가 있으므로 톰캣 설정파일인 context.xml을 열어 <Manager pathname="" /> 태그의 주석을 해제 합니다.

로그인 창에서 id와 비밀번호를 입력한 후 서블릿으로 전송할 수 있도록 login.html파일을 작성하였습니다.

로그인창에서 로그인한 경우 ID와 비밀번호를 가져오고, 최초 요청 시 세션에 setAttribute() 메서드를 이용해 user_id로 사용자ID를 바인딩하도록 구현합니다. <a>태그를 이용해 재요청하고 세션의 user_id값을 가져와 로그인 여부를 확인합니다.

 

이제 로그인창 요청후 ID와 비밀번호를 입력하고 전송해 보겠습니다.

최초 로그인 시 세션에 ID를 바인딩합니다.

로그인 상태 확인을 클릭해서 /login으로 재요청하면 현재 로그인 상태를 출력합니다.

톰캣 재실행 후 로그인창을 거치지 않고 바로 /login으로 요청하면 세션에 ID가 없으므로 "다시 로그인 하세요!!!" 라는 메시지가 출력됩니다.

 

반응형

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

서블릭 속성과 스코프(Scope)  (0) 2019.12.09
세션 로그인 session login  (0) 2019.12.09
세션 유효 시간 재설정, 세션 삭제  (0) 2019.12.05
서블릿에서 세션생성 API 이용하기  (0) 2019.12.05
세션이란?  (0) 2019.12.05
블로그 이미지

꽃꽂이하는개발자

,
반응형

Spring Framework(스프링 프레임워크)

  • 자바 엔터프라이즈 개발을 편하게 해주는 경량급 오픈소스 애플리케이션 프레임워크이다.
  • POJO 기반의 엔터프라이즈 애플리케이션 개발을 쉽고 편하게 할 수 있도록 한다.
  • 동적인 웹 사이트를 개발하기 위한 여러가지 서비스를 제공한다.
  • 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자 정부 표준 프레임워크의 기반 기술

Spring의 특징

  • EJB보다 가볍고 배우기도 쉬우며 경량 컨테이너의 기능을 수행합니다.
  • 제어 역행(IoC, Inversion of Control) 기술을 이용해 애플리케이션 간의 느슨한 결합을 제어합니다.
  • [서블릿이나 빈 등을 개발자가 코드에서 생성하지 않고 프레임워크가 직접 수행하는 방법입니다.]
  • 의존성 주입(DI, Dependency Injection)기능을 지원합니다.
  • [ 클래스 객체를 개발자가 코드에 생성하지 않고 프레임워크가 생성하여 사용하는 방법]
  • 관점 지향(AOP, Aspect-Oriented Programming) 기능을 이용해 자원 관리를 합니다.
  • [핵심 기능 외 부수 기능들을 분리 구현함으로써 모듈성을 증가시키는 방법입니다.]
  • 영속성과 관련된 다양한 서비스를 지원합니다.
  • 수많은 라이브러리와의 연동 기능을 지원합니다.

접근 제한자( public > protected > default >private)

  • public - 접근의 제한이 없다
  • protected - 같은 패키지 or 다른패키지에서 상속받아 사용 가능
  • default - 같은 패키지 내에서만 접근 가능
  • private - 같은 클래스 내에서만 접근 가능

 

Stack과 Que

Stack

  • LIFO(Last In First Out)
  • push() 데이터 입력/ pop() 데이터 출력

Que

  • FIFO(First In First Out)
  • enQueue() 데이터 입력 / deQueue() 데이터 출력

그림참조 : https://article2.tistory.com/818

반응형

'2020 > 신입 개발자 면접 질문 모음' 카테고리의 다른 글

ERP? Framework?  (0) 2020.03.11
URI와 URL의 차이  (0) 2019.12.09
신입개발자 면접 질문 #2  (0) 2019.12.06
신입개발자 면접 질문 #1  (0) 2019.12.06
가비지 컬렉션이란?  (0) 2019.12.06
블로그 이미지

꽃꽂이하는개발자

,