본문 바로가기
[JSP] 🔗/MVC (3) 실습 mvcProduct Dynamic Web Project> 2022. 1. 25.
[JSP] 🔗/MVC (2) 실습 mvcBoard Dynamic Web Project> 1. 모델클래스 만들기 (servlet이 모델클래스를 먼저호출) 2. view 만들기 3. ActionMap.properties 에 정보를 넣어준다 (Key와 Value의 쌍으로 / 요청url과 모델클래스) 4. 다이나믹 웹 프로젝트를 새로 생성하고 JavaSE 버전을 맞춰준다. ojdbc8.jar 파일을 WEB-INF/lib파일에 넣어준다. (데이터베이스 연동을 하려면 ojdbc8.jar가 꼭 필요!) * SQL문과 DB사이에 매개가 되는게 JDBC이다. 드라이버는 Java문법이 적용되서 만들어진 프로그램인데 ORACLE에서 배포하며 .jar 확장자로 압축된 형태이다. 그래서 jdbc드라이버가 꼭 있어야한다. DispatcherServlet.java.. 2022. 1. 25.
[JSP] 🔗MVC MVC 패턴 모델1 방식을 더 세분화. 단점은 파일이 더 늘어난다. 로직을 처리하는 모델과 결과 화면을 보여주는 뷰가 분리되 흐름 제어나 사용자의 처리 요청은 컨트롤러에 집중 Model 1 MVC - MVC 패턴 모델(Model) 비즈니스 영역의 상태 정보(데이터)를 처리한다. 넓은 의미로 자바빈과 DAO를 포함 하기도 한다. 뷰(View) 비즈니스 영역에 대한 프레젠테이션 뷰 (즉, JSP가 만드는 것 = 사용자가 보게 될 결과 화면)를 담당한다. 컨트롤러(Controller) 사용자의 입력 및 데이터의 흐름 제어를 담당한다. forward기법으로 request공유 (주로 request에 저장하고 그다음 session에 저장) ①Servlet을 만들어 작업해야하므로 main/webapp/test.jsp.. 2022. 1. 20.
[JSP] 🔗/EL & JSTL EL (Express Language; 표현 언어) (1) EL 특징 JSP의 네가지 기본 객체가 제공하는 영역의 속성 사용 집합 객체에 대한 접근 방법 제공 수치 연산, 관계 연산, 논리 연산자 제공 자바 클래스 메서드 호출 기능 제공 표현 언어만의 기본 객체 제공 일반적으로 MVC패턴일 때만 쓴다 데이터를 읽어오는 역할 (2) EL 표기법 ${expr} 식별자와 연결된 값을 출력한다. (표현식과 유사함.) (3) EL의 연산자 - 수치 연산자 : +, - , *, / 또는 div, % 또는 mod - 비교 연산자 : == 또는 eq, != 또는 ne, 또는 gt, = 또는 ge - 논리 연산자 : && 또는 and, || 또는 or, ! 또는 not - empty 연산자 1) 값이.. 2022. 1. 20.
[JSP] 🔗모델1 구조(3) 실습 m1_board Dynamic Web Project> 모델1 구조(2) 실습에서 추가되는 것은 페이징 처리 (작성된 유틸리티 클래스 이용) rownum : 호출할 때 레코드에 번호를 매겨준다. rownum을 사용할 때는 서브쿼리 형태로 명시한다. rownum값 뿐만 아니라 원하는 데이터도 다 나와야한다. 뒤에있는 서브쿼리가 테이블역할을 한다. (SELECT * FROM SBOARD ORDER BY NUM DESC) 컬럼이 많아져서 SQL문장코드가 길어지면 일일이 명시하기 불편하므로 전체를 다 읽어오게 하려고 한다. (rownum은 우리가 만든게 아니라 호출하면 oracle이 정보를 준다(의사열)) * 컬럼은 모든컬럼을 의미하기 때문에 rownum을 썼기 때문에 모든컬럼을 의미하지 못해서 에러가난다. *만.. 2022. 1. 18.
[JSP] 🔗모델1 구조(2) 실습 m1_member Dynamic Web Project> DTO/VO : 데이터 교환을 위한 객체 DAO : DB 접근을 위한 객체(db연동) JSP : ui작업 다이나믹 웹 프로젝트를 새로 생성하고 JavaSE 버전을 맞춰준다. ojdbc8.jar 파일을 WEB-INF/lib파일에 넣어준다. (데이터베이스 연동을 하려면 ojdbc8.jar가 꼭 필요!) * SQL문과 DB사이에 매개가 되는게 JDBC이다. 드라이버는 Java문법이 적용되서 만들어진 프로그램인데 ORACLE에서 배포하며 .jar 확장자로 압축된 형태이다. 그래서 jdbc드라이버가 꼭 있어야한다. 파일을 정리해서 생성하자. src/main/webapp/sql/table.sql 백업용 sql파일을 만들고, SQL Developer 에서 TAB.. 2022. 1. 15.
[JSP] 🔗JDBC와 커넥션 풀 JDBC (Java Database Connectivity) 자바에서 DB 프로그래밍을 하기 위해 사용되는 API JDBC API 사용 어플리케이션의 기본 구성 SQL문과 DB사이에 매개가 되는게 JDBC 커넥션 풀(Connection Pool) * 풀은 벡터구조로 만들어지는데 커넥션을 담아놓는다. 데이터베이스와 연결된 커넥션을 미리 만들어서 풀(pool) 속에 저장해 두고 있다가 필요할 때에 커넥션을 가져다 쓰고, 다시 풀(pool)에 반환하는 기법을 의미 - 데이터베이스 연동 프로그램의 문제점 데이터베이스에 연결하기 위해서 매번 커넥션(Connection) 객체를 생성할 때는 많은 시스템 자원이 요구됨. (객체 메모리 적재시 메모리에 객체를 할당할 자리 생성, 초기화 작업, 객체 미사용시 객체를 삭제.. 2022. 1. 15.
[JSP] 🔗모델1 구조(1) JSP 웹 어플리케이션의 구조는 크게 모델 1 구조와 모델 2 구조로 나뉜다. JSP에서 모든 로직과 출력을 처리하느냐 아니면 JSP에서는 출력만 처리하느냐에 따라서 모델 1 구조와 모델 2 구조로 구분된다. 모델 1 구조 모델 1 구조는 JSP를 이용한 단순한 모델이다. 보통 처음 JSP를 배울 때 사용하는 구조가 모델 1 구조인 데, 그 처리 구조는 아래와 같다. 모델 1 구조는 웹 브라우저의 요청을 JSP가 직접 처리한다. 웹 브라우저의 요청을 받은 JSP는 자바빈이나 서비스 클래스를 사용해서 웹 브라우저가 요청한 작업을 처리하고 그 결과를 클라이언트에 출력한다. JSP 페이지에서 웹 브라우저가 요청한 것들을 처리한다는 것은 JSP 페이지에 비즈니스 로직을 처리하기 위한 코드와 웹 브라우저에 결과를.. 2022. 1. 14.
[JSP] 🔗/AJAX(2) DB연동 DataBase연동하여 id 중복체크를 해보자 ch13-ajax 예제> SQL TABLE을 생성한다. 백업용으로 .slq파일을 생성해서 코드를 넣어놓는다. ※ 생성할 때 반드시 commit 해줘야한다! 또는 코드로 작성했을 경우엔 마지막에 COMMIT; confirmId.jsp> json방식은 텍스트만 보내니까 코드들 지워주고 contentType="text/plain; 으로 바꿔주고 경로가 다를경우 이 때 jsp와 jspf의 contentType이 일치해야 오류안난다. 전송방식을 post방식으로 하기위해 전송된 데이터 인코딩 처리한다 request.setCharacterEncoding("utf-8"); 아이디를 받아서 해당아이디가 있는지 확인하기위해 전송된 데이터 반환한다. String id = req.. 2022. 1. 13.
[JSP] 🔗AJAX(1) AJAX(Asynchronous JavaScript And Xml) 자바스크립트와 XML을 이용한 서버프로그램의 비동기 통신 서버프로그램과 연동할 수있는 메서드 중 하나 전에는 폼에 내용을 넣어서 요청했었는데 자바스크립트가 주소요청을 하면 서버에서 데이터만을 받고 받아온 데이터를 화면에 갱신할 수 있다.(화면의 일부분만 갱신할 수 있다.) 화면이 계속 바뀌지 않는 상태에서 서버에서 데이터를 요청하면 데이터만 주고 ui는 주지않는다. 이때 동기 란? 프로그램이 동작할 때 데이터를 받을 때까지 기다리는데 그 기다리는 동안 작업을 못한다. 비동기 란? 데이터가 올 때 까지 기다리지 않고 다음 작업을 수행한다. 데이터가 도착하면 이벤트가 발생하고 이벤트가 발생했을 때 연결된 function을 호출한다. html.. 2022. 1. 13.
[JSP] 🔗JDBC실습 - 상품게시판 전체적인 흐름을 보면 이렇다. (CRUD 작업) - sql파일을 만들어 테이블과 시퀀스 생성 num값을 시퀀스를 사용하는데 겹치지않은 유니크한 값을 만들어내려고 시퀀스를 이용하는 것이다. - include하는 .jspf Code - link하는 .css Code 더보기 @charset "UTF-8"; body{ padding:0; /* 0일 경우 px명시 안함 */ margin:0; } .page-main{ width:800px; margin:0 auto;/*중앙 정렬*/ } .result-display{ /* 안내문구 에러문구 보여줄 때 사용할 것 */ width:400px; height:200px; position:absolute; /* 중앙 */ top:50%; left:50%; transform:.. 2022. 1. 12.
[JSP] 🔗/db 연동 WEB-INF/lib에 넣으면 패스가 자동으로 걸린다 2022. 1. 11.