학습기록남기기
2022_05_12_JSP_5일 본문
쿠키 vs 세션
- 쿠키 대신에 세션을 사용하는 가장 큰 이유는 세션이 쿠키보다 보안에서 앞서기 때문입니다.
- 쿠키의 이름이나 데이터는 네트워크를 통해 전달되기 때문에 HTTP 프로토콜을 사용하는 경우 중간에서 누군가가 쿠키의 값을 읽어올 수 있습니다.
- 그러나 세션은 오직 서버에만 저장되기 때문에 중요한 데이터를 저장하기에 좋습니다.
- 세션을 사용하는 또 다른 이유는 웹 브라우저가 쿠키를 지원하지 않거나 강제로 사용자가 쿠키를 차단한 경우에도 사용할 수 있다는 점입니다.
- 세션은 여러 서버에서 공유할 수 없는 단점이 있습니다. 그러나 쿠키는 도메인을 이용해 쿠키를 여러 도메 인에서 공유할 수 있기 때문에 Naver, Daum과 같은 포털사이트들은 쿠키에 로그인 방식을 저장하는 것을 선호합니다
application 기본 객체
특정 웹 애플리케이션에 포함된 모든 JSP페이지는 하나의 application 기본 객체를 공유합니다
application 객체는 웹 애플리케이션 전반에 걸쳐서 사용되는 정보를 담고 있습니다.
서버 동작시 applicatino객체 생성되고 ,서버 내려가면 application 객체 종료
서버 내 프로젝트 어디든 사용할 수 있다 (폴더 경로에 관계 없음) : 서버 프로그램 전역에서 사용 가능 .( 브라우저 꺼져도 관계 없다, 즉 서버만 종료되지 않으면 됨)
예외 페이지
- 예외 상황이 발생했을 경우 웹 컨테이너(톰캣)에서 제공되는 기본적인 예외 페이지가 보여집니다
- 개발 과정에서는 이러한 페이지를 보고 어떤 에러가 발생했는지 알 수 있기 때문에 오류를 수정하는데 도움이 됩니다
- 그러나 사용자에게 상용 서비스를 제공하고 있는데,이러한 딱딱한 페이지가 보여진다면 사용자로 하여금 불쾌감을 일으키고 ,해당 사이트에 대한 신뢰도 하락
- 코드의 일부 노출 되어 보안 측면에 좋지 않음
- 개발자가 따로 만들어 둔 에러 페이지로 유도하여 사용자에게 친숙한 페이지를 보여줘야 된다.
에러 처리 방법
- try { } ~catch( ) { }
- 에러를 처리할 페이지를 따로 지정하기
- jSP는 실행 도중 예외를 발생할 때 톰캣 기본 에러화면 대신 개발자가 지정한JSP파일 페이지를 보여줄 수 있는 기능을 제공
- 에러가 발생하면 보여줄 JSP페이지는 페이지 지시자(directive)의 errorPage속성을 사용하여 지정합니다. <%@ page errorpage=”보낼 페이지 주소 “ %> , 받는 페이지 :<%@ page isErrorPage=”true” %>
- 응답 상태 코드별로 에러 페이지 지정하기
- JSP는 에러 코드별로 사용할 에러 페이지를 web.xml파일 수정을 통해 지정할 수 있습니다.
- 이렇게 지정한 에러페이지는 일반 JSP파일과 동일하게 작성하면 됩니다
에러 페이지의 우선순위
에러 페이지를 여러 방법으로 지정한 경우 다음의 우선순위에 따른 사용할 에러 페이지를 선택합니다(에러 페이지 처리가 중복으로 작성하여도 우선순위가 적용)
- 페이지 지시자 태그의 errorPage 속성에 지정한 페이지
- web.xml에 지정한 에러 타입(자바 에러 종류)에 따른 페이지
- web.xml에 지정한 응답 상태 코드(400,500 ...)에 따른 페이지
- 위 3항목에 해당하지 않을 경우 톰캣이 제공하는 에러 페이지
MVC 패턴에서의 Model
- DAO 클래스(Data Access Object)
- 데이터 베이스에 접속해서 데이터의 추가 ,삭제 ,수정 등의 작업을 하는 클래스
- JSP,Servlet에서 위의 로직을 함께 기술할 수 있지만 코드의 모듈화를 위해 별도의 DAO클래스 만들어 사용
- 보통 한 개의 테이블마다 한 개의 DAO 클래스를 작성
- DAO 클래스는 테이블로부터 데이터를 읽어와 자바 객체로 변환하거나 자바 객체의 값을 테이블에 저장
- DAO를 구현하면 테이블의 컬럼과 매핑되는 값을갖는 자바빈 클래스를 항상 작성해야 한다. 이 자바빈 클래스를 VO클래스라 부른다.
- VO 클래스(Value Object) / DTO 클래스(Data Transfer Object)
- DAO 클래스를 이용하여 데이터베이스에 데이터를 관리할 때 데이터를 일반적인 변수에 할당하여 작업할 수도 있지만 ,별도의 VO클래스를 작성하여 데이터베이스와 관련된 변수들의 모음 역할을 한다
- VO클래스는 자바빈 클래스로 생성합니다.
'수업_정리' 카테고리의 다른 글
| 2022_05_16_JSP_7일 (0) | 2022.05.16 |
|---|---|
| 2022_05_13_JSP_6일 (0) | 2022.05.13 |
| 2022_5_11_JSP_4일 (0) | 2022.05.11 |
| 2022_05_10_jsp_3일 (0) | 2022.05.10 |
| 2022_05_09_JSP_2일 (0) | 2022.05.09 |