분류 전체보기

[Spring_01] Spring MVC Project
SpringMVC (MVC : Model-View-Controller) Controller를 중심으로 Model과 View를 관리하며, DispatcherServlet이 모든 요청을 받아 Controller에게 전달 Controller는 요청을 처리하고, Model을 업데이트한 후에 적절한 View를 선택하여 반환 src/main/java의 vo패키지에 PersonVO클래스를 만들었을때 주로 xml에서 bean객체를 만들어준 뒤아래의 방법들로 값을 주입 할 수 있다. 1) si ( setter injection) : setter를 통해 값을 넣어줌 2) ci ( constructor injection) : 오버로딩 생성자를 통해 값을 넣어줌. 파라미터 순서대로 값을 넣어준다. 3) di(dependenc..

[Spring_00] Spring(스프링) 설치 방법
1. JDK11버전으로 변경하기 더보기 제어판에서 기존의 JDK8 삭제 후 JDK11버전으로 설치해준다. 삭제 후 11로 변경 2. 이클립스 접속 전 tomcat 설정 더보기 1)새폴더 만들기 - 새 폴더를 만들어 준다.C:\embedded_kmz_spring\util -util 폴더 생성 후 폴더 내부에 톰캣과 이클립스를 압축된 상태로 새 폴더에 옮겨 준 후 압축을 풀어준다. 2) ojdbc.jar 가져오기 오라클에 연결할 수 있도록 해주는 ojdbc6.jar를 아래의 경로를 통해서 가져온다. C:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib 복사한 ojdbc6.jar를 C:\embedded_kmz_spring\apache-tomcat-9.0.71\lib ..

[JSP_14] 회원 리스트 만들어보기
member_list.jsp : 회원 리스트를 만들기 위해서 table을 만들어준다. MemberVO : DB의 데이터를 저장하기 위해 VO를 만들고 setter,getter를 만들어준다 DBservice : DB접속 과정을 처리할 클래스 MemberDAO : singleton을 사용해 db와 jsp를 연결해줌

[JSP_12 중요!] EL 표기법 (간결하게 jsp 표현 가능)
EL표기법 : jsp에서 사용되는 표현식을 더 간결하게 사용할 수있도록 해 주는 표현형태 EL(Expression Language) - EL로 값을 표현하려면 jsp의 관리하에 있는 4개의 영역에서만 사용을 할 수있다 4개의 영역이란? 1) pageScope: 단 하나의 페이지(현재페이지)에서만 값을 저장하고 공유할 수 있다 일종의 private영역 2) *requestScope (가장많이쓰임!) : 지역개념으로 페이지가 닫히면 영역도 종료가 된다. 최대 두개의 페이지에서 값을 저장하거나 공유할 수 있다. 3) sessionScope : 전역 개념으로 브라우저가 완전히 종료되기 전까지는 영역이 살아있다. 같은 웹 브라우저 내에서 요청되는 페이지들에게 값을 공유 일종의 public같은 느낌 4) appli..

[JSP_11] JSON 표기법
JSON : 서로다른 플랫폼에서 데이터를 교환하기위해 정의되어있는 공통적인(약속된) 표기법 1.기본형태의 json구조 let p = {'name':'홍길동', 'age':30, 'tel':'010-123-4567'}; document.write( p.name + " / " + p.age + " / " + p.tel ); 2.배열형태의 json구조 (여러사람의 정보를 넣을 수 있음) let p_arr = [ {'name':'홍길동', 'age':20, 'tel':'010-123-4567'}, {'name':'김길동', 'age':30, 'tel':'010-888-9999'}, {'name':'박길동', 'age':40, 'tel':'010-222-7777'} ]; //배열의 0번째 방의 name / 0번방..

[JSP_10 중요] Ajax 비동기 통신
Ajax는 Asynchronous JavaScript and XML의 약자로, 웹 페이지에서 동적인 컨텐츠를 비동기적으로 로드하는 기술 이 기술은 기존에는 전체 페이지를 새로고침하여 데이터를 가져오던 방식을 대체할 수 있게 해준다. Ajax는 JavaScript를 사용하여 웹 페이지와 서버 간의 데이터 교환을 수행함. 이 기술은 XMLHttpRequest 객체를 사용하여 서버로부터 데이터를 가져옴. 이를 통해 사용자는 웹 페이지를 새로고침하지 않고도 새로운 데이터를 받아볼 수 있음 Ajax는 많은 웹 사이트와 애플리케이션에서 사용되며, 구글 지도나 페이스북 등의 대형 서비스에서도 사용됨. Ajax를 사용하고싶을때 넣어줘야하는 스크립트 // xhr.readyState // 0 : 초기화 오류 // 1,2,..

[JSP_09] 성적 관리 테이블 만들기 ( 생성, 추가, 삭제, 수정)
더보기 1. sjvo생성 하기 정보저장, 게터세터 만들기 2. dao 만들기 (데이터 베이스 접근해서 정보들을 모두 채워줄 수 있도록 ) dao에 sjdao라고 조회하고자 하는 테이블마다 따로따로 만드는게 좋음 dao에서 싱글톤 준비 _single하고 생성 _select 셀렉트로 성적테이블 전체적으로 조회 제네릭을 vo로 줘서 내용을 가져올 수 잇게 sql문을 sugntb_view로 조회해야 모두 가져올 수있음 3.student.jsp만들기 //학생 성적 정보를 조회해서 테이블로 표현 vo.setNo(rs.getInt("no")); 처럼 요소를 가져올 수있게 해준다 삭제 버튼을 눌렀을 떄 지우고싶은 학생의 번호를 지울 수 있도록 하는 준비단계 함수를 거치지 않고 (파라미터필요없음) sung_input.j..

[jsp_05] JSP에서 JDNI연결
같은이름이 많아서 import를 주의 // dbcp를 10으로 잡아놨기 때문에 close()가 없으면 11번째 사용자는 접근이 불가 // DB연결후 원하는 작업을 끝낸 후 반드시 클로즈로 빠져나가야 함 conn.close(); form태그 name속성 input,text태그에만 name속성지정가능 button클릭시 넘어게하고싶을때 oncllick this.form매개변수 form태그안에 내용을 넘김 js에서 함수를통해 f로 name을 넘김 f,action 파라미터를 어느 파일에 보낼건지 지정하는곳 f.method : get방식으로 받을 지 post방식으로 받을지 정함 안쓰면 get f.submit f폼태그안에 name속성을 가진애들을 파라미터로 보내겠다

[JSP_04] 이클립스(eclipse)에서 (데이터 베이스)DB 연동하기 전 개발 환경 설정 / DBCP = maxActive
DB연동을 위한 최소한의 라이브러리들 context.xml password= maxActive="10" maxIdle="10" maxWait="1"/ maxActive="10" maxIdle="10" maxWait="1" maxActive : 최대 연결 수 = DBCP - 현재 프로그램에서 db에 연결하는 시간이 만약 1초라면 10명이 db접근을 시도할 경우 10번째 사용자는 10초 뒤에나 정보를 받을 수 있다. 이렇게 되면 뒤에 접근하는 유저는 너무 오랜시간을 대기해야하므로, 내부적으로 스레딩 처리를 통해서 10개 만큼의 공간을 미리 확보. 이와같이 대기시간을 최소화 하여 db에 효율적으로 접근할 수 있도록 하는 개념을 DBCP(database connection pool) 라고 한다. maxWait ..

[JSP_03] t_param 예제
https://korany0410.tistory.com/entry/JavaScript-form-%EC%A4%91%EC%9A%94%ED%95%9C-%ED%83%9C%EA%B7%B8 [JavaScript] form 중요한 태그!! 태그 : 서버로 값을 전송하기 위해데이터를 스크립트 영역으로 옮겨주기 위한 태그 HTML 삽입 미리보기할 수 없는 소스 form 1 : form 태그의 이름을 id로 지정했을때 name속성 : form태그 내에서만 input korany0410.tistory.com String tel = request.getParameter("tel"); %> 이름 나이 전화번호

[JSP_02] VO
VO (Value Object) : 여러가지 정보들을 묶어서 하나의 클래스를 관리하기 위한 개념 ArrayList pList = new ArrayList(); 로 만드는것보다 List pList = new ArrayList(); 부모 인터페이스와 자식 클래스 형태로 만드는것이 조금 더 효율적! package vo; public class PersonVO { //VO (Value Object) : 여러가지 정보들을 묶어서 하나의 클래스를 관리하기 위한 개념 private String name; private int age; private String tel; public String getName() { return name; } public void setName(String name) { this.na..

[JSP_01] JSP의 정의와 Scriptlet<% %>
jsp : java server page html만으로는 불가능한 연산, 라이브러리 등을 사용할 수 있는 언어 servlet만으로는 한계가 있는 디자인적인 부분을 쉽게 할 수 있도록 도와준다. jsp로 만들면 반드시 서블릿을 자동으로 거쳐서 웹페이지에 표현된다. jsp내부에서 서블릿이 가지고 있는 request요청, response응답 처리객체를 가져다 쓸 수 있다 : 스크립트릿 (scriptlet) 스크립트릿은 jsp에서 자바코드를 사용하고자 할 때 지정하는 영역 화면에 바로 출력이 가능하다 jsp헤더 - 페이지 인코딩 , import등의 설정을 위해 반드시 필요한 영역 스크립트 릿 - jsp에서 자바코드를 사용하고자 할때 지정하는 영역 (지역변수 : 화면에서 새로고침할때마다..

[Servlet_03] JSP파일에서 Servlet파일로 데이터 전송 예제 (calc, jumin)
1.cal.jsp 1) 영역에서 태그안에서 name을 지정해줌 2) 1) jsp파일에서 파라미터로 넘기고싶은 것을 form 태그의 name으로 지정 2) form태그의 name은 su1, su2 3) this.form은 button을 감싸고 있는 form태그를 의미한다. 4) function에서 f.submit으로 servlet에 파라미터를 넘긴다 5) form 테이블 내부의 action="calc.do" 로 인해 servlet에 calc.do?su1=3&su2=2형태로 전송 (1) JSP 파일에서 파라미터로 넘기고 싶은 것을 form 태그 속성 name으로 설정(name="nation") (2) value 값이 parameter로 넘어감. (value = "kor") (3) greet.do?nation..

[Servlet_02] jsp파일에서 Servlet파일로 데이터 전송 (form태그 활용)
[calculator 예제] calculator.jsp --> Calculator.java jsp에서 파라미터를 넘겨 --> servlet파일(.java)로 데이터 전송하기 1.cal.jsp 1) 영역에서 태그안에서 name을 지정해줌 2) 1) jsp파일에서 파라미터로 넘기고싶은 것을 form 태그의 name으로 지정 2) form태그의 name은 su1, su2 3) this.form은 button을 감싸고 있는 form태그를 의미한다. 4) script영역에서 함수function으로 servlet명 calc.do를 넘김 5) form 테이블 내부의 action="calc.do" 로 인해 servlet에 calc.do?su1=3&su2=2형태로 전송 2. calculator.java 1) jsp 파일..

[Servlet_01] 서블릿의 정의
- 서블릿이란? servlet = server + let 1) 웹응용프로그램을 만드는 자바기술, 실행된 결과값을 html구조로 돌려준다 2) html은 할 수없는 동적인 움직임을 구현할 수 있다. 3) 자바언어로 작성되어있어 자바의 일반적인 특징을 모두 갖고있다 4) 자동으로 스레딩 처리가된다 (동시다발적인 클라이언트의 요청에 대응하는것이 용이) - HelloAction 예제 1) url매핑(/hello.do)이 호출되면 request(요청처리객체), response(응답처리객체)가 실행된다 2) 응답처리객체를 통해서 브라우저에 결과를 표기할 수있다 package action; import java.io.IOException; import java.io.PrintWriter; import javax.se..

[tomcat] 이클립스(eclipse)와 톰캣(tomcat) 연결과 설정
9090으로 변경 후 저장 아래 경로로 lib 들어오기 apache_tomcat-9.0.71 > we 두개 파일 모두 복사 후 lib로 접속 후 붙여넣기! -- 이클립스 접속 후 work 로 경로 지정 utf-8로 변경 use external web browser로 변경 add 후 톰캣 경로 잡기 ----

[DBMS_16] VIEW (원하는 정보로만 구성된 조회 목적 가상 테이블 )
1.뷰의 생성구문 create view 뷰이름 as sql문(select문) ; 예) 사원 테이블에 부서번호 30인 사원들의 뷰 생성하기 create view emp30 as select * from employee where dno=30; CREATE or REPLACE VIEW myemp( empno, hire, job ) AS --컬럼의 별칭 SELECT employee_id, hire_date, job_id FROM employees; --모든 컬럼 조회할 수 있는 view 테이블 CREATE or REPLACE VIEW myemp AS SELECT * FROM employees; -- 사원테이블의 모든정보(s.*)에 full_name을 추가한 VIEW CREATE or REPLACE VIEW m..

[DBMS_15] SEQUENCE(중복되지 않는 연속 번호 만들기 ex.기본키)
시퀀스란 : 중복되지 않는 연속적인 번호를 만들어 주는 키워드 (회원번호, 일련번호) 형식 CREATE SEQUENCE 시퀀스명 START WITH 시작값(기본값1) INCREMENT BY 증가값(기본값1) MAXVALUE 최대값(기본값은 거의 무한대) MINVALUE 최소값 CACHE / NOCHACHE (시퀀스의 속도를 위한 캐쉬 사용) 시퀀스 만들기 CREATE SEQUENCE --goods테이블 생성 CREATE table goods( no NUMBER(3) primary key, name VARCHAR2(200) unique ); -- goods테이블에서 사용할 시퀀스 지정 CREATE SEQUENCE goods_no_seq nocache; --테이블에 값 입력 INSERT INTO goods ..
[DBMS_14] TRANSACTION (rollback 과 commit)
트랜잭션이란? DB의 상태를 변화시키기 위해 수행하는 작업의 단위 INSERT / DELETE / UPDATE 작업을 완료한 뒤 COMMIT 필수! 더보기 [DBMS_02] TABLE 문법 정리 1. CREATE table - 테이블 생성하기 person table 생성 CREATE table Person( id NUMBER(3) primary key, --기본키 name varchar2(50) ); 더보기 member_t 테이블 생성 create table member_t( id varchar2(50), pwd varchar2(20) not null, -- null값 korany0410.tistory.com 1. 커밋 안했을때 rollback 하기 -- 사원테이블의 전체 사원 수 조회 SQL> sele..

[DBMS_13] 서브 쿼리 (SELECT 문장 안에 SELECT 중첩)
여러번의 DB접속이 필요한 상황을 한번으로 줄여 속도증가에 도움을 줄 수 있다. 서브쿼리를 사용하는 곳 1. WHERE , HAVING 절 예제) 사원테이블에서 이름이 Michael이고 직종이 MK_MAN인 사원의 급여보다 초과해서 받는 사원들의 정보를 사번, 이름, 직종, 급여 순으로 출력 첫번째 select접근) 이름이 마이클이고 직종이 MK_MAN인 사원의 급여 구하기 SELECT salary FROM employees WHERE first_name = 'Michael' AND job_id = 'MK_MAN'; 두번째 select접근) 첫번째 select로 얻은 급여값 13000을 초과하는 직원을 조회 SELECT employee_id, first_name, job_id, salary FROM em..

[DBMS_12] HAVING절 ( GROUP함수의 조건 비교는 WHERE대신 HAVING)
HAVING 그룹함수를 포함하고 있을 때 조건을 비교할 때 WHERE 대신 HAVING을 사용한다! 예제1) 직종, 부서별 인원수를 출력하되, 인원수가 10명 이상인 부서만 출력 SELECT department_id, COUNT(*) FROM employees GROUP BY department_id WHERE COUNT(*) >= 10; -- 그룹함수를 포함하고 있을땐 WHERE절에서 조건을 비교하지 못한다 HAVING COUNT(*) >= 10; -- HAVING을 사용해야 함 예제2) 직종, 직종별 최대 급여를 출력하되, 최대급여가 5000을 초과하는 결과만 출력 SELECT department_id, MAX(salary) FROM employees GROUP BY department_id HAVI..

[DBMS_11] GROUP BY (그룹 함수를 일반 함수와 사용할 수 있게)
GROUP BY 원래 그룹함수와 일반컬럼은 함께 조회할 수없다! (그룹함수는 딱 한개만의 결과를 출력해야해서 일반컬럼이 추가 될 수 없기 때문) SELECT COUNT(*), first_name FROM employees; SELECT job_id, COUNT(*) FROM employees; 그룹함수와 일반함수를 함께 조회하고싶다면 => GROUP BY를 사용해야 한다 그룹 함수란? 더보기 그룹함수란? 여러개의 행 또는 테이블 전체에 대하여 하나의 결과만을 가져오는 함수 그룹함수만 일반컬럼과 함께 사용될 수 없다 1) AVG() : 평균 구하는 함수 2) COUNT() : 행의 개수를 반환하는 함수 (null 값은 무시함) 3) MAX() : 최대값을 구하는 함수 4) MIN() : 최소값을 구하는 함..
[Java_08] 클래스 기초
public class Computer { //클래스의 구성요소 // 1)변수(속성,멤버) // 2) 메서드 // 1) 변수(속성,멤버..) // 컴퓨터를 만들기 위한 설계 작업 // Class(설계도)엔 메인메서드 만들지 않음 private String brand = "apple"; // 절대 바뀔 수 없게 만들어야함 // private 접근제한자로 정의돼있기 때문에 타 클래스에서 접근 불가 // c3.brand = "samsung";(apple => samsung)접근 불가 public int ssd = 256; int ram = 16; float cpu = 2.4f; String color = "white"; // 2) 메서드 // 컴퓨터의 성능을 확인하기 위한 메서드 (기능) // 메서드 : 반복..

[Java_07] String method
// String클래스 메서드(기능)들 // 메서드란 어떤 작업을 수행하기 위한 명령문의 집합 // 반복적으로 사용되는 코드를 줄이기 위해 쓰는 개념 0) Integer.parseInt(num) : 정수형태의 String을 진짜 숫자로 만드는 메서드 중요!! String클래스의 메서드는 아니지만 많이 사용함! 정수형태의 문자열(String)을 진짜 숫자로 만들어주는 메서드 String num = "10"; //int a = 10; int a = Integer.parseInt(num); System.out.println( a + 1 ); 값: 11 1) .length() : 문장의 길이 String name = "Hong Gil Dong"; int len = name.length(); System.out...

[Java_06] String (스트링 클래스)
1. 객체란 앞글자가 대문자인 클래스로 만든것은 변수가 아닌 객체 이다! String s1 = "abc"; s1 은 객체 (Scanner sc의 sc도 객체임) 사실 변수가 아니지만 String만 변수라고 불러도 괜찮음 2. 객체 생성 방법이 두가지 (암시적, 명시적) 1) 암시적(주소값 같음), 명시적(주소값 다름) 객체 생성 // 암시적 객체생성 String s1 = "abc"; String s2 = "abc"; // 명시적 객체 생성 String s3 = new String(); String s4 = new String("abc"); 2) 객체간의 값을 비교 .equals(값 비교) , ==(주소 비교) 암시적으로 객체를 생성시 객체의 값은 같은 heap 메모리를 공유하기 때문에 주소값이 같다. 하..

[Java_05] multi_array
2차원 배열의 모든 값을 출력할 땐 2중 for문이 필요! 중요! test.length -> 큰 방의 개수 test[i].length -> 각 큰방에 포함되어 있는 작은 방의 개수 // 다차원 배열 // 1차원 배열이 2개 모이면 2차원 배열 // 1차원 배열이 3개 모이면 3차원 배열 int[][] test = new int[2][3]; // 큰방 2개 작은 방 3개 test[0][0] = 10; test[0][1] = 20; test[0][2] = 30; test[1][0] = 40; test[1][1] = 50; test[1][2] = 60; System.out.println(test[0][1]); //20 System.out.println(test[1][1]); //50 System.out.pri..
[Java_04] single array
배열이란 : 같은 자료형 끼리 모아둔 하나의 묶음 효율적인 자료관리를 위해 필요하다!] 1차원 배열의 선언과 생성과 초기화를 동시에 하는 법 int[] arr = {1, 2, 3, 4, 5, 6}; int su1 = 100; int su2 = 200; int su3 = 300; int su4 = 400; System.out.println(su1); System.out.println(su2); System.out.println(su3); System.out.println(su4); //1) 배열 선언 int[] arr; //2) 배열 생성 arr = new int[5]; //3) 초기화 arr[0] = 10; arr[1] = 20; arr[2] = 30; arr[3] = 40; //배열에 존재하지 않는 i..