일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 인터페이스
- java
- DI
- fielderror
- 김영한
- 스프링
- 오버라이딩
- equals()
- 코딩테스트
- 의존관계
- 티스토리챌린지
- html form
- ocp
- 백준
- JSON
- HttpServletResponse
- 코드트리
- 프록시
- @configuration
- 코드트리조별과제
- objecterror
- 스프링컨테이너
- 오블완
- 서블릿
- 다형성
- 테스트코드
- http 메시지 컨버터
- 싱글톤
- 추상클래스
- 참조변수
- Today
- Total
목록2024/09 (22)
minOS
스프링 인터셉터 소개스프링 인터셉터도 서블릿 필터와 같이 웹과 관련된 공통 관심 사항을 효과적으로 해결할 수 있는 기술이다.서블릿 필터가 서블릿이 제공하는 기술이라면, 스프링 인터셉터는 스프링 MVC가 제공하는 기술이다. 둘다 웹과 관련된 공통 관심 사항을 처리하지만, 적용되는 순서와 범위, 그리고 사용방법이 다르다.스프링 인터셉터 흐름HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 스프링 인터셉터 -> 컨트롤러 - 스프링 인터셉터는 디스패처 서블릿과 컨트롤러 사이에서 컨트롤러 호출 직전에 호출 된다.- 스프링 인터셉터는 스프링 MVC가 제공하는 기능이기 때문에 결국 디스패처 서블릿 이후에 등장하게 된다. 스프링 MVC의 시작 점이 디스패처 서블릿이라고 생각해보면 이해가 될 것이다.- 스..
서블릿 필터 - 소개필터는 서블릿이 지원하는 수문장이다. 필터의 흐름HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 컨트롤러 필터를 적용하면 필터가 호출 된 다음에 서블릿이 호출된다. 그래서 모든 고객의 요청 로그를 남기는 요구사항이 있다면필터를 사용하면 된다. 참고로 필터는 특정 URL 패턴에 적용할 수 있다. `/*` 이라고 하면 모든 요청에 필터가 적용된다.필터 제한HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 컨트롤러 //로그인 사용자HTTP 요청 -> WAS -> 필터(적절하지 않은 요청이라 판단, 서블릿 호출X) //비 로그인 사용자필터에서 적절하지 않은 요청이라고 판단하면 거기에서 끝을 낼 수도 있다. 그래서 로그인 여부를 체크하기에 적합하다.필터 체인HTTP 요청 -> W..
ch9-4 hashCode()- 객체의 해시코드(hash code)를 반환하는 메서드- Object클래스의 hash code()는 객체의 주소를 int 로 변환해서 반환public native int hashCode(); - equals()를 오버라이딩하면,hasCode()도 오버라이딩해야 한다. 왜냐면 equals()의 결과가 true인 두 객체의 해시코드는 같아 야 하기 때문이다. ch9-5~6 toString(), toString()의 오버라이딩- toString(): 객체를 문자열(String)으로 변환하기 위한 메서드public String toString() { return getClass().getName() + "@" + Integer.toHexString(hashCode()..
ch9-1 Object클래스- 모든 클래스의 최고 조상 , 11개의 메서드만을 가지고 있다.- notify(),wait() 등은 쓰레드와 관련된 메서드이다. - 이 클래스는 java.lang 패키지에 속해 있으며, 모든 객체가 공통으로 가져야 할 기본적인 메서드들을 제공합니다. ch9-2 equals(Object obj) - 객체 자신(this)과 주어진 객체(obj)를 비교한다. 같으면 true 다르면 false. - Object 클래스의 equals()는 객체의 주소를 비교(참조변수 값 비교)public boolean equals(Object obj) { if (this == obj) { return true; //주소가 같으면 true } // 추가 내용}예제cla..
로그인 처리하기 - 서블릿 HTTP 세션1세션이라는 개념은 대부분의 웹 애플리케이션에 필요한 것이다. 어쩌면 웹이 등장하면서 부터 나온 문제이다. 서블릿은 세션을 위해 `HttpSession` 이라는 기능을 제공하는데, 지금까지 나온 문제들을 해결해준다. 우리가 직접 구현한 세션의 개념이 이미 구현되어 있고, 더 잘 구현되어 있다.HttpSession 소개서블릿이 제공하는 `HttpSession` 도 결국 우리가 직접 만든 `SessionManager` 와 같은 방식으로 동작한다. 서블릿을 통해 `HttpSession` 을 생성하면 다음과 같은 쿠키를 생성한다. 쿠키 이름이 `JSESSIONID` 이고, 값은 추정 불가능한 랜덤 값이다. `Cookie: JSESSIONID=5B78E23B513F50164..
로그인 처리하기 - 세션 동작 방식목표 쿠키에 중요한 정보를 보관하는 방법은 여러가지 보안 이슈가 있었다. 이 문제를 해결하려면 결국 중요한 정보를 모두 서버에 저장해야 한다. 그리고 클라이언트와 서버는 추정 불가능한 임의의 식별자 값으로 연결해야 한다. 이렇게 서버에 중요한 정보를 보관하고 연결을 유지하는 방법을 세션이라 한다.세션 동작 방식1)세션 로그인- 사용자가 `loginId` , `password` 정보를 전달하면 서버에서 해당 사용자가 맞는지 확인한다. 2)세션 생성 ,세션 관리- 세션 ID를 생성하는데, 추정 불가능해야 한다.- UUID는 추정이 불가능하다. ex)`Cookie: mySessionId=zz0101xx-bab9-4b92-9b32-dadb280f4b61`- 생성된 세션 ID와 ..