JSP 22

[JSP] DAO, DTO

기존 프로그래밍 방식의 문제점 1. 프로그래밍 부분 (비지니스 로직, 백엔드) 부분과 웹 구조(html css js 등의 프론트 엔트, 프레젠테이션로직) 부분 이 하나의 파일 안에 뒤얽혀 있음. 2. insert. delete, list, find 파일을 보면 ’DB커넥션’을 만드는 과정들이 매 페이지 요청 마다 계속 동일하게 반복된다. 매번 커넥션을 발생시키고 해제하는 동일한 코드가 반복 되는 것이 생산성에도 문제가 된다. 3. 조금만 규모가 커지면, 분업 제작하기도 힘들고, 유지관리도 어렵다. ‘프로그래밍’과 ‘웹 구조’를 분리해야할 필요성 대두! 이를 위해 자바빈을 활용한 DAO,DTO 개발기술 소개. Presentation Logic / Business Logic * DAO, DTO 빈(Bean)..

JSP 2022.04.06

[JSP] JBDC

JDBC 연결 + 게시판 작성 게시판 설계 1. 게시판 CRUD 사이클 글생성 - 글목록 보기 - 글내용 읽기 - 글수정 - 글 삭제 2. 글 작성시 ‘작성자’ 와 ‘글제목’ 은 *필수* 조회수 구현 * MySql 용 쿼리 SET SESSION FOREIGN_KEY_CHECKS=0; /* Drop Tables */ DROP TABLE IF EXISTS test_write; /* Create Tables */ CREATE TABLE test_write ( wr_uid int NOT NULL AUTO_INCREMENT, wr_subject varchar(200) NOT NULL, wr_content text, wr_name varchar(20) NOT NULL, wr_viewcnt int DEFAULT 0,..

JSP 2022.04.06

[JSP] 자바 빈

* 자바 빈 (Bean) - 정보의 덩어리, 즉 데이터 저장소(데이터 객체) - 데이터를 저장하기 위한 필드 + 데이터를 컨트롤하는 getter/setter 메소드를 하나의 쌍으로 가지고 있는 클래스 - getter/setter 메소드는 자바빈의 필드에 데이터를 저장하고 조회하는 작업을 한다 ex) 회원가입 페이지의 경우 아이디/패스워드/... 등의 정보를 따로따로 서버에 전송하는 것이 아니라, ‘하나로 묶어서’ 전송하는 것이 더 효율적. 하나로 묶어서 관리하는 메커니즘으로 자바빈 등장 자바 빈 만들기 패키지 선언 com.lec.beans.클래스이름(빈(bean) 클래스명) 필드 선언 private String name; // 이름을 저장할 필드 선언 private String userid; // 아이디..

JSP 2022.04.05

[JSP] 세션(Session)

* 세션이란? 쿠키와 마찬가지로 서버와의 connection 관계를 유지하기 위해서 이용자 정보를 저장하는 객체, 기존의 ‘쿠키’ 가 클라이언트 에 저장되는 반면, ‘세션’ 은 서버에 저장됨. 세션은 서버에서만 접근이 가능, 따라서 쿠키보다 보안성이 뛰어나다. 쿠키의 기본 용량이 4KB, 300개로 제한적인 반면에 세션은 데이터에 대한 제한이 없다(용량, 타입). WAS 에서는 connection이 만들어지는 브라우저 별로 세션객체를 생성해서 관리함. 세션은 ‘브라우저’ 별로 생성되며, 각각의 세션은 유니크한 아이디(세션 아이디)로 관리됨. 서버에서 발급한 세션 아이디는 클라이언트의 쿠키에 저장된다. (no expiry) 세션(Session)이란 HTTP 프로토콜을 사용하는 인터넷 사용자가 어떤 웹사이트..

JSP 2022.03.31

[JSP] 쿠키

* 쿠키란? - 쿠키는 사용자가 웹사이트를 처음 방문할 때 웹사이트에서 클라이언트의 컴퓨터에 저장해 놓은 작은 파일 - 왜 쿠키 사용? - http 프로토콜은 웹브라우저에 응답후에 일정한 시간이 지나면 접속을 끊는 특징이 있다. (서버 오버로딩 방지) 끊어진 뒤(일정시간 지난뒤) 사용자가 접속요청 해도, 매번 번거로이 인증작업을 할 번거로움을 피하기 위해, 쿠키 기술이 등장하게 됨. - 쿠키는 ‘서버에서 생성’된다. - 쿠키는 ‘클라이언트 PC 저장’된다. (response 객체를 통해 서버→클라이언트로 전달. txt 파일 형태로 저장됨, 서버는 쿠키를 저장않음) - 쿠키 ’관리는 웹브라우저’가 한다. - 쿠키의 크기는 4KB로 제한적이다. 보안중요성이 높은 정보는 ‘쿠키’ 보다는 ‘세션’ 을 선호 * ..

JSP 2022.03.25

[JSP] 액션 태그

* 액션 태그란? jsp 페이지 내에서 어떤 동작을 하도록 지시하는 태그를 의미한다. 예> 페이지이동(forward), include, param ‘웹컨테이너에서 실행’되는 태그, ‘결과만 웹브라우저에 전달’되어 출력된다. 자바 빈(bean) 연관이 있는 태그이다. * 종류 . 표준 액션(standard action) : jsp 페이지에서 바로 사용할 수 있는 액션 . 커스텀 액션 (custom action) : 별도의 라이브러리를 설치해서 사용하는 액션 표준 액션 사용예> // jsp 접두어는 표준 액션을 의미함. 커스텀 액션 사용예> redirect 와는 다르다 -> client 단에서 새로운 url 로의 request 는 발생하지 않는다 request 는 단 한번 page=”파일” 의 결과 html..

JSP 2022.03.24

[JSP] 내부객체

* 내부 객체 (Implicit Object) - 내부객체 : 객체를 생성하지 않고 바로 사용할 수 있는 객체를 의미 (※ 번역서에 따라 ‘내장객체’ 로 기술한것도 있다) JSP에서 제공되는 내부객체는 JSP 컨테이너에 의해 ‘Servlet으로 변환될 때’ ‘자동으로 객체가 생성’된다. * 내부 객체의 종류 입출력 객체 : request - doGet, doPost 메서드의 첫번째 파라미터와 동일한 역할 response - doGet, doPost 메서드의 두번째 파라미터와 동일한 역할 out - 웹브라우저로 HTML코드를 출력하는 기능 (javax.servlet.jsp.jspWriter) 서블릿 객체 : page - JSP페이지로 부터 생성된 서블릿 config - JSP 페이지의 구성정보를 가져오는 ..

JSP 2022.03.24

[JSP] 태그, 지시자

JSP vs 서블릿 * 서블릿은 - Java 코드로 만들어진 겁니다. - Java코드에는 HTML 코드가 없습니다. 그래서 HTML 코드를 출력하기 위해 PrintWriter 객체를 사용하였습니다. - 즉 Java 코드 안 에 HTML 이 있는 형태 - MVC 모델에선 (주로) Controller의 역할을 합니다. * JSP 는 - HTML 코드 내에 Java 코드가 있는 형태 (스크립트 태그의 형태로) - MVC 모델에선 View의 역할을 합니다 - 내부적으로 JSP는 서블릿으로 변환된 뒤에 컴파일, 실행됨. 태그 안에 Java코드 삽입 가능 즉, Java 코드는 ‘서버’ 쪽에서 처리가 된 뒤에 결과물만 클라이언트에 보이는 겁니다 * JSP 의 태그 종류 1. 지시자 (Directive) 태그 : 페이..

JSP 2022.03.24

[JSP] Form 태그를 이용한 서블릿 처리

* Form 태그를 이용한 서블릿 처리 form 데이터 다루기! HTML 문서에서 서버로 데이터 보낼때(submit)는 반드시 안에 있는 name 값이 있는 form element 들을 통해서다. GET방식이든, POST 방식이든 parameter에 담겨서 보내진다. HTML의 name attribute가 있어야 parameter에 value를 담아 보내질 수 있다. 서버측의 Servlet 이든 JSP 이든 이 데이터들을 받아서 처리 가능하다. (사용객체, 메소드 동일) * HTML 폼 만들기 : form.html 각각의 form element 들에는 반드시 name attribute 가 있어야 한다. * 폼 데이터를 받을 서블릿도 작성 * 서블릿에서 폼데이터 처리하기 post 방식으로 전달받았으니 do..

JSP 2022.03.24

[JSP] - doGet, doPost

웹컨테이너(tomcat) 에서는 위 클래스 ServletDemo 의 instance를 만들어 그 서블릿 객체를 초기화 작업을 합니다. ( init() 메소드 ) main() 메소드가 없어도 동작하는 이유는, 웹서버 엔진(톰캣)에서 main()이 작동하기 때문. * 서블릿 클래스 상속 구조 Servlet 인터페이스 | GenericServlet 추상클래스 | HttpServlet 클래스 | 서블릿 클래스 * Servlet 에 대해 Servlet interface를 implements하여 생성한 자바 클래스 서블릿은 서블릿 엔진에 의해 동작을 하며 여러 사용자에 의해 호출될 수 있다. (multi thread !) 서블릿의 인스턴스는 재활용 가능하다. (한번만 생성되면 된다!) * 서블릿 작성 규칙 . 서블..

JSP 2022.03.22