일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 |
- 생성자오버로드
- 예외처리
- 예외미루기
- 자동차수리시스템
- 한국건설관리시스템
- NestedFor
- 환경설정
- GRANT VIEW
- 인터페이스
- 집합_SET
- 대덕인재개발원
- Java
- 정수형타입
- EnhancedFor
- cursor문
- 제네릭
- 참조형변수
- 어윈 사용법
- 오라클
- 사용자예외클래스생성
- abstract
- exception
- 메소드오버로딩
- 객체 비교
- oracle
- 추상메서드
- 컬렉션프레임워크
- 자바
- 컬렉션 타입
- 다형성
- Today
- Total
목록2023/11 (128)
거니의 velog
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/c1GSAb/btsAbdcryCZ/yyBAKa8ew7icD5rAE0Fh5K/img.png)
[js06.html] JS06 1 2 3 4 5 6 7 8 9 0 CALL - http://127.0.0.1:8000/static/js06.html * jQuery로 바꾸기 [jq01.html] JS01 Good Morning click - http://127.0.0.1:8000/static/jq01.html [jq02.html] JS02 + = - http://127.0.0.1:8000/static/jq02.html [jq03.html] JS03 출력단수 2단 3단 4단 5단 6단 7단 8단 9단 출력하기 - http://127.0.0.1:8000/static/jq03.html [jq04.html] JS04 시작별수 : 끝별수 : - http://127.0.0.1:8000/static/jq04.html..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/qypeW/btsAaIDKvwa/lmERX0ZT0BMKUfSrtL7Nl0/img.png)
[core01.jsp] JSP 표준 태그 라이브러리 INDEX CH17 browser 변수 값 설정 User-Agent : Host : Accept : Accept-Language : Referer : Connection : Cache-Control : User-Agent : browser 변수 값 제거 후(userAgent) User-Agent : - http://localhost/ch17/core01.jsp [core02.jsp] JSP 표준 태그 라이브러리 INDEX CH17 숫자 : 전송 [core02_process.jsp] JSP 표준 태그 라이브러리 INDEX CH17 는 짝수입니다. 는 홀수입니다. - http://localhost/ch17/core02.jsp [core03.jsp] JSP ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bjK2lL/btsAcSZSfGI/QAzWEV5dLOQSimV0lkzjZK/img.png)
(3) @RequestParam 이용해 Map에 매개변수 값 설정하기 * 전송되는 매개변수의 수가 많을 경우 일일이 변수를 저장해서 사용하려면 불편하다. 이번에는 전달되는 매개변수 값들을 Map에 저장해 보자. 1. LoginController 클래스를 다음과 같이 작성한다. @RequestParam Map info는 이름이 info인 Map에 매개변수 이름을 key로, 매개변수 값을 value로 저장하는 구문이다. @RequestMapping(value = "/test/login3.do", method = { RequestMethod.GET, RequestMethod.POST }) public ModelAndView login3(@RequestParam Map info, // @RequestParam을..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/Fu2mQ/btsz8oTND3Q/bEmtyoFh25rJcnQoQSLsHk/img.png)
3. 스프링 애너테이션 이용해 로그인 기능 구현하기 * 이번에는 스프링 애너테이션을 이용해 로그인 기능을 구현해 보자. 1. 다음은 로그인 기능과 관련된 자바 파일과 JSP 위치이다. 2. 실습 시 한글 깨짐 현상을 방지하기 위해 web.xml에 한글 필터 기능을 설정한다. encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 encodingFilter /* 3. 스프링 애너테이션 기능을 이용해 로그인 시 전송된 ID와 이름을 JSP에 출력하도록 LoginController 클래스를 작성한다. method={RequestMethod.GET, RequestMethod.POST}) 설정은 GET 방식과 POST..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/GfGRC/btsz6lCXkM5/dT4guEMjKoD4w4CvhVFGOk/img.png)
1. 스프링 애너테이션이란? * 앞에서 살펴봤듯이, 스프링 2.5까지는 DI나 AOP 같은 기능은 따로 XML 파일로 설정한 후 애플리케이션에서 사용했다. 그러나, 애플리케이션의 기능이 복잡해짐에 따라 XML 설정 파일의 내용도 복잡해졌고 관리에도 문제가 생기기 시작했다. * 따라서 스프링 3.0 부터는 DI와 같은 자바 코드와 관련된 설정은 직접 코드에서 할 수 있게 애너테이션(Annotation)이라는 기능을 제공한다. 현재 스프링 기반 애플리케이션에서는 XML에서 설정하는 방법과 애너테이션 기능을 사용하는 방법 두 가지를 혼합해서 사용하고 있다. (1) 스프링 애너테이션 제공 클래스 * 스프링에서 애너테이션을 사용하려면 먼저 스프링에서 제공하는 애너테이션 관련 클래스를 XML 설정 파일에서 빈으로 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bSfeeZ/btsz6Pqfz27/6KYEBsAmFP6HfbBgoz9YK1/img.png)
4. 스프링 트랜잭션 기능 적용해 계좌 이체 실습하기 * 이번에는 계좌 이체 기능을 스프링의 트랜잭션 기능을 적용하여 실습해 보자. * 먼저 SQL Developer 로 예금자 계좌 정보를 저장하는 테이블을 생성한다. 그리고 예금자의 계좌 정보를 다음과 같이 추가한다. create table cust_account( accountNo varchar2(20) primary key, -- 계좌 번호 custName varchar2(50), -- 예금자 balance number(20,4) -- 계좌 잔고 ); insert into cust_account(accountNo, custName, balance) values('70-490-930', '홍길동', 10000000); insert into cust_a..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b6Z0yv/btsAajDQkRd/opW3fWAyK38dBL8hGNInDK/img.png)
1. 트랜잭션 기능 * 스프링은 트랜잭션 기능을 마이바티스 기능과 연동해서 사용한다. 트랜잭션 기능은 XML 파일에서 설정하는 방법과 애너테이션을 이용하는 방법이 있다. XML로 설정하는 방법은 설정 파일이 복잡해지면 불편하므로 현재는 애너테이션으로 트랜잭션을 적용하는 방법을 더 선호한다. 따라서 이번에는 애너테이션을 이용해 트랜잭션 기능을 구현해 보자. * 트랜잭션(Transaction)은 여러 개의 DML 명령문을 하나의 논리적인 작업 단위로 묶어서 관리하는 것으로, All 또는 Nothing 방식으로 작업 단위가 처리된다. 즉, SQL 명령문들이 모두 정상적으로 처리되었다면 모든 작업의 결과를 데이터베이스에 영구 반영(commit)하지만 그중 하나라도 잘못된 것이 있으면 모두 취소(rollback)..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/qtDBv/btsz94T4dSN/3MlBI3a2lj2NHLhq7429Z0/img.png)
1. 스프링-마이바티스 연동 관련 XML 파일 설정하기 * 우리는 이전 과정을 통해 웹 프로젝트에서 마이바티스 라이브러리를 추가하여 독립적으로 사용할 수 있음을 알았다. 스프링 기반 웹 애플리케이션을 개발할 때 마이바티스는 데이터베이스 연동 기능을 담당하기 때문에 스프링에서는 간단한 설정만으로 쉽게 마이바티스를 사용할 수 있다. * 이번에는 스프링과 마이바티스를 연동해 회원 관리 기능을 구현해 보자. 우선 스프링 버전 3.0.1을 기준으로 수동으로 직접 설정한 후 관련 XML 파일들을 설정한다. * 메이븐을 통해 중앙 서버에서 자동으로 라이브러리를 받아서 사용하는 방법도 있으나, 이는 나중에 살펴보도록 한다. 1. 새 프로젝트 pro24를 만들고 스프링 라이브러리를 복사해 lib 폴더에 넣는다. * 실습..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/plfni/btsz61K13rB/qTOQKykFX7ZWkBmzlqK4m1/img.png)
5. 마이바티스의 동적 SQL문 사용하기 * 이번에는 마이바티스의 동적 SQL 기능이 왜 등장했는지 그리고 어떻게 사용하는지 알아보자. 다음 첫 번째 SQL문은 아무 조건 없이 모든 회원 정보를 조회하는 SQL문이다. 두 번째와 세 번째 SQL문은 첫 번째 SQL 문에 대해, 두 번째는 ID로, 세 번째는 ID와 비밀번호를 조건절로 하여 회원 정보를 조회하는 SQL문이다. (1) select * from t_member; (2) select * from t_member where id = 'hong'; (3) select * from t_member where id = 'hong' and pwd = '1234'; * 이 SQL문들은 select문에 대해 각각의 조건절에 따라 각각의 SQL문을 따로 작성해..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/puKjs/btsz1K3WVmG/AuFTL4Nkl8xxwtRkPTuAEk/img.png)
(5) HashMap을 이용한 회원 정보 추가 * 앞에서는 MemberVO에 회원 정보를 설정한 후 SQL문으로 전달하여 테이블에 추가했다. 이번에는 HashMal에 회원 정보를 설정한 후 추가해 보자. 1. member.xml을 다음과 같이 수정한다. insert 문의 parameterType을 HashMap으로 지정한다. 회원 정보들은 HashMap의 key를 이용해 가져온다. 2. MemberServlet 클래스를 다음과 같이 작성한다. 브라우저에서 전달된 회원 정보를 HashMap에 key/value로 저장한 후 MemberDAO의 insertMember2() 메서드로 전달한다. }else if(action.equals("insertMember2")) { String id=request.getPa..