본문 바로가기

분류 전체보기

(87)
[Spring] 컨테이너, IoC, DI, Bean 컨테이너 컨테이너는 인스턴스의 생명주기를 관리하며, 생성된 인스턴스에게 추가적인 기능을 제공합니다. 예를 들어, Servlet을 실행해주는 WAS는 Servlet 컨테이너를 가지고 있다고 말합니다. WAS는 웹 브라우저로부터 서블릿 URL에 해당하는 요청을 받으면, 서블릿을 메모리에 올린 후 실행합니다. 개발자가 서블릿 클래스를 작성했지만, 실제로 메모리에 올리고 실행하는 것은 WAS가 가지고 있는 Servlet 컨테이너입니다. Servlet컨테이너는 동일한 서블릿에 해당하는 요청을 받으면, 또 메모리에 올리지 않고 기존에 메모리에 올라간 서블릿을 실행하여 그 결과를 웹 브라우저에게 전달합니다. 컨테이너는 보통 인스턴스의 생명주기를 관리하며, 생성된 인스턴스들에게 추가적인 기능을 제공하는 것을 말합니다...
[java] java 클래스의 풀 패키지명을 얻는 방법 클래스의 풀 패키지명 알아내는 방법 해당 클래스 우클릭 -> Copy Path/Reference -> Copy Reference 클래스의 풀 패키지명이 사용되는 곳 1. xml파일로 빈을 등록할 때 사용된다
[ERROR] [JSP] Origin 서버가 대상 리소스를 위한 현재의 representation을 찾지 못했거나, 그것이 존재하는지를 밝히려 하지 않습니다. (web 폴더의 jsp 파일과, WEB-INF 폴더 내의 jsp 파일의 차이) 한참을 고생했다. 이 web(또는 webapp)폴더에 직접적으로 존재하는 jsp파일은, 브라우저로 직접 접근이 가능하다. 그런데, WEB-INF 하위의 jsp파일은, 계속 404에러가 뜨는 것이였다. tomcat 설정을 잘못했나 싶어서 찾아보았지만, 찾지 못헀는데, 이유를 알았다. WEB-INF 하위의 파일은 직접 접근이 불가능한 경로라는 것이다!! 역시... 이상했던게, 서블릿으로 접근하는 url은 잘 되었기 때문에 tomcat 기본 경로 설정(Application Context)의 문제도 아닐 것 같았는데, 단지 이런 이유였다. 그럼 그대로 냅두고, 자바 웹 애플리케이션을 계속 만들면 될 듯 하다. 참고블로그 https://xzio.tistory.com/1345 [스프링 개념] web과 WEB-INF..
[Tomcat] No artifacts marked for deployment 자바 웹 애플리케이션에 톰캣 서버를 추가할 때(Add Configuration 이용), 다음과 같은 에러가 발생한다. 여기서 fix 버튼을 누르면, war, war exploded 중 한가지를 선택하라고 나온다 war exploded를 선택하라고들 한다. 그럼 둘의 차이는 무엇일까? 둘의 차이를 알기 위해선, '빌드'란 무엇인지부터 알아보면, 차이를 알 수 있다. 해당 포스팅에서 확인해보자 https://yoons-development-space.tistory.com/33 빌드에 대해 (컴파일, 패키징, 배포, 빌드 도구) 기본 빌드 소스코드 파일들을 컴퓨터에서 실행할 수 있는 소프트웨어로 변환하는 일련의 과정이다. 다음과 같은 과정을 진행한다. 라이브러리 다운로드 소스코드를 바이너리코드로 컴파일. 컴 ..
빌드에 대해 (컴파일, 패키징, 배포, 빌드 도구) 기본 빌드 소스코드 파일들을 컴퓨터에서 실행할 수 있는 소프트웨어로 변환하는 일련의 과정이다. 다음과 같은 과정을 진행한다. 라이브러리 다운로드 소스코드를 바이너리코드로 컴파일. 컴퓨터가 이해할 수 있는 기계어로 변환하는 작업이다. 자바의 경우, JVM에서 실행 가능한 바이트 코드 형태의 '클래스파일'이 생성되는데, 이것이 바이너리코드 이다. 바이너리 코드를 패키징 내가 만든 애플리케이션 코드를, 배포하고 동작시킬 수 있도록 패키징 하는 것 jar, war 파일로 패키징을 한다고 한다. jar JAVA 애플리케이션이 동작할 수 있도록 자바 프로젝트를 압축한 파일 class 파일(자바의 바이너리코드), 라이브러리 파일을 포함 JRE 만 있어도 실행 가능함(java -jar 프로젝트명.jar) war Ser..
자바 웹 애플리케이션이란? (스프링, 스프링부트 아님) 자바 웹 애플리케이션이란? WAS에 설치(deploy)되어 동작하는 어플리케이션이다. 자바 웹 어플리케이션에는 HTML, CSS, 이미지, 자바로 작성된 클래스(Servlet도 포함됨, package, 인터페이스 등), 각종 설정 파일 등이 포함된다. 그래서, 다음과 같은 구조를 가지게 된다(다양한 파일들을 모아두는 것임) 실제 인텔리제이에서 많이 보는 폴더 구조가, 자바 웹 애플리케이션의 폴더 구조를 말하는 것이다. 여기에 다양한 파일들이 모여있고, 이것을 실행시켜 자바 웹 애플리케이션을 실행시키는 것이다. 자바 웹 애플리케이션의 여러가지 구조 1. 기본 자바 프로젝트(gradle 선택) + Java의 Web Application Framework + Tomcat https://suyeonchoi.ti..
[JAVA] [JSP] JSP 간단 정리 기본 개념 JSP는, 결국 서블릿으로 바뀐다!!!!고 생각하면 된다. (톰캣이 JSP를 서블릿으로 바꾼다) HTML과 비슷하다고 해서 HTML처럼 동작하는게 아니다. 서블릿과 동작 방식이 같다! 따라서, JSP 파일을 작성할 때 종종 하면 좋은 생각은, "이 코드가 서블릿으로 바뀐 상태는 무엇일까?" 를 생각해보면 코드 이해가 빨라진다. 기본 예제 코드 http://www.w3.org/TR/html4/loose.dtd"> 서블릿 라이프사이클 따라간다 JSP 코드에 맞는 서블릿 객체가 없다면 -> JSP엔진이 서블릿으로 바꾼 후 -> 서블릿 라이프사이클 따라간다 JSP 내장객체 JSP를 실행하면 서블릿 소스가 생성되고 실행된다. JSP에 입력한 대부분의 코드는 생성되는 서블릿 소스의 _jspService(..
HttpServletRequest 객체, HttpServletResponse 객체 1. WAS가 요청/응답 시 생성하는 객체 = HttpServletRequest 객체, HttpServletResponse 객체 2. HttpServletRequest 객체 http프로토콜의 request정보를 서블릿에게 전달하기 위한 목적으로 사용합니다. 헤더정보, 파라미터, 쿠키, URI, URL 등의 정보를 읽어 들이는 메소드를 가지고 있습니다. Body의 Stream을 읽어 들이는 메소드를 가지고 있습니다. 3. HttpServletResponse 객체 WAS는 어떤 클라이언트가 요청을 보냈는지 알고 있고, 해당 클라이언트에게 응답을 보내기 위한 HttpServleResponse객체를 생성하여 서블릿에게 전달합니다. 서블릿은 해당 객체를 이용하여 content type, 응답코드, 응답 메시지등을..
[Java] [Servlet] Servlet의 생명 주기 1. Servlet의 생명 주기와 관련된 메서드 init() 서블릿이 처음으로 요청될 때 초기화를 하는 메서드입니다. 클래스를 new 해서 사용하듯 서블릿 클래스도 초기화해주어야 사용이 가능합니다. 이렇게 초기화된 서블릿은 싱글톤으로 관리되어 다음에 한번 더 해당 서블릿 클래스를 호출하면 초기화가 다시 일어나는 것이 아니라 기존에 있던 서블릿 클래스를 호출합니다. service() 서블릿 컨테이너가 요청을 받고 응답을 내려줄 때 필요한 서블릿의 service 메서드입니다. Servlet interface를 구현한 HttpServlet 클래스의 doGet, doPost 같은 메서드들이 호출됩니다. destroy() 더 이상 사용되지 않는 서블릿 클래스는 주기적으로 서블릿 컨테이너가 destory() 메서드..
[Java] [Servlet] Servlet이란? 들어가기 전... 자바 웹 애플리케이션이란? WAS에 설치(deploy)되어 동작하는 어플리케이션이다. 자바 웹 어플리케이션에는 HTML, CSS, 이미지, 자바로 작성된 클래스(Servlet도 포함됨, package, 인터페이스 등), 각종 설정 파일 등이 포함된다. 그래서, 다음과 같은 구조를 가지게 된다(다양한 파일들을 모아두는 것임) 실제 인텔리제이에서 많이 보는 폴더 구조가, 자바 웹 애플리케이션의 폴더 구조를 말하는 것이다. 여기에 다양한 파일들이 모여있고, 이것을 실행시켜 자바 웹 애플리케이션을 실행시키는 것이다. 1. Servlet 정의 자바 웹 애플리케이션의 구조에서, 요청과 응답을 처리할 수 있는 Java 클래스 WAS( 예) tomcat)에서 동작하는 Java 클래스이다. 웹 페이지를..