Java (21) 썸네일형 리스트형 Java에서 Mail 보내는 방법 https://mvnrepository.com/artifact/javax.mail/javax.mail-api/1.6.2 Maven이나 gradle로 다운을 받습니다. JavaMailSenderImpl getMailSender = new JavaMailSenderImpl(); getMailSender.setHost("smtp.gmail.com"); getMailSender.setPort(465); getMailSender.setUsername("이메일아이디"); getMailSender.setPassword("패스워드"); Properties javaMailProperties = new Properties(); javaMailProperties.put("mail.smtp.auth", "true"); jav.. Ip 대역 검사 방법 2가지 1. SQL 쿼리를 이용한 방법 정규식을 사용하는 방법도 있지만 다른 방법을 사용한다. 이 방법은 특정 메뉴에 특정 ip대역만 접속하게 하고 싶을 때 사용한다. 특정 메뉴의 아이디를 검색하고 그 다음 아이피대역이 맞는지 확인하는 것이다. #{sIp}는 client ip를 String 값으로 넣어준 값이다. SELECT count(*) from tbl_menu where 1 = 1 and menu_id = #{menu_id} and #{sIp} between ip and to_ip SELECT count(*) from tbl_menu where 1 = 1 and menu_id = #{menu_id} ip대역을 등록하지 않았으면 menu_id를 카운트한 값이 0이므로 첫번째 조건에 ipMenuCnt == 0.. 버튼 CSS(검색 창 같은) .selectButton{ background-image: url('/resources/img/select.png'); background-color: transparent; background-repeat: no-repeat; border: none; height: 25px; padding-left: 25px; vertical-align: middle; } border 제거 및 속성을 주입했다. CKEditor 사용 시 html 태그가 그대로 출력 될 경우 CKEditor 사용시 출력태그에 textArea를 사용하면 html 태그가 그대로 출력이 됩니다. 해결방법 태그를 사용해주고 c:out 속성에 escapeXml="false"를 추가해줍니다. ex) JSTL로 처리를 할 때, 태그처리를 자동으로 해서 생기는 문제이다. 기본적으로 escapeXml 이라는 값이 true로 처리가 되고, 이 속성은 와 같은 값들을 등으로 변경하여 화면에 뿌려주게 된다. 하지만, 태그를 원하는 대로 뿌려줘야 할 경우도 존재하니 이럴 경우 escapeXml="false" 처리를 해주면 된다. 참고 textarea로 입력 받은 글을 공백과 줄바꿈을 살려 출력하기 HTML에디터가 아닌 일반 textarea 로 입력 받을 글을 페이지에 출력해야 할 경우가 많이 있습니다. 출.. 배열 배열 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것 타입[] 변수이름 = new 타입[길이] 10개의 int값을 저장할 수 있는 배열 생성 변수 test는 배열을 다루는데 필요한 참조변수, 값을 저장하기 위한 공간은 아니다 각 배열요소는 자동적으로 자신의 타입에 해당하는 기본값으로 초기화 된다. 유효한 범위를 벗어난 값을 index로 사용하면 ArrayIndexoutOfBoundsException 에러가 발생한다. 배열의 길이는 int범위의 양의 정수(0 포함)이어야 한다. 자바에서는 JVM이 모든 배열의 길이를 별도로 관리 배열이름. length(상수) 배열은 한번 선언되면 길이를 변경할 수 없다. 길이를 변경하기 위해서는 1. 더 큰 배열을 새로 생성한다. 2. 기존 배열의 내용을 새로운 배열에.. 연산자 연산자 연산을 수행하는 기호 ex) 사칙연산 피연산자 연산자의 작업 대상 ex) 변수, 상수, 리터럴, 수식 연산자는 피연산자로 연산을 수행하고 나면 항상 결과값을 반환한다. 연산자의 종류 크게 4가지로 나눈다. 산술연산자, 비교 연산자 논리 연산자, 대입 연산자 피연산자의 개수에 의한 분류 피연산자의 개수로 연산자를 분류하기도 하는데 피연산자의 개수가 하나이면 단항, 2개이면 이항, 3개이면 삼항 연산자라고 부른다. 대부분은 이항 연산자이고, 삼항 연산자는 ? : 하나뿐이다. ex) a > b ? 3 : 2 연산자 결합규칙 연산자마다 다르지만 대부분 왼쪽에서 오른쪽의 순서로 연산을 수행하고, 단항 연산자나 대입 연산자(=)만 오른쪽에서 왼쪽의 순서로 연산을 수행한다. 1. 산술 > 비교 > 논리 > 대.. 변수, 상수, 형변환 변수 • 단 하나의 값을 저장할 수 있는 메모리 공간 • 새로운 값을 저장하면 기존의 값은 사라진다. 변수 선언 변수타입 변수이름; ex) int a; ex) 주민번호로 초기화할경우 13자리이므로 int의 범위를 벗어나기 때문에 long을 사용해줘야한다. 같은 이름의 변수가 여러 개 존재해서는 안된다.(서로 구별될 수 있어야 함) 변수 초기화 - 변수를 사용하기 전에 처음으로 값을 저장하는 것 변수를 사용하기 전에 초기화를 반드시 해줘야한다. -> 왜? 메모리는 여러 프로그램이 공유하는 자원이므로 전에 다른 프로그램에 의해 저장된 쓰레기 값(Garbage Value)이 남아 있을 수 있기 때문이다. 기본형 • 논리형, 문자형, 정수형, 실수형 총 8가지 • 계산을 위한 실제 값을 저장한다. 참조형 • 객.. 가비지 컬렉션(Garbage collection) 가비지 컬렉션(GC)은 항상 background에서 데몬 쓰레드로 돌아가면서 접근 불가능한 상태가 된 객체들의 메모리를 정리해준다. GC는 2가지 전제를 가지고 있는데 1. 대부분의 객체는 금방 접근 불가능한 상태(unreachable)한 상태가 된다는 것 2. old 객체에서 young객체로의 참조가 적다는 것. 객체는 대부분 일회성이며, 메모리에 오랫동안 남아있는 경우는 드물다. 그렇기 때문에 객체의 생존 기간에 따라 물리적인 Heap영역을 나누는데 Young Generation / Old Generation 이라는 물리적 공간으로 설계되었다. • Young Generation 1. 새롭게 생성한 객체의 대부분이 여기에 위치한다. 2. 대부분의 객체가 금방 접근 불가능 상태가 되기 때문에 매우 많은 .. 자바란? 1. 자바의 가장 중요한 특징은 운영체제의 종류에 관계없이 실행이 가능하다는 것이다.(운영체제에 독립적) -> 왜? 타 언어 애플리케이션의 경우 os와 직접 통신하게 된다. 하지만 자바 애플리케이션의 경우 JVM과 통신을 하고, os와 JVM이 통신을 한다. 그러므로 JVM은 해당 os에서 실행가능한 JVM이 필요하다.(JVM은 종속적) 따라서 JVM은 종속적이고 운영체제는 독립적이다. 2. c++의 장점과 사용하지 않는 부분을 제외해서 배우기가 쉽다. 객체지향이라는 관점 c++은 메모리 관리를 직접 해줘야하지만 자바는 JVM의 가비지컬렉터를 통해 자동적으로 메모리 관리를 해준다. 연산자 오버로딩, 다중상속을 하지 않음(다이아몬드 문제) 연산자 오버로딩 - 코드 난독화 때문에 사용하지 않는다는 의견도 있.. 접근 제한자 public: 다른패키지 참조 허용 friendly: 동일패지키 참조 허용 protected: 상속 시 참조 허용 private: 동일 클래스에서 참조가능 동일클래스 내부 멤버끼리는 접근제한자가 무시된다. 이전 1 2 3 다음