오늘은 다소 직관적인 방법으로 정리해봤다.
ppt로 정리하면서 메서드, 데이터, 화면의 흐름을 읽는게 
공부하는데 훨씬 도움이 많이된다.




<DB연결하여 화면구현하기!>

1. Student SQL테이블 생성 

2. 변수명을 맞추어 VO class 생성 

3. DAO 클래스 생성 (java)  ****** DAO클래스에는 속성, 메서드, 생성자가있다.

4. jsp화면에서 DAO를 객체로 만들어 접근자 생성 

5. 접근자를 통해 데이터를 가져와 for each 구문활용하여 데이터할당 

질문하며 깨닫게 된
주요포인트 (개인적 발전을 위한)

 

1. 왜 dao.getStudent(); 라는 식으로 메서드 자체를 사용하여 데이터를 끌어오는가? 라는 질문 

==> jsp 화면에서 ArrayList타입으로 <Student>변수를 담아준 후 , 이름은 emplist로 설정해준 후, 

dao.getStudent()메서드의 결과값을 넣어주고 dao.getStudent() 라는 직접인용말고 emplist를 그자리에 대입해주었더니

같은 결과값이 나왔다. 이것은 사용하는사람의 편의에 따라 다른것

(어떤 것이 효율적인지는 개인의 판단일 것 같아요)

2. tot = 0; 은 왜 for구문 위에 사용하는가?

for()구문 내에 사용하면, for 구문 내에서만 유효하므로, 다시 for구문이 시작될때 새로생성되는 tr에서는 초기값으로 변한다. 그렇기 때문에 한번 회전한 후에 평균점수가 [누적처리] 되게 하기위해서  for구문 바깥에 작성한다. 

3. emplist.size()를 사용하여 tot를 나눠주는이유 

ArrayList에서 size()메서드의 의미는 배열의 갯수를 말한다. 그러므로 배열의 갯수는 학생의 수를 의미한다. 

tot : 학생들의 평균값이 누적으로 담긴 값 

emplist.size(): 학생 수 

이므로 전체 평균점수가 나오겠죠. 

3. for each 구문

왜인지, for each구문은 아직도 헷갈리는데,

for( 타입명  접근자.객체명) {

접근자.get***() 

방식으로 데이터를 할당 및 호출해주어야 함

'왜' 써야하는지, '왜' 이런 형식으로 쓰이는지 

개발을 하면서 피해야 할 것 중 하나는 모든 것을 "다 이해하고 넘어가려고 하지마라" 는 조언이 대다수였지만,

오류를 해결하거나 문제를 맞닥트릴 경우, 조금 더 생산적으로 해결해나가기 위해서는 반드시 이해해야하는 부분이 있다. 그 중 기초가 형식이라고 생각한다. 눈으로 익히고 감으로 익히는 것 만이 방법은 아닐 것이므로 오늘에서야 조금씩 뜯어볼 여유가 생긴다. 

 

1. 시작하는 형식

 


페이지 형식에 대해 알아보자!

 

1. <%@ page> 의 형식은 무엇이고, 

contetType = "text/html; charset= UTF-8" 

pagnEncoding ="UTF-8" 

import = "java.util.*" 은 무엇인가.

 

page 디렉티브 (지시자)

<%page%>는 jsp페이지에 들어갈 정보를 입력하기 위해서 사용되며, 이 디렉티브를 사용하면 jsp페이지가 

"어떤 문서를 생성하고"

"어떤  자바클래스를 사용하고""세션에 참여하는지""출력 버퍼의 존재여부" 등jsp가 실행됨에 있어 형식과 내용을 제한할 수있다. 

 

1. contentType

먼저 contentType은 page디렉티브의 contentType속성은 JSP페이지가 생성할 문서의 타입을 지정한다. "text/html","text/xml","text/plain" 보통의 경우 이 세가지로 많이쓰이며, "text/html" 가 기본으로 쓰인다.

2. import

import 는 말그대로 '호출'한다는 의미로, java class를 호출할때 사용된다. JSP의 페이지는 자바를 기반으로 하고있으며 자바언어가 제공하는 클래스들을 사용할수 있다. 이때 JSP페이지에서 자바의 클래스를 사용하기 위해서는 실제 자바가 있는 위치의 경로를 지정해줄 수 있으며, [.*]를 표시해준다면 패키지 내 전체를 호출하는 효과를 가진다. 

덧붙여서는 java.util 의 속성을 지닌 다양한 클래스를 불러올 수 있다. (DATE 등)

 

3.pageEncoding ( 이 부분은 이해가 잘 안가서 쉬운 설명이 어렵다. 아시는 분 계시다면 댓글 부탁드려요)

 


                                        다음은 request캐릭터 인코딩 메소드 형식에 대해 알아보자!

reqeust.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=utf-8");

1. reqeust.setCharacterEncoding("UTF-8");//전송시 사용 
: 한글을 입력하여 값을 전송할때는 한글일 경우 깨지지 않도록 처리하기위해 전달하는 방식 (get과 post방식을 모두 사용하며). 폼을 전송시 사용한다고 하면 이해가 빠르겠다.

2.response.setCharacterEncoding("UTF-8"); //출력시 사용 
'서블릿'화면에서 데이터 출력을 하기 위해서 out.println을 사용하는데 위의 코드 없이 out.print("");
로 출력한다면, ?? 이렇게 출력된다. 이것을 해결하기 위한방법이 위와같은 방법이다.

3. response.setContentType("text/html;charset=utf-8"); 
브라우저마다 문자코드를 해석하는 defult 기본값이 다르다. 그러므로 utf-8을 사용할 것이니 이걸로 사용해줘
라는 메세지를 브라우저로 전달하는 문잔ㅇ이 바로 위의 문장이다. 

 


 

경로메소드를 알아보자

request.getContextPath()는 프로젝트의 Context path명을 반환한다.

요청 : http://localhost:8080/example/test.jsp 

리턴값 : /example




request.getRequestURI()는 웹전체 경로(프로젝트명+ 파일 경로)까지 반환한다.

요청 : http://localhost:8080/example/test.jsp

리턴값 : /example/test.jsp 

 

 

출처: 

https://cbw1030.tistory.com/62

7. page 디렉티브(속성,contentType, charset, import,pageEncoding) : 네이버 블로그 (naver.com)

 

+ Recent posts