전체 글 104

쿠키, 세션

1. Cookie : 사용자 컴퓨터에 저장. (정보 유출 가능성) : 유효기간 후 삭제 2. Session : 클라이언트 별로 서버에 저장되는 정보 : 서버 종료시, 유효기간 후 삭제 (마지막 사용 후 30분동안 유지) 세션 처리 과정 : 웹 클라이언트가 서버측에 요청을 보내면 서버는 session id를 발급한다. sessoion id를 이용해서 http session (key, value)을 생성한다. session id로 cookie를 만들어서 client에 보낸다. 객체는 서버가 만들어주기 때문에 직접 생성하지 않는다. request.getSession() (=request.getSession(true)) 메서드 호출시 세션을 반환하며, 세션이 없으면 새로 생성해서 반환해준다.(isNew()메소드..

JSP, SERVLET 2023.02.28

SPRING 웹소켓에서 HttpSession 값 불러오기

개념 WebSocketSession과 HttpSession은 다르다. WebSocketSession은 HttpServletResponse, HttpServletRequest 등 servlet 관련 클래스를 사용할 수 없다. VO를 사용한 이용자 정보는 HttpSession에 저장된다. WebSocket 접속자 정보는 WebSocketHandler에서 WebSocketSession에 저장된다. HttpSessionHandshakeInterceptor를 사용하도록 설정하면 WebSocketHandler 동작(handshake) 이전에 HttpSession에 접근해 원하는 정보를 WebSocketHandler로 전달할 수 있다. 상황 웹소켓에서 HttpSession을 사용해서 현재 로그인 중인 회원 아이디(M..

SPRING 2023.02.19

SPRING 웹소켓 기본설정 (Java Configuration)

환경 : 스프링 레거시, Maven, 자바 설정 전체 코드 [WebSocketConfig.java] : WebSocketConfig implements WebSocketConfigurer @Configuration @RequiredArgsConstructor @EnableWebMvc @EnableWebSocket public class WebSocketConfig implements WebSocketConfigurer{ private final MyWebSocketHandler myWebSocketHandler; @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { registry.addHandler(myW..

SPRING 2023.02.18

오류 WebSocket connection to 'xxx' failed, Provisional headers are shown

상황 채팅프로젝트 중 웹소켓이 연결되지 않는 문제가 발생했다. IDE에서는 아무 응답이 없었고, 개발자 도구에서 아래 오류들을 확인할 수 있었다. WebSocket connection to 'ws://URL' failed: [source] [network] Provisional headers are shown 해결 설정파일의 registerWebSocketHandlers URL과 View의 WebSocket URL을 동일하게 맞춰준다. ※ Controller return문처럼 jsp파일의 폴더명을 함께 쓰면 안된다. ex) [WebSocketConfig.java] @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry regist..

ERROR RESOLVING 2023.02.17

JAVASCRIPT 이벤트 처리

1. addEventListener "click" ※ 오류 "Uncaught TypeError: Cannot read property 'addEventListener' of null" : addEventListener 사용 시 태그를 부분이나 부분 상단 넣으니 위 오류가 발생했다. 부분 하단으로 옮겨주니 정상작동했다. ex) 글쓰기 const registerButton = document.querySelector('.register-btn') registerButton.addEventListener('click', register); function register(){ self.location = "/controller/board/register" } ex) 글쓰기 const registerButton..

JAVASCRIPT,JQUERY 2023.02.16

HTML CSS 추가 기능

애니매이션 효과 @keyframes rotate { 100%{ //애니메이션 총시간 시간대비 퍼센트 transform: rotate(360deg); //회전(몇도) } .클래스명 { width: 100%; height: auto; animation: rotate 1.1s infinite linear; //infinite 계속돈다, linear 가속도붙지 않고 일정한 속도로 돈다. } 모달창 마우스 스크롤 해도 따라오도록 하기 #modal { position: fixed; top: 0; left: 0; } 박스 그림자 box-shadow : offset-x, offset-y, blur-radius, spread-radius, color(0 0 0 색상정도) box-shadow : 2px 2px 2px 1p..

HTML,CSS 2023.02.15

HTML CSS 기본

: 최대한 불필요한 태그, 스타일 없애기 협업으로 웹페이지 만드는 법 디자이너 : 디자인(포토샾, 피그마 등)해서 파일(파일+이미지리소스)을 넘긴다. -> 웹디자이너, 퍼블리셔, 프론트엔드 개발자 : 전체 골격을 확인하고 블록 구분 후 블록마다 클래스명 설계 등을 논의한다. 마크업 : html의 뼈대를 잡아주는 html을 작성하는 일 : html5 이전에는 div태그로 문서의 구조를 표현했다. 하지만 html5는 id(태그 내 하나) > class(태그 내 여러개) > 태그 (+ div style로 적용안되던 걸 a style로 바꾸니까 적용됐다.) 요소 inline 요소 : 문자 등 직선적인 html 요소 block 요소 : 이미지 등 부피가 있는 요소 form태그 : 정보 전송 input 태그 : 입..

HTML,CSS 2023.02.14

SPRING mybatis <selectKey>

: 자동 증가를 설정한 PK값을 태그를 통해 수동으로 얻어와 그 결과를 이용할 수 있도록 한다. 예를 들어, 게시판에 게시글 등록 후 "00번 게시글이 등록되었습니다"라는 모달창을 띄울 때 사용할 수 있다. 게시글 번호를 자동 증가하도록 설정한 후 단순 태그를 사용해서 글을 등록하고 해당 객체에서 게시글 번호를 얻어오면 모두 '0'으로 출력된다. (MySQL) 태그로 새 글 등록 전 글번호에서 1을 더한 값를 얻어온 후 그 결과를 방금 등록한 게시글 번호로 사용하면 된다. ※ order속성 BEFORE를 사용할 경우 첫 글을 게시할 시 이전글 번호(boardno)가 없어서 sql문에서 에러가 방생한다. order속성 AFTER를 사용하니 해결됐다. ex) mapper Interface public voi..

SPRING 2023.02.13

오류 java.lang.IllegalArgumentException 요청 타겟에서 유효하지 않은 문자가 발견되었습니다.

상황 @GetMapping을 사용했고 URL로 list[] 인덱스를 사용해 직접 값을 전송해주던 중에 아래 오류가 발생했다. INFO: HTTP 요청 헤더를 파싱하는 중 오류 발생 비고: HTTP 요청 파싱 오류들이 더 발생하는 경우 DEBUG 레벨 로그로 기록될 것입니다. java.lang.IllegalArgumentException: 요청 타겟에서 유효하지 않은 문자가 발견되었습니다. 유효한 문자들은 RFC 7230과 RFC 3986에 정의되어 있습니다. at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:494) at org.apache.coyote.http11.Http11Processor.serv..

ERROR RESOLVING 2023.02.12

오류 UnsatisfiedDependencyException

상황 스프링 Autowired 의존성 자동주입을 사용하던 중 아래와 같이 동일한 타입의 빈이 2개 발견된다는 에러가 발생했다. ERROR: org.springframework.test.context.TestContextManager - Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@bd4dc25] to prepare test instance [com.toy.mapper.BoardServiceTests@35d3ab60] org.springframework.beans.factory.UnsatisfiedDepend..

ERROR RESOLVING 2023.02.11