분류 전체보기208 [2] JSP 내장 객체 JSP → Servlet 파일로 변환될 때, JSP/Servlet 컨테이너(Tomcat🐱)가 객체를 자동으로 생성해줌 out request response page config session application pageContext exception 2021. 1. 19. [1] JSP 태그 comment 주석 scriptlet 스크립트릿 ㄴ Java 코드를 작성함 expression 표현식 ㄴ Java 코드의 변수를 사용 directive 지시자 (페이지 환경설정) 2021. 1. 19. [0] 준비 eclipse 다운로드 및 EE버전 설치 Eclipse IDE for Enterprise Java Developers Apache Tomcat 다운로드 톰캣-이클립스 연동 eclipse → Windows > Show View > Servers → new > server → Apache > Tomcat v0.0 → Finish → Start Server 웹프로젝트 생성 eclipse → new > Dynamic Web Project → WebContent 폴더 > new > jsp파일 만들기 → Servers > new server > → 실행 (ctrl+F11) → 브라우저 결과물 확인 ㄴ Preferences > Web Browser > Use external web browser✓ > New > Ch.. 2021. 1. 19. JSP & Servlet JSP | Java Server Page ㄴ 자바로 서버 페이지 작성을 하기 위한 언어 (HTML+JSP 태그 사용) JSP : HTML 문서 안에 자바 코드 작성 + = Servlet : 자바 문서 안에 HTML 작성 package day00; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServle.. 2021. 1. 18. [7] 네모 그리기 실습예제 : Container & Component & Listener → 네모 그리기 구현 . 마우스를 '클릭-드래그'해서 사각형(JPanel)을 그림 . 마우스를 떼기 전까지 사각형 새로 그리기 . 마우스를 떼면 픽스된 사각형 유지 . 버튼(JButton)을 누르면 종료 * shift 키를 누르면 정사각형이 됨 2021. 1. 14. [6] Listener | Mouse, Motion, Action, Key 등 Listener | MouseListener, MouseMotionListener, ActionListener, KeyListener ... ㄴ 발생하는 이벤트를 가져올 수 있음 Listener 인터페이스를 상속받음 ㄴ method overiding 필요한 Container 또는 Component에 Listener를 달아줌 ㄴ add***Listener(this) 오버로드한 메소드를 작성 2021. 1. 14. [4] Component | Jbutton Component | Jbutton ㄴ Component는 Container에 담을 수 있다 Jbutton을 담을 수 있는 Jpanel을 준비 Jpanel에 ActionListener 인터페이스 상속 Jbutton 생성 → 설정 ㄴ setBounds(x,y,w,h) ㄴ addActionListener(this) Jpanel에 Jbutton 추가 ㄴ setLayout(null) → default 해제 (FlowLayout) ㄴ add(Jbutton b) * LayoutManager package GUI; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; class Panel extends.. 2021. 1. 12. [3] Container와 Component Swing 의 컨테이터와 컴포넌트 관계 *관계 : 최상위 컨테이너 - 컨테이너 - 컴포넌트 JFrame : Top level Container JPanel : Container JLabel, JTextField, JCheckBox, JButton... : Component 2021. 1. 12. [2] JPanel | Container JPanel (Container) *관계 : 최상위 컨테이너 - 컨테이너 - 컴포넌트 JPanel 을 상속 받음 기본생성자에서 JPanel 설정 ㄴ setBounds(int x,y,w,h) ㄴ setBackground(Color c) JFrame에 붙여서 사용 ㄴ add(JPanel p) package GUI; import java.awt.*; import javax.swing.*; class MyPanel extends JPanel{ public MyPanel() { setBounds(0, 0, 200, 200); setBackground(Color.orange); // java.awt.Color } } public class MyFrame extends JFrame { public MyFrame() .. 2021. 1. 7. [1] JFrame | Top-level Container JFrame (Top-level Container) *관계 : 최상위 컨테이너 - 컨테이너 - 컴포넌트 import javax.swing.*; // Java standard extensions swing 패키지를 import 한 후, JFrame을 상속 받음 기본생성자 설정 JFrame 생성 ㄴ super("title") JFrame 설정 ㄴ setBounds(int x,y,w,h) ㄴ setVisible(boolean b) ㄴ setDefaultCloseOperation(EXIT_ON_CLOSE); package GUI; import javax.swing.*; // Java standard extensions public class MyFrame extends JFrame { public MyFrame.. 2021. 1. 7. [0] 준비 Java Project 생성 단계에서, module-info.java 만들기 java.desktop 모듈 추가 module ex { // Defines the AWT and Swing user interface toolkits, plus APIs // for accessibility, audio, imaging, printing, and JavaBeans. requires java.desktop; } 2021. 1. 7. GUI GUI (Graphical User Interface) GUI AWT (Abstract Windowing Tookit) Heavy (native OS 활용) Swing Light (순수 Java) (권장✓) AWT & Swing 클래스의 상속관계 2021. 1. 7. [59]-A. 콘솔 게시판 import os # 게시판 fileName = "datas.txt" contents = [] cnt = 0 SIZE = 5 PAGE = 1 curPage = 1 startIdx = 0 endIdx = 4 run = True while run : datas = "" # 파일로드 if os.path.exists(fileName) : file = open(fileName, "rt") datas = file.read() file.close() info = datas.split('\n') cnt = int(info[0]) if cnt != 0: PAGE = cnt // SIZE if cnt % SIZE != 0 : PAGE += 1 if cnt = 0 and idx < cnt : sel2 = int(input(.. 2020. 9. 23. [59] 콘솔 게시판 2020. 9. 23. [58] 파일 쓰기/읽기 File Write & Read open() 함수 사용 . open(파일이름, 모드) . 파일이름 : string . 모드 : string ㄴ wt : 파일을 열고, 텍스트 쓰기 ㄴ rt : 파일을 열고, 텍스트 읽기 1. 쓰기 # 파일 저장(.txt) f = open("test.txt", "wt") f.write("Do not go gentle into that good night") f.close() 2. 읽기 os.path 모듈의 exists() 함수 사용 . exists(파일명) . 경로 : string # 파일 로드 import os if os.path.exists("test.txt") : f = open("test.txt", "rt") print(f.read()) 2020. 9. 23. [28] 객체 : Calendar 캘린더 Calendar ㄴ Singleton Pattern으로 설계된 클래스 (객체를 만들어서 사용불가) ㄴ .getInstance() : 클래스 내부에서 선언된 자신의 클래스 객체를 얻어옴 package test; import java.text.SimpleDateFormat; import java.util.Calendar; public class Ex00 { public static void main(String[] args) { Calendar cd = Calendar.getInstance(); long time = cd.getTimeInMillis(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy년 MM월 dd일 E요일 hh시 mm분 ss초"); Syst.. 2020. 9. 18. [27] 객체 : Date package test; import java.text.SimpleDateFormat; import java.util.Date; public class Ex00 { public static void main(String[] args) { Date date = new Date(); System.out.println(date);// Fri Sep 18 20:43:22 KST 2020 System.out.println(date.getHours());// 20 System.out.println(date.getMinutes());// 43 System.out.println(date.getSeconds());// 58 SimpleDateFormat sdf = new SimpleDateFormat("yyyy년 MM월.. 2020. 9. 18. [26] 래퍼 클래스 래퍼 클래스 Wrapper Class ㄴ 기본 자료형을 클래스로 만들어 놓은 것 package test; public class Ex00 { public static void main(String[] args) { Integer num = new Integer(10);// heap 영역에 Integer객체 생성 System.out.println(num); // 10 Integer num1 = 10; // 자동 박싱 int num2 = 10;// 자동 언박싱 String data1 = "10"; int i = Integer.parseInt(data1); System.out.println("data1의 int값 변환 : " + i);// 10 System.out.println(num.parseInt(data.. 2020. 9. 18. [25] 은닉성 - get set 메서드 Private 변수 package test; class Time{ private int hour; private int minute; private int second; public Time(int h, int m, int s) { setHour(h); setMinute(m); setSecond(s); } public int getHour() { return hour; } public void setHour(int hour) { if(hour 23) return; // 예외처리 this.hour = hour; } public int getMinute() { return minute; } public void setMinute(int minute) { if(minute < 0 ||.. 2020. 9. 18. [24] 메서드와 생성자 메서드 . 리턴타입 O . 메서드 이름 자유롭게 생성 . 아무때나 호출(=사용) . 메서드 오버로딩 생성자 . 리턴타입 X . 생성자 명 = 클래스 . new 할 때 딱 한번 호출 . 생성자 오버로딩 package day00; class Rabbit { String name; Rabbit(){ System.out.println("토끼 불렀어?"); } Rabbit(String name){ this.name = name; } void say() { System.out.println(name + "이 깡총깡총"); } } public class Ex02 { public static void main(String[] args) { // 생성자 메서드 : 클래스가 생성될 때 호출되는 자 Rabbit r = ne.. 2020. 9. 17. [23] member 전역변수와 Static & Instance Member Variable 멤버(전역)변수 (instance) ㄴ 선언 위치 : 클래스 ㄴ heap 메모리에 생성 (개별 공간) Static Variable 정적 멤버(전역)변수 ㄴ 선언 위치 : 클래스 ㄴ static 메모리에 생성 (공용 공간) . 선언 변수 선언 시, 자료형 앞에 static을 붙임 *클래스 영역에서 선언하는 변수는 자동으로 값이 초기화 된다. ㄴ 프로그램이 종료될 때, 해제 package test; class myClass{ static int x; int y; } public class Ex06 { public static void main(String[] args) { myClass.x = 10; myClass mc = new myClass(); System.out.print.. 2020. 9. 17. [22] 메서드 오버로딩 메서드 오버로딩 overloading ㄴ 매개변수의 유형과 개수가 다르게 하여, 같은 이름의 메서드를 여러개 가질 수 있게함. package test; class Calculator{ int cal(int a) { int result = a; return result; } int cal(int a, int b) { int result = a + b; return result; } int cal(int a, int b, int c) { int result = a + b + c; return result; } int cal(int a, int b, int c, int d) { int result = a +b + c + d; return result; } } public class Ex05 { public s.. 2020. 9. 17. [21] 메서드 함수 method ㄴ 미리 구현한 기능 (반복되는 코드를 재활용) . 구조 자료형 함수명( parameter ){ 실행문; return; } *숨겨진 변수 this : 메소드의 주소를 저장하고 있음 ① void func1(){ 실행문1; } ② void func2(int P){ 실행문2; } ③ int func3(){ 실행문3; return 10; } ④ int func4(int P){ 실행문4; return P; } . 선언 클래스 안에서 선언 . 호출 함수명( argument ); *메소드를 호출하면, Stack 메모리에 쌓임 *main메소드가 가장 먼저 쌓여 쌓임 package test; class Member{ int num; int age; String name; void print() { Sy.. 2020. 9. 17. [20] 클래스 기본 클래스 Class ㄴ 설계도 . 구성 키워드 클래스명 { 변수와 메서드 } . 사용 자료형 변수명 = new 자료형(); . 특성 클래스를 사용자 정의 자료형으로 사용 같은 패키지 안의 다른 클래스에서도 사용 가능 package test; // 클래스 class Member{ int num; int age; String name; } public class Ex04 { public static void main(String[] args) { Member mb = new Member(); mb.num = 1004; mb.age = 20; mb.name = "홍희동"; System.out.println(mb); // test.Member@6f539caf System.out.println(mb.num); Sy.. 2020. 9. 17. [19] 파일 저장/로드 파일저장 FileWriter package test; import java.io.FileWriter; import java.io.IOException; public class Ex02 { public static void main(String[] args) { FileWriter fw = null; try { fw = new FileWriter("test.txt"); fw.write("Do not go gentle into that good night"); } catch (Exception e) { e.printStackTrace(); } finally { if(fw != null) { try { fw.close(); } catch (IOException e) {}} } } } * 프로젝트 파일 선택 후.. 2020. 9. 17. [18] 문자열 문자열 String ㄴ 문자의 배열 ㄴ index 존재 ㄴ .length() 함수 사용가능 입력받기 공백 기준 단어입력 .next() 문장 라인 전체입력 .nextLine() 비교 (논리형 반환) A.equals(B) ㄴ true : 일치 ㄴ false : 불일치 순서비교 (정수형 반환) A.compareTo(B) ㄴ 0 : 일치 ㄴ - : 사전적으로 A가 앞 ㄴ +: 사전적으로 B가 앞 인덱싱 (문자 한개 추출) .charAt(index) 슬라이싱 (문자 여러개 추출) .substring(index) ㄴ index~끝까지 .substring(start, end) ㄴ endIdx 미포함 스플릿 (구분자로 잘라내기) .split(구분자) 형변환 문자 -> 숫자 (int) Integer.parseInt(st.. 2020. 9. 17. [17] 다차원 배열 다차원 배열 multiarray . 선언 자료형키워드 변수명[][]; . 초기화 = new 자료형키워드[개수][개수]; . 사용 변수명[index1][index2] = 값; 2020. 9. 17. [16] 배열 기본 배열 array 같은 종류의 데이터 값을 여러개 저장하기 위한 기술 . 선언과 초기화 자료형키워드 변수명[] = new 자료형[개수]; 자료형키워드[] 변수명 = new 자료형[개수]; 자료형키워드[] 변수명 = {데이터1, 데이터2, 데이터3}; . 인덱스 index 배열에는 0부터 시작하는 방번호(index)가 부여됨 . 사용 변수명[index] = 값; . 주소 int arr[] = {10,20,30} System.out.println(arr); // [I@65b3120a * new ㄴ heap 메모리에 생성 2020. 9. 17. [15] 보조제어문 : continue, break 2020. 9. 12. [14] 반복문 : for 반복문 : for 문 구조 키워드 ( 조건문 ) { 실행문 } ㄴ 조건문 : (초기식; 조건식; 증감식) package Day00; public class Ex01 { public static void main(String[] args) { for(int i=0; i 2020. 9. 12. 이전 1 2 3 4 ··· 7 다음