본문 바로가기

Programming/Java * Spring31

[JSP] JSP의 주요 구성 요소(템플릿 데이터, JSP 지시자, 스크립트릿, JSP 선언문, JSP 표현식) 1. 템플릿 데이터 ; 클라이언트에 전송될 데이터를 가지고 있으며, JSP 엔진이 자동으로 자바 코드를 생성한다 JSP 계산기 + - * / out.write("\n"); out.write("\n"); out.write("\n"); out.write("\n"); out.write("JSP 계산기\n"); 2. JSP 지시자 ; JSP에서 사용할 프로그래밍 언어 지정 ; 인코딩 타입 지정 ; JSP 페이지에 선언할 클래스 또는 패키지 정보 2019. 6. 3.
[JSP] JSP의 구동 원리 뷰 컴포넌트에서 JSP를 사용하는 목적은 HTML로 직접 처리할 수 있어 화면 만들기가 더 쉬워지기 때문이다. (JSP가 없으면 서블릿 자바코드 안에 HTML 코드를 넣어야 하는 번거로움이 있다.) 즉, JSP는 서블릿과 같은 기능을 하면서 HTML로 직접 처리를 할 수 있다. 예시를 통해 확인해보자. 위와 같은 코드를 실행했을 때 내부적으로는 다음과 같은 일이 벌어지고 있다. JSP 엔진이 JSP를 서비스 하기 전에 자바 클래스 파일을 생성한다. 빨간 박스 안의 코드를 JSP 지시자라고 부르는데, 이 JSP 페이지가 Java로 컴파일 될 것을 의미하며, 내부적으로는 자바코드가 생성된다. 따라서 JSP 안에는 브라우저에 출력될 템플릿 데이터와 자바 출력문 두 가지가 포함되어 있음을 확인할 수 있다. /*.. 2019. 6. 3.
[Java] 16. Annotation의 개념과 활용 개념 *애노테이션(Annotation) ; 일명 메타 데이터, JDK5에 포함 *용도 1) 컴파일러에 정보를 알려준다 2) 컴파일할때와 설치시의 작업을 지정한다 3) 실행할 때 별도의 처리가 필요할 때 4) 환경설정 파일을 대신할 때 *java standard version @Override : 인터페이스, 추상클래스 상속시 @Deprecated : 더이상 유효하지 않은, 사용 안 했으면 @SuppressWarnings : error(무조건 고쳐야 실행됨), warning(실행은 되지만 위험성을 경고) *java Enterprise edition @WebServlet ... @Target.키워드 (적용대상) - TYPE : 클래스/인터페이스/열거형 - ANNOTATOIN_TYPE : 어노테이션 - FIE.. 2019. 6. 3.
[JSP] get request vs. post request 비교 Get 요청 방식 Get 요청의 특징은 브라우저 상에 요청하는 정보가 노출됨 (url에 데이터가 포함됨) → 보안 취약, 대용량 데 이터 전송이 불가하다. 1) 웹 브라우저의 주소창에 주소를 입력 후 실행할 때 2) 링크를 클릭할 때 3) 입력폼의 method 속성을 get으로 지정했을 때 + - * / Post 요청 방식 Post 방식 url에 데이터가 포함되지 않고 주소만 나오며, 데이터는 메세지 본문에 포함.(Charles, Fiddler, Burp Suite 등의 프록시 툴로 본문 확인 가능) 바이너리 및 대용량 데이터의 전송이 가능해진다. 1) 로그인 폼 : 로그인 폼은 입력값 노출을 방지하기 위해 Post 방식을 사용한다 아이디: 암호: 2) 입력폼의 method 속성을 post로 지정했을 때.. 2019. 5. 31.
[Java] 15. JDBC 기본 셋팅 방법 1. jar 파일 가져오기 자바 프로젝트 우클릭 → Properties → Java Build Path → Add External Libraries → jar 파일 선택 2. import java.sql.*; 3. 메모리에 오라클 드라이버 객체를 로딩하기 DriverManager 내부에서 사용할 오라클 드라이버 객체를 생성해서 메모리에 로딩한다.(위치: Main 함수 위) static {//static 영역을 초기화 해준다 try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } } 4. Connection 객체를 생성하기 : 오라클에 접속 try { Co.. 2019. 5. 14.
[Java] 14. Buffered Input/Output Stream, 일반 Stream과 속도 비교 파일 입출력(I/O) 자바에서 데이터 입출력은 Stream을 통해 이루어진다. 프로그램을 기준으로 들어오면 Input(읽기), 내보내면 Output(쓰기)로 방향을 결정하고, 데이터의 교환을 위해서는 Input과 Output을 모두 만들어야 한다. 입출력과 관련된 모든 작업은 java.io 패키지에서 제공하고 있다. Input/Output Stream 바이트 기반 입출력 클래스의 최상위 클래스이자 추상클래스이다. 입출력할 데이터가 OS와 JVM을 거쳐 메모리에 1byte씩 전달된다. 이는 마치 쇼핑몰에서 주문한 상품이 모든 지역의 구매자에게 하나하나씩 전달되는 것과 같다. Buffered Input/Output Stream 필터 클래스 중에 버퍼(Queue 구조로 되어있는 임시 저장소)를 제공하는 클래스.. 2019. 4. 5.
[Java] Collection Framework 종류 2019. 4. 2.
[Java] 13. StringTokenizer 사용법, 예제 String 클래스에서 split()함수가 문자열을 쪼개 배열에 저장해주는 함수였다면, StringTokenizer 클래스는 보다 간단하게 문자열을 토큰 단위로 나눠주는 함수이다. 구분자의 default 값은 공백으로, 구분자를 입력하지 않으면 공백에서 끊어준다. String phoneNum = "TEL 82-02-997-2059"; StringTokenizer str1 = new StringTokenizer(phoneNum); while(str1.hasMoreTokens()) System.out.println(str1.nextToken()); 공백과 구분자를 모두 토큰으로 사용할 수 있다. StringTokenizer str2 = new StringTokenizer(phoneNum, " -"); whi.. 2019. 4. 1.
[Java] 12. Math Class - BigDecimal, BigInteger, MathContext BigDecimal 오차없는 실수 표현을 위한 클래스. 32bit 정수를 표현 가능하며, 숫자형으로 표현할 수 있는 범위를 넘었기 때문에 문자열로 값을 전달한다. // 소수점 오차 발생 double e1 = 1.6; double e2 = 0.1; System.out.println("두 실수의 덧셈: "+(e1+e2)); System.out.println("두 실수의 곱셈: "+(e1*e2)); // double형인 매개변수가 전달될때 이미 Error가 발생 BigDecimal b1 = new BigDecimal(1.6); BigDecimal b2 = new BigDecimal(0.1); System.out.println("두 실수의 덧셈: "+b1.add(b2)); System.out.println("두.. 2019. 4. 1.