갑자기 프로젝트가 실행되지 않는다면 Spring에서 프로젝트가 실행되지 않는 경우는 여러가지의 경우가 존재합니다. 그러나 오늘 포스팅은 제가 겪은 것중 황당하고 어이없는 것에 대해 글을 올리려고 합니다. 저의 문제가 되었던 프로젝트는 DispatcherServlet이 세분화로 나뉘어진 특징이 있었습니다. DispatcherServlet의 설정은 관리하기 쉽게 하기 위해 나뉘어졌던 것인데, 오늘은 여기가 문제가 되었습니다. xml 중, tiles 입니다. 얘가 context-tiles.xml 로 명시되어 지금까지 프로젝트를 사용해왔으나 몇 시간동안 오류의 해석 끝에 내린 결론은 의 '>'가 부등호로 받아들여져서 프로젝트의 실행이 오류가 났던 것 입니다. xml에서 '>'는 부등호로 오해를 받기 쉽기 때문에..
Mybatis Sequence 만들기 SelectKey 활용하기 selectKey는 myBatis가 제공하는 기능 중 하나입니다. 서브 쿼리의 기능을 수행하고 있으며, 대표적인 기능으로 시퀀스 기능을 담당합니다. 일반 DB의 SQL문 보다 MYBATIS의 SQL문이 육안으로 보기에 더 편해진다는 장점이 있습니다. selectKey에서 가장 유심히 봐야한 것은 keyProperty와 order입니다. keyProperty는 해당 SQL문에서 해당 쿼리문의 결괏값을 불러오게 하는 key 값입니다. order는 대표적으로 before와 after로 나뉩니다. before는 본 SQL문이 실행되기 전에 먼저 실행되며, after는 본 SQL문이 실행된 후 실행되는 차이가 있습니다. 그 외 parameterTyp..
The reference to entity "characterEncoding" must end with the ';' delimiter. Spring, Xml Delimiter Error xml 작업 중, 이런 에러를 찾아 보게 됩니다. 에러가 뜨는 이유는 & 이녀석 때문인데요. xml은 & 문자를 구분하기 어려워합니다. 따라서 이 부분을 &로 고쳐주시면 됩니다. 사진과 같이 &를 &로 바꿔주면 끝~ Befor After
Spring FileUpload 에러 처리 목차 파일 업로드 중 에러 발생 Spring에서 fileUpload 작업을 하기 위해 작업을 하지만, Error가 내 앞을 반겼다. 이 문제의 가장 큰 원인은 submit을 했을 때, Controller와 Mapping이 되지 않는다는 것이다.그리고 Mapping이 되지 않는 것에는 설정이 가장 큰 원인이 된다. 에러 고치기 1. form의 enctype="multipart/form-data" 확인하기 2. pom.xml에서 commons가 등록이 되어있는지 확인한다. 3. servletDispatcher 설정 확인하기 4. MultipartHttpServletRequest로 request값 가져오는지 확인하기 마무리 Spring에서 file 업로드를 하기 위해..
WEB.XML 에러 문제 목차 web.xml 에러 현상 프로젝트를 만들면 뜬금없이 web.xml에 에러 현상이 생깁니다. 막상 web.xml에 들어가 보면, 왜 에러 뜨는지를 알 수도 없습니다. 분명 8행이 에러가 나온다고 하지만, 또다시 새로운 것을 추가하면 다른 문장이 에러라고 붙잡기 일 수입니다. 고치는 방법 고치는 방법은 간단합니다. java.sun.com의 j를 대문자 J로 변형해주면 됩니다. 프로젝트 에러는 말끔히 사라져서 강박증 없이 프로젝트를 사용하시면 됩니다. 마무리 프로젝트를 하면서 에러가 발생하지만 실행되는 이 문제는 너무 신경 쓰이는 제게는 문제였습니다. 이 방법을 공유하고자 글을 작성하게 되었습니다.
web.xml으로 한글 인코딩하기 목차 한글 인코딩하기 Spring MVC로 생성할 경우, 한글이 깨지는 현상을 쉽게 볼 수 있습니다. 이를 해결하기 위해서는 코딩에서 찾는 방법도 존재하지만, WEB.XML에서 해결할 수 있는 방법도 있습니다. encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 forceEncoding true encodingFilter /* jsp에서 생성할 때, 기본적으로 제공되는 web.xml 의 filter 기능을 통해 쉽게 해결 할 수 있습니다. 마무리 한글이 깨지지 않는 것을 확인 할 수 있습니다.
userAgent 목차 userAgent 이란? 해당 웹 사이트의 접속자의 정보를 구분 지을 수 있는 함 수명입니다. url은 대부분 pc에서 접속이 가능하지만, 반응형의 보편화에 따라 안드로이드, 아이폰 등 다양한 OS에서도 URL 접근이 가능하기 때문에 구분지어야 합니다. userAgent 사용하기 String userAgent = request.getHeader("User-Agent"); System.out.println(userAgent); request.getHeader("User-Agent"); 를 활용하여 해당 웹의 사용자 정보를 확인할 수 있습니다. userAgent의 도움으로 무엇이 URL 접근하는지 알 수가 있습니다. 안드로이드 사용자 구분 짓기 이번 방법에는 indexOf를 활용하였습..
Controller의 완성 목차 Controller MVC 패턴 중, Controller에 해당됩니다. JSP에서의 처리를 Java가 대신해주며, 이를 Servlet이라고 부릅니다. 그리고 각 Service에 맞게 나뉘어 작업을 관리한다고 하여 Controller라는 명칭이 붙었습니다. [Web/JSP] - [JSP] Servlet이란? 지난 시간에는 JSP에서 Java의 호출에 대해 다뤘습니다. 이번 시간에는 Java에서의 호출에서 JSP의 호출을 다루도록 하겠습니다. Servlet에서 Jsp 호출 방법 1. RequestDispatcher 방식 Servlet에서 JSP로 이동 방식은 대표적인 방법입니다. jsp에서 forward 방식으로 불리우며, 가장 많이 쓰이는 방법입니다. 2. Redirect ..
Sevlet이란? 목차 Servlet이란? 주로 웹 페이지의 기술을 향상하며, 다수의 인원이 작업효율을 높이기 위해 사용하는 기술입니다. 언어는 Java를 활용하며 Class를 통해 작업합니다. 다만 Request값과 Response값을 호출함으로써 JSP에서 작업을 Class에서 작업할 수 있도록 도와주는 역할을 합니다. Servlet 만드는 방법 Servlet에서 중요한 부분을 제외한 현재 불필요한 부분을 모두 삭제하였습니다. 가장 먼저 아셔야 하는 메서드명은 doGet과 doPost입니다. html에서 url 전달 방식이며, get방식과 post 방식을 의미합니다. 여기서 get으로 호출 시, doGet이 반응하며, post 호출 시, doPost가 반응합니다. JSP, Servlet 연결 방법 J..
Properties 고급 버전 목차 Message에 대해 알아보자 기존 Properties를 JSP에서도 쉽게 활용할 수 있는 방법 중 하나입니다. 좀 더 다채롭게 변형시킬 수도 있고, 간편하게 Properties를 접근할 수 있게 도와줍니다. XML 설정하기 /WEB-INF/properties/data1 /WEB-INF/properties/data2 사용하고 있는 context.xml에 다음과 같은 xml을 등록해줍니다. 기존 Properties가 있다면, 이 설정 하나로도 끝났습니다. Properties, Java에서 호출하기 ReloadableResourceBundleMessageSource는 xml에 등록된 내용을 복사 붙여놓기를 진행합니다. 기존 Properties와 다르게 호출하게 됩니다. 여..
JSP의 절대 경로와 상대 경로 목차 절대 경로와 상대 경로의 정의 절대 경로는 처음부터 시작하여 목적지까지의 절대적인 경로를 의미합니다. 시작 지점부터 목표지점까지의 어느 누가 봐도 절대적으로 이곳을 가리킬 수 있는 곳입니다. 특징은 최상위 /를 포함하고 있습니다. 상대 경로는 현재 위치를 기준으로 하여 목적지까지의 상대적인 경로를 의미합니다. 자신보다 앞에 있는가? 뒤에 있는가? 동서남북으로 어느 방향으로 가야 하는가? 등, 누가 어디서 시작하느냐에 따라서 도착지가 달라질 수가 있습니다. 특징은 최상위 /를 거치지 않고도 이동이 가능합니다. 절대 경로와 상대 경로의 차이 절대경로 상대경로 컴파일 속도 느리다 빠르다 해당 소싀의 위치 변환 시 경로를 다시 지정 기준이 된 폴더의 구성이 달라지지 않는 한..
Web.xml은 무엇일까? 목차 WEB.XML은 무엇일까? 배포 서술자 (Deployment 부르는데, jsp나 Servlet을 위한 설정 파일을 담당하는 역할입니다. 브라우저가 실행될 때, 반드시 거쳐가는 특징을 지니고 있어 설정 파일을 담당할 수 있습니다. 만약 MVC패턴을 이해하기 위해서는 Web.xml을 알아야 하며, JavaServlet에 접근하기 위해서는 Web.xml의 도움이 필요로 할 정도로 많은 사랑을 받고 있습니다. 그래서 거의 90% 확률로 Web.xml은 자리 잡고 있으며, 2개 이상의 Web.xml은 사용할 수 없습니다. WEB.XML은 어떻게 만드는가? 1. 프로젝트 생성 시, 자동 생성하기 Dynamic Web Project에서 Next를 누른 후, 가장 마지막 단계에서 Gen..
지난 시간에 이어 Properties를 사용하는 시간을 갖겠습니다. ▼ propeties 정의하기 2개의 properties안에는 총 8개의 문자가 작성되어 있습니다. 우리는 이를 사용하기 위해 properties를 불러와야 합니다. Spring의 실행 시, index.jsp가 실행되는 것을 아는 이상, 이를 불러오도록 하겠습니다. 이 과정이 귀찮다면 main함수를 이용하셔도 상관없습니다. ▼ Properties 불러오는 방법 초간단 설명을 위하여, 한 개의 properties 보다는 2개의 properties를 이용하였습니다. 그리고 2개 이상의 properties를 불러오는 방법은 대표적으로 3가지의 방법이 존재합니다. @PropertySource를 이용하여 한 개씩 부르는 방법 @PropertySo..
MAVENREPOSITORY 활용하기, pom.xml 설정하기 목차 MAVENREPOSITORY소개 mvnrepository.com/ 사이트 입니다. 인터넷이 되는 환경이라면 어디든지, Spring에 적합한 라이브러리를 제공해줍니다. Version과 개발환경만 맞다면 누구나 쉽게 사용할 수 있지만 반대로 환경과 라이브러리 버전과 호환이 되지 않는다면 라이브러리를 설치하여도 실행이 안됩니다. 따라서, 라이브러리를 무조건 최신으로 설치하시면 안 되며 라이브러리를 설치 후 해당 라이브러리가 실행되는지에 대해서 반드시 Test를 진행하시는 것을 추천드립니다. 사용 방법 빨간 1번을 이용하여, 자신이 찾는 라이브러리를 검색합니다. 검색결과가 도출된다면, 자신에게 알맞은 라이브러리를 선택합니다. 제 경우에는 파란 ..
스프링 프로젝트 만들기입니다. 기본적으로 톰캣 9.0과 Java1.0.8을 사용하고 있으며, Maven 방식을 이용하고 있습니다. ■ 프로젝트 만들기 프로젝트를 만드는 방법은 여러가지가 존재합니다. '무조건 이렇게 만들어야 한다.' 라는 점은 아니라는 것을 먼저 알려드립니다. new - project에서 maven Project를 찾아줍니다. 없을 경우, 제일 아랫부분 Other에서 위와 같이 검색하면 Maven Project가 검색이 됩니다. 처음은 체크만 확인해주시고 Next를 눌러줍니다. 버전은 1.0으로 맞춰줍니다. (21.05.09 기준) 같은 버전 1.0은 약 3개 정도 있으며, 이 중에서 Artifact Id가 maven-archetype-webapps를 찾습니다. Group_id는 도메인의..