본문 바로가기

컴퓨터/JAVA12

[Spring] 트러블 슈팅 -스프링 부트 axios 프리플라이트 에러/cors에러 스프링부트 axios 통신시 에러 문제 상황 axios.post로 통신할 때 헤더가 셋되어있지 않아 통신 에러가 지속적으로 발생하였다. 재밌는 것은 allowAll로 설정한 컨트롤러에서는 정상 통신이 된다는 것이었다. 문제가 되는 지점은 axios.post로 요청을 보낼 때, 토큰이 유효할 경우에만 도달 가능한 컨트롤러와 통신을 할 때였다. 또한 신기한 점은 axios.get으로 요청을 할 때는 전혀 에러가 발생하지 않는다는 것이다. 분석 오랜 시간 끝에 에러 흐름이 아래와 같이 발생한다는 것을 깨달았다. 1. axios에서 get은 프리플라이트를 날리지 않지만 post요청을 할 시 프리플라이트를 날리게 된다. 이 프리플라이트가 정상 통신을 했을 경우에 본 요청이 날아가게 된다. 이 프리플라이트는 OPT.. 2024. 1. 9.
[JAVA] 스트림을 사용해보자 자바 스트림을 사용하자! 자바 스트림(Stream)은 자바 8부터 도입된 기능으로, 컬렉션을 함수형 프로그래밍 스타일로 처리할 수 있는 강력한 기능을 지원한다. 스트림은 데이터의 흐름이다. 배열, 컬렉션 등에 여러가지 함수를 적용, 조합하여 원하는 결과를 얻을 수 있게 된다. 스트림의 특징 스트림은 데이터 소스를 변경하지 않는다. 스트림은 데이터 소스로부터 데이터를 읽기만 할 뿐, 데이터 소스를 변경하지 않는다. 스트림은 일회용이다. 스트림은 한번 사용하면 닫혀서 재사용이 불가능하다. 지연 처리(Lazy invocation)_ 스트림의 최종 결과는 최종작업(최종 연산)이 이루어 질 때 계산된다. 즉, 예를 들어 스트림 내부에서 외부의 데이터를 변경했을 경우, 해당 변경하는 함수는 스트림의 최종작업이 이뤄.. 2023. 11. 9.
[JQeury + JSP + Servlet] Ajax로 통신하기/비동기통신 click me 버튼을 클릭시 JSON형식 문자열을 받아와 json으로 변경 후 값을 할당한다. data.jsp out.pirnt를 통해 데이터를 보낸다. out 내장 객체는 응답 출력 스트림을 제공하는 객체이다. HTML이나 텍스트와 같은 응답 데이터를 출력하는 데 사용된다. 서블릿을 이용한 로그인 데모 서블릿을 이용하여 로그인 데모 프로그램을 작성한다. index.jsp 아이디: 비밀번호: click me 사용자로부터 아이디와 비밀번호를 받아 서블릿과 비동기 통신을 진행한다. 실제 로그인을 구현할 시에는 pw는 해쉬 함수를 통과시켜 사용 하여야 한다. 클라이언트 단이든 서버 단이든. 해쉬 함수는 입력 값에 대해 동일한 출력을 보장하는 무작위 수를 생성하는 함수라고 생각하면 된다. 즉 사용자가 입력하는.. 2023. 6. 29.
[JSP] JSP 내장객체란?/내장객체 사용하는 법 이름 : 나이 : 취미 : 웹 브라우저 상에서 아래 url를 입력한다. http://localhost:9000/sample1/index.jsp?name=이름이다&age=26&hobby=그림&영화 즉, 루트 경로 뒤에 ?로 시작하는 쿼리 파라미터를 입력한다. 즉 GET방식이다. request 내장 객체의 주요 메서드: getParameter(String name): 지정된 이름의 HTTP 요청 매개변수 값을 반환합니다. getParameterValues(String name): 지정된 이름의 HTTP 요청 매개변수 값들을 배열로 반환합니다. getAttribute(String name): 지정된 이름의 요청 속성 값을 반환합니다. setAttribute(String name, Object value): 지.. 2023. 6. 28.