GitHub

https://github.com/Backcoder-June

BackCoder 기록 그리고 숙달

분류 전체보기 171

Dependency Injection => Inversion Of Control

Spring 하면 빠질 수 없는 특징이 Dependency Injection 이다. [[ DI ]] : Spring 프로그래밍 기법으로써, 현재 자바클래스에서 객체 생성 주도권을 없애고, Spring 의 Bean container 에서 객체 생성, 전달의 주도권을 갖는다. 이렇게 주도권이 뒤바뀌면서 Inversion Of Control 이 되는 것. 무엇이냐 도 중요하지만 왜? 가 더 중요한 것 같다. Member m1 = new Member( ); 여태 잘만 자바 클래스에서, 주도적으로다가 객체를 생성해서 편하게 사용했는데, 왜 불편하게 Bean container 라는 놈에서만 객체생성해서 사용하라는거야 그냥 쓰면 안되나? 1. Coupling - 객체를 생성한다는 건, 말 그대로 새롭게 new 하나의..

Back to the Spring 2022.08.18

[Spring] Spring MVC 의 등장

Servlet 과 JSP 의 시대였다. Servlet 가지고 로직처리하고, 특히 뷰단까지 직접 만들다보니 불편하다. 뷰단만드는거 불편해 죽는줄 알았네 차라리 뷰단에서 자바를 가져다 쓰자 => JSP 등장. 뷰단에서 자바는 최대한 조금만 사용하면서 만들어보자 불편하니? EL 을 써봐. 불편하니? JSTL을 써봐. 좋긴한데, 그래도 로직처리는 자바가 편한거 같은데? JSP 너는 뷰단 꾸미는건 기가막히네. 그럼 각각의 장점을 살려보자. Servlet은 컨트롤러, 서비스단 로직처리, 맵핑역할 전담하고 JSP는 뷰단 역할 전담하자. 이렇게 하다보니 VIEW 단과 비지니스로직단이 점차 분명히 나뉘어지게 되었고, Model : 로직을 뒤에서 열심히 처리한 최종 결과값을 Model 에 담아두고 View : 따로 이쁘게..

Back to the Spring 2022.08.18

[JSTL] url 맵핑 <c: import / redirect url=" " >

[ URL 맵핑 넘기기 ] - URL 맵핑 넘기기는 Java에서부터, RequestDispatcher 을 사용해 forward / include 방식으로 가능했다. - JSP 액션태그를 사용하면 더욱 간단하게 사용이 가능했다. [ 자바 ] [ JSP action 태그 ] => 이것의 JSTL 버전을 url 태그로 만들어둔 것. [ JSTL 버전 URL 맵핑 ] : url 태그로, 맵핑할 url 을 변수로 담아두고 사용하면, 가독성을 높일 수 있다. ( 바로 url 에 주소를 입력해도 된다. ) (1) import 방식 : 현재 페이지에 import 방식으로 url 주소에 담아둔 jsp 를 가져오겠다. ( 가져오면서, import 하는 jsp 에 파라미터로 ?name=jho&age=100 준 값으로 가져오..

Back to the JSP 2022.08.13

[JSTL] 조건문 <c:if /> <c:choose/when/otherwise />

- EL에서는 ${empty X ? A : B } 사용해서 조건3항연산자 정도만 사용 [[ JSTL if조건문 ]] - JSTL에서는 실행 태그 사용 - else 문 없다. => if 문으로 case 별로 조건 줘서 사용 - !(부정) 사용해서 조건을 세팅 해서 사용 true면 출력 false이면 출력 입력된 정보가 부족합니다. ${param.name} 님 성인인증 완료 ${param.name} 님 고등학생 인증 완료 ${param.name} 님 미성년자 입니다. ${param.name} 님 올바르지 않은 입력입니다. [[ JSTL choose 문 ]] : choose / when / otherwise - choose 로 switch 문 처럼 선언 해주고 사용 - when == if else - othe..

Back to the JSP 2022.08.13

[JSTL] 반복문 <c: forEach items var varStatus />

[[ JSTL 반복문 ]] : forEach - 배열 / Array / Map 다 사용 [ 기본 반복문 ] 반복문 결과 : ${eachcolor} - items : 뽑을 배열 / List / Map - var : 하나씩 담는 변수 [ varStatus 기능 제공 ] [ count / inedex ] ${ vs.count } 번째 색 : ${eachcolor} vs : varStatus 호출할 때 사용할 이름 아무거나 index : 0부터 번호 주기 count : 1부터 번호 주기 [ current ] 반복중일때 데이터 값 : ${ vs.current } current : 반복문 돌리면서 나오는 현재 결과 값 => 변수 따로 선언 안하고, 그냥 바로 뽑으려면 사용 [ first / last ]..

Back to the JSP 2022.08.13

[JSTL] <c: set /> 변수 : Java 와 EL 중개자

[[ JSTL ]] - JSP Standard Tag Library : 사용자정의 태그 라이브러리 - EL 까지는 JSP 가 기본으로 제공해주지만, 1. 변수 선언 2. 조건문 3. 반복문 특히나 이 기능들이 제대로 제공되지 않는 단점이 있다. 이런 기능들을 태그로 만들어, 편하게 사용하라고 라이브러리로 만들어 둔게 JSTL 이다. - 라이브러리 설치 ( dependency ) - 지시자 설정 필수 ( 페이지 지시자 밑에 설정 ) - uri 지정 필수 : JSTL 여러 종류가 있는데, 그중 core 를 사용하겠다. - preifx : JSTL 사용할때, 접두사로 c 를 사용하겠다. ( core의 c 를 기본으로 사용한다. 코드 재활용성을 생각해 유저들이 c 로 맞추어 사용한다. ) ------------..

Back to the JSP 2022.08.13

[JSP] EL - Expression Language

[[ EL ]] ( Expression Language ) : 화면에 출력 쉽게 도와주는 JSP 전용언어 ( HTML 단에서 사용 ) [ isELIgnored ] (default) : 이엘 코드 있으면 무시 = false - true 로 하면 이엘코드 무시 - EL 은 기본적으로 를 타도할 목적을 갖고 있다. [ 화면출력 ] ${123} ${"문자"} ${true/false} : true 표시 ${null} : 공백취급 => 바로 웹에 출력이 된다. ( == 자바 out.print ) - 단순한 출력은 HTML로 바로 출력하면 되지만, EL 의 강점은 따로 있다. [ EL 기능 ] 1. 연산 기능 제공 2. 쉬운 get 표현 제공 - request.getParameter ( " id " ) => ${ p..

Back to the JSP 2022.08.11

jsp:useBean 사용시 jasperException 컴파일 오류. cannot be resolved to a type

[ useBean으로 class 가져다 쓸 때 ] 기본적으로 class 가져오는 경로를 적을 때, - default package 는 인식 못함 ( Java 패키지안에서 바로 있는 클래스 (X) 즉, 어디라도 package 안에 넣어줘야 인식한다 ) - 원래 사용하던 DTO 같은 클래스 객체가 인식이 안될때가 있다. org.apache.jasper.JasperException: JSP를 위한 클래스를 컴파일할 수 없습니다. Servlet.DTO cannot be resolved to a type ========= 해결법 ======== - 해당 클래스 복사해서 새 폴더에 넣어서 사용해보면 잘 진행된다. 정확한 이유는 아직 모르겠다. 사용하던 클래스를 해..

Back to the JSP 2022.08.11

[JSP] action태그 useBean / get||setProperty

[ 객체생성 action태그 ] : Java로 쓰는거 싫어하는 사람들을 위해 액션태그로도 사용할 수 있게 해줄게. [ useBean ] : 자바 객체 생성 문장을 JSP action 태그로 표현 == id : 객체명 class : 클래스명 - 기본생성자 호출 ( 기본생성자 필수 ) - class로 가서 객체 가져와야 하므로, 패키지명도 같이 붙여줘야 한다. ( class 경로는 억지로라도 어떤 폴더 안에 있어야 한다. ) : 이 Bean객체 자체를 해당 scope 방식으로, setAttribute 에 담아두겠다. memberDTO m1 = new memberDTO( ); request.setAttribute( "m1", m1 ); == ( forward 방식 ) : memberDT..

Back to the JSP 2022.08.11

[ 서블릿 + JSP ] 효율적으로 섞어쓰기

[ 서블릿 + JSP 효율적으로 섞어쓰기 ] => 요청받고 처리하는건 Servlet 이 잘하고, 응답은 JSP 가 잘한다. => 섞어쓴다. 1. [ 요청 ] HTML / JSP : 웹페이지에서 사용자의 입력 => 요청 발생 => form action (url)로 날림 2. [ 요청 받기 ] Servlet [ 대장 Controller ] : (@Webservlet) 요청 받음 - 요청 값 받음 request.getParameter() - 전체적인 맵핑을 이 서블릿이 Control 한다. - 여길 거쳐서 맵핑되도록 짜는 방법 3. [ 요청 처리하기 ] Servlet : 요청 비지니스로직 처리 - DAO / DTO 이용 로직 처리 4. [ 응답은 니가해라 ] Servlet => JSP : setAttribut..

Back to the JSP 2022.08.10