개발 의문 해결 14

getRequestURI()가 jsp 파일명으로 나올 때

URI를 읽어서 특정 텍스트가 포함되면 예외 처리를 하는 코드를 짜려고 했다. 그런데 생각처럼 잘 되지 않았다. 나는 서블릿 매핑이 나올 거라고 예상했는데, 다음 코드들은 모두 내 생각과 달리 .jsp 를 반환했다. String[] uriArray = ((HttpServletRequest) request).getRequestURI().split("/"); StringBuffer urlArray = ((HttpServletRequest) request).getRequestURL(); String getServletPath = request.getServletPath(); 알고 보니 getRequestDispatcher를 썼기 때문에, 반환되는 jsp 파일명이 나오는 것이라고 한다. 이 내용을 ChatGPT..

스프링 레거시 MVC 프로젝트 Could not initialize class com.thoughtworks.xstream.converters.collections.PropertiesConverter 오류 해결법

책 예제 좀 따라해보려고 STS3에서 스프링 MVC 프로젝트를 생성했더니 이런 에러가 났다. Could not initialize class com.thoughtworks.xstream.converters.collections.PropertiesConverter 도대체가 스프링은 왜이렇게 오류가 나는지... 다행히 자료가 꽤 많았다. 그 중에서 이 글을 참고했다. Spring MVC 프로젝트 생성하기 (에러 기록장) 이번주 내가 정한 나의 목표치는 HTTP 강의를 완강하고 블로그에 포스팅 해내는것.동시에 이클립스로 Spring Boot가 아닌 Spring MVC 환경을 구축해보는것!우선 HTTP 완강은 예정보다 일찍 끝냈다.그래 velog.io 다만 이 글은 이클립스를 써서 수정해야 하는 파일이 조금 다..

MVC 개발 패턴이란?

MVC 패턴은 디자인 패턴 중 하나이다. 디자인 패턴이란 "소프트웨어 설계 과정에서 발생할 수 있는 일반적인 문제 및 검증된 해결책을 패턴화한 것" 으로, 특정 문제에 대한 일반적인 해결책을 쉽게 적용할 수 있도록 정리한 것이다. (참고: https://refactoring.guru/ko/design-patterns) 디자인 패턴 중 하나인 모델-뷰-컨트롤러 (Model-View-Controller) 개발 패턴은 하나의 프로젝트를 구성하는 요소를 Model, View, Controller의 세 가지 역할로 나누어 다루며, 영문 첫 글자를 따 MVC 패턴이라고 말한다. 다음 그림이 MVC 패턴을 잘 설명하고 있다. 위 그림을 풀어서 설명하자면 이렇다. ①클라이언트가 어떤 요청을 보내면, ②컨트롤러가 모델을..

JSP 세션 유지 안 되는 이유 | Session 값이 null이 되는 이유

JSP를 이용해 회원가입 시스템을 만들어 보고 있다. 회원가입을 구현하고 로그인/아웃 기능을 구현한 다음 내정보 수정을 구현하고 있었다. 그런데 다 잘 되는데 '내 정보 수정' 페이지만 가면 세션이 사라져서 member_id가 null이 되는 것이다.. 엄청 찾아봤는데, 이유는 이 부분에 있었다! 이 글이 결정적이었다. 정말이지 압도적 감사... OKKY - session값이 null이 되는 이유가 뭘까요.. 고수님들의 도움이 간절합니다. 몇일 안고있는 문제입니다. 첫 세션 저장후 메소드에서 getSession 하면 자장된 값이 나옵니다.그 후 다른 메소드에서 getSession하면 null 값이 나옵니다. user로그인하면 메인페이지넘어가서 마이 okky.kr 그러니까 내가 메인페이지에 logout 이..

JavaScript 함수를 Node.js에서 사용할 수 없는 이유

JavaScript 함수를 Node.js에서 사용할 수 없는 이유에 대해 알아보았다. 정확히는... Node.js에서는 alert가 왜 안 되는지 궁금했다. 관련해서 굉장히 잘 설명된 글을 찾았다. Node.js 노드 개념 이해하기 자바스크립트 JavaScript 런타임 이벤트 Node.js 노드 개념 이해하기 JavaScript 런타임 - 노드는 다양한 자바스크립트 애플리케이션을 실행할 수 있으며, 서버를 실행하는데 제일 많이 사용된다. 이벤트 기반 이벤트 루프 논블로킹 I/O 싱글 hanamon.kr 요약하자면 이렇다. 1. JavaScript는 스크립트 언어 (특정 프로그램, 이 경우엔 브라우저 안에서만 동작하는 언어) 이기 때문에 웹 브라우저 없이는 사용할 수 없다. 2. 그래서 웹 브라우저와 독..