[JAVA] Calendar 클래스 - Calendar 는 추상클래스라서 인스턴스를 생성 할 수 없다. - .getInstance() 는 Calendar 클래스를 구현한 인스턴스를 반환. - Calendar( JDK 1.1 부터 제공 )가 추가 되면서 Date( JDK 1.0 부터 제공) 대부분의 메소드가 deprecated ( 더 이상 사용되지 않음 ) 되었다. JAVA 2022.02.05
[JAVA] UUID ( Universally Unique Identifier ) - UUID란 범용 고유 식별자라는 뜻. - 네트워크 상에서 고유성이 보장되는 id를 만들기 위한 표준 규약이다. : 중앙관리시스템이 있는 환경이라면 각 세션에 일련번호를 부여해줌으로서 유일성을 보장해 줄 수 있겠지만 중앙에서 관리되지 않는 분산환경이라면 중복이 발생할 수 있다. 이를 위해 탄생하였다. - UUID 버전은 1, 3, 4 및 5가 있다. 이 중 많이 쓰이는 것은 버전 1과 4이다. 버전 1은 타임스탬프를 기준으로 생성되며, 버전 4는 랜덤 생성이다. 버전 3, 5는 각각 MD5, SHA-1 해쉬를 이용해 생성하는 방식이다. randomUUID()로 사용하면 된다. ( 4버전) 랜덤생성이지만 32자리이기 때문에 중복되는 것은 매우 매우 매우 희박하다고 한다. - 세션 아이디를 발급해야 할 때.. JAVA 2022.02.04
[JAVA] substring 1. String substring( int index ) - index값은 0부터 시작하고 int로 받은 숫자인 위치부터 끝까지의 값을 리턴한다. ex) String str = "0123456789"; str.substring(6) 의 리턴값은 6789 2. String substring( int beginIndex, int endIndex) - beginIndex 숫자 위치부터 endIndex 숫자 앞의 자리까지 ex) String str = "0123456789"; str.substring(2,7)의 리턴값은 23456 JAVA 2022.02.03
[JSP] HttpServletRequest 웹 브라우저 사용자인 클라이언트로 부터 서버로 요청이 들어오면 서버에서는 HttpServletRequest를 생성, 웹 브라우저에게 응답을 돌려줄 HttpServletResponse를 생성 ( 빈 객체 ) 생성된 것들을 요청정보에 있는 패스로 매핑된 서블릿에게 전달. 전달받은 내용들을 파라미터로 Get / Post 형식으로 클라이언트에게 전달. HttpServletRequest를 사용하면 정보를 컨트롤러로 보냈을 때 HttpServletRequest 객체 안에 모든 데이터들이 들어간다. getParameter()를 이용하여 원하는 데이터를 꺼낸다. ( getParameter()의 반환타입은 String ) Model객체에 값을 담아서 보내면 jsp에서 꺼내서 사용할 수 있다. 아래의 예를 보고 이해가 되.. JAVA 2022.02.01
[JAVA]기본형과 참조형의 종류 및 차이 기본형(Primitive type) : - 기본형 데이터는 값을 그대로 할당하는 것. - 메모리 내에 고정된 크기로 저장되면서, 원시 데이터 값 자체를 보관, 불변적 기본적으로 데이터는 하나의 메모리를 사용한다.(재사용) - 메모리에 이름과 데이터를 같이 보관 , 데이터 한건 - 종류 : 정수형 ( byte, short, int, long ) 실수형 ( float, double ) 문자형 ( char ) 논리형 ( boolean ) 참조형(Reference Type) : - 참조형은 기본형 데이터의 집합 - 참조형 데이터는 값이 지정된 주소의 값을 할당한다. JAVA 2022.01.30
[Spring] No mapping found for HTTP request with URI 에러 에러내용 No mapping found for HTTP request with URI [/project/requestList.do] in DispatcherServlet with name 'appServlet' 해결과정 검색해보니 여러가지 확인 방법이 나와있어서 1. web.xml 에서 DispatcherServlet 선언이 제대로 되어있는지 확인 2. servlet-context.xml 에 설정 확인 : 이 쓰여있는지 3. 컨트롤러에서 URL Mapping이 잘 되어있는지 확인 몇번을 확인해보고도 문제가 없는데 왜 안돼지 했는데 .... requestList.do로 요청해놓고 컨트롤러에서 url mapping이 request로만 적혀져있었다....... 정말 컴퓨터는 시킨대로 잘하는데 항상 내가 제대로.. JAVA/SPRING 2022.01.06
[Spring][Annotation] @RequestParam & @PathVariable 코드를 보다가 @RequestParam 과 @PathVariable의 차이가 정확하게 알고싶어서 검색하게 되었다. 위의 코드로 설명을 하면 @RequestParam - 첫번째 사진에서 @RequestParam 어노테이션의 괄호 안의 "file"은 파라미터 명을 가져온 것이다. - URL에 파라미터를 같이 전달 할때 upload.do?file=file.jsp 이런식으로 전달할 때 많이 사용한다. @PathVariable - 위의 @PathVariable 어노테이션 옆의 'bno'은 파라미터 값을 가져온 것이다. - URL에 파라미터를 같이 전달 할때 / replyList/ bno/ 1{bno} 이런식 ( rest방식 )으로 전달할 때 많이 사용한다. JAVA/SPRING 2022.01.04
[MyBatis] #{} 과 ${} 의 차이 #{ } - 파라미터가 String 형태로 들어와서 '파라미터' 형태가 된다. ex) id값이 aaa이면 id = #{id} 가 id='aaa' 로 들어간다. - 쿼리 주입을 예방할 수 있어 보안측면에서 유리하다. ${ } - 파라미터가 바로 출력된다. - 해당 컬럼의 자료형에 맞춰 파라미터 자료형도 변경된다. - 쿼리 주입을 예방할 수 없어 보안측면에서는 불리하다. 그리하여 사용자의 입력을 전달할 때는 사용하지 않는 것이 낫다. - 테이블이나 컬럼명을 파라미터로 전달하고 싶을 때 사용한다. 쿼리주입 (SQL Injection)이란? - 악의적인 사용자가 보안상의 취약점을 이용하여, 임의의 SQL 문을 주입하고 실행되게 하여 데이터베이스가 비정상적인 동작을 하도록 조작하는 행위. - 인젝션 공격은 OWA.. JAVA/SPRING 2022.01.03
[Spring][Spring Security]BCryptPasswordEncoder BCryptPasswordEncoder이란? - 스프링 시큐리티(Spring Seurity) 프레임워크에서 제공하는 클래스 중 하나로 비밀번호를 암호화하는 데 사용할 수 있는 메서드를 가진 클래스 스프링 시큐리티란? 자바 서버 개발을 위해 필요로 한 인증, 권한 부여 및 기타 보안 기능을 제공하는 프레임워크 (클래스와 인터페이스 모임) - PasswordEncoder 인터페이스를 구현한 클래스 - BCryptPasswordEncoder는 BCrypt 해싱 함수를 사용해 비밀번호를 인코딩 해주는 메서드와 사용자에 의해 제출된 비밀번호와 저장소에 저장되어 있는 비밀번호와의 일치여부를 확인해주는 메서드를 제공 - 생성자의 인자 값(verstion, strength, SecureRandom instance)을 .. JAVA/SPRING 2022.01.03