no image
[Tomcat] 유효한 문자들은 RFC 7230과 RFC 3986에 정의되어 있습니다.
요청 타겟에서 유효하지 않은 문자가 발견되었습니다. 유효한 문자들은 RFC 7230과 RFC 3986에 정의되어 있습니다.원인Tomcat이 보안 상의 이유로 전송방식은 GET이고, URL에 특수문자가 들어갔을때 발생하는 에러​확인을 해보니 '[ ]' 와 같은 대괄호가 포함되어있었다.​구글링 중 여러가지 해결법을 찾았는데1. 실수로 특수문자가 들어간경우수정해준다.2. 한글이나 특수문자를 써야하는 경우엔 server.xml 수정Connector    connectionTimeout="20000"    port="8080"    protocol="HTTP/1.1"    redirectPort="8443"    relaxedQueryChars="[]()^|""/>3. 나의 해결방법encodeURI(pa..
2022.08.17
[Java] asIterator forEachRemaining
간단한 예시로 request된 parameter의 이름을 가지고 map에 key에 따른 value를 저장 시키기위해서 asIterator를 사용했다. 아래의 key는 임의로 설정하는것이며 parameter의 key에 해당한다. Map paramMap = new HashMap(); request.getParameterNames().asIterater() .forEachRemaining(key -> paramMap.put(key, request,getParameter(key));
2022.08.17
[Java] 오버라이딩(Overriding)이란
오버라이딩(Overriding) 부모클래스에서 상속받은 메소드를 자식클래스에서 재정의 하는 것 오버라이딩 조건 부모메소드의 이름, 리턴타입, 매개변수의 갯수, 타입 순서가 모두 동일해야한다. 단, 접근제어자는 부모클래스와 동일하거나 더 넓은 범위로 지정 할 수 있다. 오버라이딩을 어떻게 사용하는가 Class Parent{ public void testMethod(String test1, int test2){ System.out.println("부모클래스"); } } Class Child extends Parent{ public void testMethod(String test1, int test2){ System.out.println("자식메소드"); } } 메소드 내부에 코드만 다르게 재정의 할 수 있다.
2022.08.01
[MySQL] LIMIT와 OFFSET이란
MySQL에서 LIMIT / OFFSET을 통해서 몇개의 로우 / 몇번째 부터 데이터를 가져올 수 있다. select ID from TEST limit 5 // 몇개 offset 10 // 몇번째부터 위의 쿼리는 10번째 행부터 5개의 행을 가져오는 쿼리이다. offset은 0부터 시작이다.
2022.08.01
no image
[Javascript] 배열 확인 - isArray()
타입 확인 방법에는 typeof가 있다. 하지만 배열을 typeof로 확인해보면 'object'로 확인이된다. 배열은 'object'의 한 형태이기 때문이다. 그러하여 다른 함수로 배열인지 확인해야한다. 그게 바로 'isArray()' 이다. Array.isArray(arr) 파라미터인 arr가 배열인지 확인하여 boolean으로 리턴된다. ※return으로 배열인경우 true, 배열이 아닌경우 false 리턴 let testArr = new Array(); testArr.push('a'); typeof testArr; // object Array.isArray(testArr); // true 믿지 못하는 분들을 위하여 아래는 개발자도구에서 테스트한 결과이다.
2022.07.29
[Java] 생성자 (Constructor)
생성자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드' 그래서 생성시점에 실행되어야 할 작업을 위해 사용 생성자의 조건1. 생성자의 이름은 클래스의 이름과 같아야한다.2. 생성자는 리턴 값이 없다. ※리턴값이 없을때 메소드는 void를 사용하지만, 생성자는 void마저도 생략한다. 생성자도 오버로딩이 가능하여, 하나의 클래스에 여러개의 생성자가 존재할 수 있다. 연산자 new가 인스턴스를 생성하는 것이며 생성자가 인스턴스를 생성하는 것이 아니다. 생성자에서 다른 생성자 호출 Class Test{ Test(String test1){ this("hi", 1); //첫번째 줄에 사용하며, this를 사용한다. System.out.println(test1); } Test(String test2, in..
2022.07.28
[Java] 가변인자 (varargs)란
기존에는 메서드의 매개변수의 개수가 고정적이었다. 하지만 jdk1.5부터는 동적으로 가능하고, 가변인자라고 부른다. 그럼 가변인자가 무엇인지 보자. class Test{ public void test(String test, Object... args){} } 위 와 같이 Object... 으로 사용한다. 단, 마지막 매개변수 자리에 선언해야한다. 그렇지 않은 경우에는 컴파일 에러가 발생한다. 왜? 마지막 매개변수가 아닌 경우 구별 방법이 없기 때문이다. 그럼 어떤 경우일때 사용할까? class Test{ public void test(String test){} // 1 public void test(String test1, String test2){} // 2 public void test(String ..
2022.07.27
[Java] Overloading이란
한 클래스에 같은 이름을 가진 메서드가 여러개 있더라도, 매개변수의 개수와 타입이 다르면, 같은 이름으로 여러개의 메서드를 정의할 수 있다. 정리 1. 메서드 이름이 같아야 된다. 2. 매개변수의 개수 or 타입이 달라야 한다. class Test{ public void test(String test1){} //1 public void test(String test1, String test2){} //2 public void test(int test1, String test2){} //3 } 위 세개의 메서드는 test라는 이름으로 모두 같다. 하지만, 1번은 매개변수가 한개이고, 2번은 두개이다. 3번은 2번과 같이 두개의 매개변수를 갖고 있지만, 타입이 다르다. 그래서 1~3번의 test메서드는 모두..
2022.07.27