2) 서버 측 요청 흐름 제어
=>forward: 현재 요청을 종료시키지 않고 이어나가는 흐름
request와 session 그리고 application 객체 모두 유지됨
url이 변경되지않음.
읽기 작업에서 결과 페이지로 이동시킬 때 주로 이용
=>redirect:현재 요청을 종료하고 새로운 흐름을 만드는 것
request객체를 새로 만들어지고 session 그리고 application 객체 모두 유지 됨
url이 변경됨
삽입, 삭제, 갱신 작업을 수행할 때 주로 사용 하지만 트래픽 제어를 위해 읽기 작업에서 사용하는 경우도 있음
*SPA 프레임워크
ajax는 트래픽이 늘어나서 외국 인터넷 환경에 좋지 않음
8.Cookie와 Session
=>Http나 Https는 연결을 유지하지 않는다.
또 상태 보존도 하지 않는다.
즉, 요청해서 응답하고 나면 연결이 종료된다.
1) Cookie
=>클라이언트에 상태를 보존하는 기술
=>서버에게 요청을 보낼 때 마다 같이 전송
=>보안때문에 잘 사용하지 않는다고 했지만 보안이 중요하지 않은 데이터는 요즘도 쿠키를 많이 이용한다.
=>최근에는 쿠키 대신에 브라우저 저장소(Web Storage, Wb SQL, indexed DB)에 저장하는 것도 권장
2)Session
=>서버에 상태를 보존하는 기술
=>하나의 클라이언트가 서버에 접속할 때 생성되고 클라이언트가 접속을 해제할 때 소멸
=>여러 클라이언트를 처리하는 시스템에서 메모리 세션보다 파일이나 데이터 베이스 세션을 이용하는 것을 권장
=>최근에는 Web Socket과 로컬 스토리지를 이용하는 방식으로 구현하기도 한다.
9. EL과 JSTL
1)EL
=>Expression Language로 자바의 데이터를 jsp에서 출력하도록 해주는 표현 언어
=>Model2방식에서는 자바 코드를 jsp에 직접사용하는 것을 금기시 하기 때문에 데이터 출력시 EL을 이용함
2)JSTL (JSP Standard Tag Library)
=>Apach그룹이 jsp에서 많이 사용할 만한 자바의 기능을 xml태그 형태로 만들어서 제공해주는 라이브러리
3)Spring에서는 Tymeleaf나 Velocity등을 이용해 출력하거나 데이터만 출력하기 때문에 사용빈도가 높지 않음
10. Filter와 Listener
1)Filter
=>요청을 처리하기 전이나 처리한 후에 수행할 내용을 작성할 수 있는 인터페이스
=>AoP(Aspect of Programming - 관점 지향 프로그래밍)
Common concern(공통 관심 사항 - 프로그래머가 혼자서도 작업이 가능한 영역)과
Business Logic(실제 서비스 로직으로 프로그래머 혼자서는 작업이 불가능한 영역)의 분리
2)Listener
=>이벤트 발생 시 호출되는 객체를 위한 인터페이스
=>Java Web에서는 Web Application이 시작하거나 종료할 때 그리고 세션이 만들어지고 소멸될 때 호출되는 Listener 인터페이스 제공
11.데이터베이스 연동 방식
1) 순수 JDBC 코드로 연동
=>데이터 베이스 제조사에서 제공하는 API를 직접 이용
2) SQL Mapper이용
=>SQL 별도의 파일이나 인터페이스에 작성하고 이를 불러들이는 방식으로 MyBatis(iBatis)가 대표적
=>구현은 쉽지만 효율이 떨어짐 유지보수도 어려움
=>SI 업계에서 많이 이용
3) ORM 이용
=>하나의 클래스와 테이블을 매핑시켜서 SQL없이도 데이터베이스 작업이 가능하도록 해주는 방시긍로 JPA 가 대표적인데 JPA는 인터페이스 이름이고 실제 구현체는 Hibernate를 많이 이용
=>구현이 어렵지만 호율이 좋고 유지보수도 편리
=>최근에 중견 기업에서 대부분 이 방식을 사용하며 다른 언어에서도 이 방식의 프레임워크를 사용하는 경우가 많음
13.Git
'ETC > 개발지식' 카테고리의 다른 글
Spring MVC project (0) | 2022.10.13 |
---|---|
Git 업로드하기 (0) | 2022.10.12 |
Java Web Programming -STS (0) | 2022.10.12 |
사이트 크롤링이 어려운 case (0) | 2022.09.26 |
tomcat 서버 오류날 때 (0) | 2022.08.17 |
댓글