목록백엔드/JSP (8)
가희의자기개발블로그
1_Servlet(서블릿) 서블릿은 웹프로그래밍에서 클라이언트의 요청을 처리하고 그 결과를 다시 클라이언트에게 전송하는 Servlet클래스의 구현 규칭을 지킨 자바 프로그래밍이다. 간단히 말해서, 서블릿이란, 서블릿이란 자바를 사용하여 웹을 만들기 위해 필요한 기술입니다. 그런데 좀더 들어가서 설명하자면 클라이언트가 어떠한 요청을 하면 그에 대한 결과를 다시 전송해주어야 하는데, 이러한 역할을 하는 자바 프로그램입니다. 예를 들어, 어떠한 사용자가 로그인을 하려고 할 때. 사용자는 아이디와 비밀번호를 입력하고, 로그인 버튼을 누릅니다. 그때 서버는 클라이언트의 아이디와 비밀번호를 확인하고, 다음 페이지를 띄워주어야 하는데, 이러한 역할을 수행하는 것이 바로 서블릿(Servlet)입니다. 그래서 서블릿은 ..
HTML이나 JSP파일로 코드를 작성했을 떄, 한글이 깨지는 현상이 자주 발생한다. 이는 파일의 인코딩 방식과 웹 브라우저가 사용하는 인코딩 방식이 서로 달라서 발생하는 문제이다. 이 인코딩 방식을 통일 해 주어야 한다. 좀 더 자세히 설명하자면, 영어 알파벳은 ASCII코드가 어느 cHARACTERSET에나 기본적으로 포함되어 있기 때문에 어떠한 인코딩을 사용하든지 깨질 일이 없지만 한글의 경우에는 EUC-KR, UTF 계열 인코딩 등 특정 캐릭터셋이 아니면 한글을 표현하지 못해 깨지는 현상이 발생한다. 웹 환경에서의 데이터는 보통 브라우저(클라이언트) - 서버 - DB서버 처럼 3계층에 거져 주고 받게 되는데 이때 세가지 요소의 인코딩이 서로 맞아야한다. 데이터를 입력받거나 출력하는 통로를 스트림이라..
1_JSESSIONID 란? 톰캣 컨테이너에서 세션을 유지하기 위해 발급하는 키이다. 즉, 세션에서 사용되는 쿠키이름이다. 쿠키는 클라이언트에 그리고 세션은 서버에 저장되는 걸로 알고있는게 일반적이고, 그러므로 쿠키보단 세션이 보안에 좋다고 이전에 공부했다. 하지만 세션 또한, 쿠키 형태로 서버와 클라이언트간에 주고 받는다. HTTP 프로토콜은 stateless(무상태)하다. 즉, 상태정보를 유지하지 않는다는 말로, 사용자는 매번 서버에 요청을 할때마다 응답을 받는 순간 연결을 끊어버리고 서버의 입장에서는 요청을 하는 사용자가 누구인지 알지 못한다. 따라서 톰캣은 JSESSIONID 쿠키를 클라이언트에게 발급해주고 이 값을 통해 세션을 유지 할 수 있게 한다. 사실 이 방법 외에도 , URL Rewrit..
이클립스로 웹프로젝트를 생성할때, 파일 구조가 꽤나 복잡하다. 처음 웹프로그래밍을 접하는 사람에게는 각 파일이 어떤 역할을 하는지 쉽게 이해하기 어렵다. 오늘은 Dynamic Web Project를 생성하면 만들어지는 폴더에대해 알아보고자 한다. 1 _WebContent 이 폴더에는 HTML이나 JSP와 같이 컴파일 되지 않아도 되는 파일들을 넣어준다. 이 폴더 안에는 서로 다른 이름의 두가지 폴더가 있다. 하나는 META-INF폴더 그리고 다른 하나는 WEB-INF폴더이다. 하나씩 살펴보자 1_1)META-INF 읽어야하는 자원에 대한 정보를 가지고 있는 파일을 배치한다. 예를 들어, Connection Pool을 이용하는 경우, 미리 연결해야할 DB에 대한 정보를 설정해줘야 한다. 이러한 것들을 이 ..
1_모델1기법 : 로직(Java)과 프리젠테이션(html, javascript, css)이 섞여있는 상태 : 개발시간, 개발비용 단축 : 유지보수가 어렵다 : 단발성 2_모델2기법 (MVC - Model View Controller) 2_1 MVC란? Model, View, Controller로 소프트웨어 디자인 패턴이다. 즉, 개발 할 때, 3가지 형태로 역할을 나누어 개발하는 방법론이다. 로직(Java)과 프리젠테이션(html, javascript, css)를 따로따로 분리하고 이로써 유지보수와 확장성이 용이해진다. 하지만 재활용이 어렵다는 단점을 가지고 있다. 2_2_1 Model 프로그램에 사용되는 데이터를 의미하며 데이터베이스, 상수, 문자열과 같은 변수들에 해당한다. 모델에는 뷰나 컨트롤러의 ..
지금까지 JAVA와 DB를 연동하는 방법으로 DB를 연동할때마다, DAO를 통해 DB에 연결하는 방법을 이용해 왔다. 이 방법의 단점은 웹환경일때, DB와의 연결이 너무 빈번하게 발생하고, 그때마다 커넥션을 생성하고 닫으면 리소스의 낭비와 시간을 많이 소비한다는 것이다. Connection Pool을 본격적으로 알아보기 전에 우선 이전에 사용하던 방식을 먼저 설명하고 그것이 Connection Pool로 어떻게 바뀔 수 있는지 알아보자. 1_ JDBC연결 기본 방법 1_1 기본설정 eclipse와 DB와의 연결을 위해서는 JDBC.JAR파일이 필요하다. 아래 포스팅을 참고해 이클립스에 jdbc를 연동한다. https://blog.naver.com/ststage/221256211715 자바와 오라클 연동(..
1.Cookies 쿠키는 클라이언트 컴퓨터에 저장된 텍스트 파일이다. JSP는 기본 서블릿 기술을 사용하여 HTTP쿠키를 투명하게 지원한다. HTTP 프로토콜은 클라이언트의 요청에 대한 응답을 하고 나면 해당 클라이언트와의 연결을 지속하지 않는(Connectionless) 재접속하는 클라이언트를 판단하는 과정 서버쪽에서 쿠키를 브라우저로 보낸다.(ex, 이름, 연령 또는 식별 번호) 브라우저는 서버에서 보낸 쿠키를 로컬 컴퓨터에 저장한다. 사용자가 이 브라우저를 이용해 특정사이트에 접속할 떄 저장되어 있는 쿠키의 정보가 함께 전송된다. 서버쪽에서는 이 정보를 이용해 사용자를 판단하다. 1_1_ Cookie의 구조 쿠키는 보통 HTTP header안에 세팅되어 있다.(JavaScript는 직접 브라우저에 ..
1. JSP, HTML, TEXT 등의 리소스 파일을 불러올 때 사용한다. 2. include는 페이지 번역(translation) 시 리소스 파일의 실제 내용을 불러온다 한 페이지내에는 여러개의 jsp파일이 include되어 있다. 우리가 네이버와 같은 하나의 웹페이지를 보면 로그인부분, 뉴스부분, 쇼핑부분 이러한 부분들로 잘 나누어 진것 을 볼 수 있다. 이것을 구현할때, 한 파일안에 구현해도 되지만, 모듈화 시켜주는 것이 더 간결하고 가독성이 좋다. 이렇게 모두 작게 쪼개어 나눈 각각의 파일을 합쳐 줄때는 어떻게 해야 할까? 크게 두가지 방법이 있다. 1_ 자바방식 이렇게 해준다. 하지만 이 방식은 두 페이지를 모두 합한 다음에 컴파일 하기 때문에 만약 두 페이지에 똑같은 이름의 변수가 존재하면, ..