<<스터디 주제>>
- JSP (Action Tag)
<<스터디 내용>>
Include Directive와 Include ActionTag의 차이
Include Directive의 단점 :
- WAS가 할 일이 조금 늘어남에 따라 요청에 대한 응답이 조금 느려질 수는 있다. 단, 사용자가 느낄 정도의 속도 저하는 아니다.
- 고정된 file을 포함 시켜야 하기 때문에 정적인 포함의 개념이다.
Include ActionTag
동적페이지에서는 쓰레드를 이동시켜서 사용해야 할 일이 더 많기 때문에 사용하는 것을 권장
Index.jsp를 클라이언트가 요청하면 request . response 을 만들어주고 쓰레드를 만들어 줘서 footer.jsp로 넘어가서 명령을 실행해서 index.jsp에게 넘겨주고, index.jsp는 응답을 해준다.
스레드로 이동된 JSP문서(footer.jsp)는 response.senderror or sendredirect로 url 주소 전달
JavaBean
JavaBean 클래스 : 웹프로그램(JSP)에서 전달값을 저장할 목적의 클래스
DAO에서 가져다 쓸 땐 DTO 라 부름
WEB에서 가져다 쓸 땐 Javabean 클래스라 부름
request 내장객체는 forward를 안쓰고 redirect를 쓰면 사용할 수 없다.
JavaBean 클래스 작성규칙
⇒ 전달값의 이름(입력태그의 name 속성값)과 동일한 이름으로 필드 선언 ⇒ public 접근지정자를 이용한 기본 생성자(매개변수가 없는 생성자) 작성 ⇒ 필드값을 반환하는 Getter 메소드와 필드값을 변경하는 Setter 메소드 작성 - 필드명 이용
useBean 태그 :
내장객체에 저장된 속성값을 인스턴스로 반환받아 저장하거나 인스턴스를 생성하여 내장객체의 속성값으로 저장하는 기능을 제공하는 태그 - 인스턴스 제공
형식) jsp:useBean id="식별자" class="클래스" scope=”스코프”></jsp:useBean>
- id 속성(필수) :
반환(생성)되는 인스턴스를 저장하기 위한 이름(변수명)을 속성값으로 설정
⇒ 내장객체에 저장되는 속성값의 속성명을 표현하기도 한다.
- class 속성(필수) :
반환(생성)되는 인스턴스의 자료형(클래스)를 속성값으로 설정
- scope 속성(선택) :
page(기본), request, session, application 중 하나를 속성값으로 설정
기존의 표현방식과 동일한 기능을 가진 표현 방식이다.
Hewon hewon=new Hewon(); request.setAttribute(’hewon”, hewon);
= <jsp:useBean id="hewon" class="xyz.itwill.bean.Hewon" scope="request"/>
hewon이란 인스턴스를 new를 통해 만들고 속성값을 주는 방식과 동일!!!
setProperty 태그 :
useBean 태그로 제공된 인스턴스의 필드값을 변경하는 기능을 제공하는 태그
⇒ JavaBean 클래스의 Setter 메소드를 호출하는 명령과 유사한 기능을 제공
형식) <jsp:setProperty name="식별자" property="필드" value=”값”></jsp:setProperty>
- name 속성(필수) : useBean 태그로 제공되는 인스턴스의 식별자(id 속성값)을 속성값으로 설정
- property 속성(필수): useBean 태그로 제공되는 인스턴스의 필드명을 속성값으로 설정 ⇒ 필드명을 이용하여 선언된 Setter 메소드를 호출하여 인스턴스의 필드값 변경
- value 속성(선택): useBean 태그로 제공되는 인스턴스의 필드명을 속성값으로 설정= <jsp:setProperty name="hewon" property="name" value="홍길동"/>⇒ 전달되는 이름(입력태그의 name 속성값)과 property 속성값(Java 클래스의 필드명)이 동일해야만 전달값을 반환받아 필드값으로 변경할 수 있다.= <jsp:setProperty name="hewon" property="name"/>
- hewon.setName(request.getParameter(name);
- value 속성을 생략하면 JSP 문서 요청시 전달된 값을 반환받아 필드값으로 변경
- hewon.setName(”홍길동”);
property 속성값을 [ * ] 로 설정한 경우 모든 전달값을 반환받아 필드값으로 변경
⇒ 전달되는 이름과 필드명이 동일해야만 전달값을 반환받아 필드값 변경 가능
**<jsp:setProperty name="hewon" property="*"/>**
request.getRequestDispatcher("useBean_print.jsp").forward(request, response);
= <jsp:forward page="useBean_print.jsp"/>
※ DTO 규칙!
필드값과 컬럼값을 같게 할것!
Mybatis에서 꼭 지켜져야 할 규칙
getProperty 태그 :
useBean 태그로 제공된 인스턴스의 필드값을 반환하는 기능을 제공하는 태그
⇒ JavaBean 클래스의 Getter 메소드를 호출하는 명령과 유사한 기능을 제공
형식) <jsp:getProperty name="식별자" property="필드명"></jsp:getProperty>
- name 속성(필수) : useBean 태그로 제공되는 인스턴스의 식별자(id 속성값)을 속성값으로 설정
- property 속성(필수): useBean 태그로 제공되는 인스턴스의 필드명을 속성값으로 설정 ⇒ 필드명을 이용하여 선언된 Getter 메소드를 호출하여 인스턴스의 필드값 변경
Hewon hewon = (Hewon)request.getAttribuet("hewon");
= <jsp:useBean id="hewon" class="xyz.itwill.bean.Hewon" scope="request"/>
WEB PROGRAM - JDBC
Connection Pool 은 WAS가 만들어두게 하는게 로딩이 가장 빠르다.
- JdbcDAO.java
- context.xml
- ojdbc11.jar
※ Server(tomcat) 에서 context.xml 또는 web.xml에서 바꾸는 것은 권장하지 않는다.
sql에서는 스네이크 표기법(JOIN_DATE)를 쓰지만 java에서는 특별한 일 아니면 사용하지 않음
카멜표기법으로 표시할 것(joinDate)
< WEB PROGRAM - JDBC 예제 중 발생에러 >

이 간단하고 허접해보이는 예제를 하면서 너무 많은 시간동안 에러를 만났음.
에러가 진짜 가지가지 너무 많이 발생하여 또 후회하지 않기 위해 기록을 남김.

-> DATE 타입의 컬럼에 STRING 타입의 데이터를 비교, 삽입을 하려해서 생긴 오류. STRING으로 컬럼 타입 변경 후 해결

-> INPUT TEXT 영역에 null 값에 대한 처리, DAO 메소드의 문법 오류 수정하여 해결

-> 습관적인 ; 삽입.

-> 전체적인 DAO 메소드를 대충 만들어서 생긴 오류. 컬럼명 제대로 맞추고, 컬럼의 데이터 타입을 다르게 해서 비교하게 만든 오류 확인 후 수정하여 해결.

-> String 값을 GET 방식으로 JavaScript에서 불러올 땐 반드시 ' ' 를 표현식(Expression) 밖에 써야한다.
잊지말자.
'Web Dev' 카테고리의 다른 글
| Ajax - 개념 및 DB 연동 (0) | 2022.02.15 |
|---|---|
| 67일차 Study (0) | 2022.01.20 |
| 63일차 Study (2) | 2022.01.13 |
| 62일차 Study (0) | 2022.01.11 |
| 61일차 Study (0) | 2022.01.11 |