분류 전체보기

    Spring 다시시작

    들어가기에 앞서 먼저 spring을 입문을 한 적이 있었다. 아무런 웹 관련된 지식하나 없이 공부를 하겠다고 뛰어들었는데 html이뭔지 css가 뭔지도 모르는 상태로는 안되겠다 싶어서 처음부터 다시 시작을 하였다 html, css, javascript, servlet, jsp 이렇게 선행이 된다는 지식들을 공부를 하였다. 학부를 다니면서 나와같이 아무런 것도 이룬 것 없는 3학년들이 내주변에도 많이 보이는 것 같다. 늦었다고 생각하지 말고 기본부터 천천히 나가는 것을 추천한다 스프링이란 특정한 하나가 아니라 여러가지 기술들의 집합이다 기술 - 스프링 프레임워크, 스프링 부트, 스프링 시 큐리티, 스프링 배치, 스프링 데이터... 핵심 - 자바언어 기반의 프레임워크 자바언어 - 객체지향 언어 좋은 객체지향..

    MVC패턴

    모델1 - JSP파일에서 요청을 처리하고 해당 응답을 전송 비지니스 로직과 뷰 코드가 섞임 모델2 - 웹요청을 Servlet이 받아 처리 --> 알맞게 처리후 JSP페이지로 포워딩 MVC(model view controller) 모델 - 비지니스 영역의 로직을 처리(로직 처리클래스, 자바빈) 뷰 - 화면 출력(JSP) 컨트롤러 - 입력처리와 흐름제어(Servlet) 서블릿 - doGet(), doPost() 메서드를 호출 -> 요청 기능에 맞게 수행 -> 결과를 request, session에 저장하여 JSP로 전송 - 요청기능 분석 과정에서 커맨드 패턴코드 사용 url을 보면 ?type=post&page=3 과 같은 형태로 전송 이러한 것은 url을 사용자에게 노출시킴 --> 막기위해서 uri자체를 명..

    filter

    filter - http요청과 응뎁을 변경할 수 있는 재사용 가능한 클래스(ex character Encoding방식 지정) 여러개의 filter를 chain으로 연결해서 순차적으로 필터링 가능 client요청, 응답filterjsp, servlet filter interface - init - 초기화시 호출, dofilter - 필터링& chain을 이용해 다음 filter로 이동, destroy-filter가 웹 컨테이너에서 삭제될때 web.xml에서 을 통해 filtering대상 지정가능 - url-mapping : 해당 형식의 url을 가진 것은 모두 대상 - servlet-name : 특정 servlet을 대상

    JSTL2

    국제화태그 로케일지정 --> request.setCharacterEncoding("") 메시지처리 - 태그 몸체에서 사용할 리소스 번들 지정 경로 - resource.message와 같이 지정 setBundle과 차이점 - setBundle은 어디서나 변수로 접근 가능 bundle은 태그 내에서만 사용가능 --> 번들에서 {0} {1} 과 같이 값이 변경 가능 한 것에 지정, 배열 순서와 같음 숫자 및 날짜 포맷팅 책참고 필요할때 찾아보면 될듯

    JSTL1

    0{ for(int i=0; i 데이터가 없습니다. ${data.title} 데이터가 없습니다. 사용이유 - 스크립트 코드 사용줄이면서 가독성 높이기 위해 태그종류 - 코어(변수지원 흐름제어 url처리), 국제화(지역, 메시지형식, 숫자및 날짜형식), 함수(컬렉션처리 string처리) xml(xml코어 흐름제어 xml변환), 데이터베이스(sql) --> 주로 사용안함 코어태그 변수지원 scope - 변수를 저장할 영역, page, request, session, application --> url로 넘겨줄 값 지정 *절대주소 - https://www. naver. com 과 같은 완전한 url 상대주소 - /view/list.jsp와 같은 것 request.sendRedirect와 같은 역할 기타 esc..

    EL

    JSP의 스크립트 요소를 보안하는 역할 ${'expr'} 형태로 작성 boolean, Long, Double, String, Null type 저장 된 값에 접근 하기 위해서 . 혹은 [] 두개를 사용 연산 - 계산, 비교, 논리, empty, 삼항연산 가능 문자열 연결 위해 + 사용 List map 과같은 자바 컬렉션사용가능 람다식, 스트림 사용가능 * ${a : b} --> a의 값은 출력 되지 않고 b만 출력 됨 특수문자 - \사용 jsp파일에서 import를 시켜 java파일에 있는 메서드 사용 가능 정적 메서드를 사용하기 위해서 TLD파일을 작성을 해 주었지만 3.0에서는 바로 import를 통해 사용가능 EL을 비활성화 시키는 것도 가능

    자바빈

    자바빈 - 데이터 변경 이벤트 객체직렬화를 위한 표준 property - 쉽게 getter setter를 생각하면 됨 - jsp페이지에서 사용할 자바빈 객체를 지정할때 사용 * scope = 객체를 저장할 영역 (page(default) request session application) class에서 id로 객체를 만들어서 scope에 저장해서 사용 setProperty를 사용할때 property의 값을 *로 지정할 경우 모든 값을 저장

    페이지 모듈화

    - 페이지 내에서 상단메뉴, 좌측메뉴 등과 같은 동일한 것을 모듈화를 시켜 중복 제거 flush가 false면 출력하지 않음 main페이지에서 include태그가 실행되면 병렬적으로 실행 되는 것이아니라 먼저 page를 include시키고 다음 문장 출력 - 포함시킬 페이지에 argument로 보내주기 위해서 사용 받은 쪽에서는 request.getParameter("name")을 통해서 받아옴 request.setCharacterEncoding()을 통해서 인코딩을 하지 않으면 올바른 값 전달 안될 수 있음 - 페이지를 redirect하지 않고 해당 페이지의 내용을 전부 제거하고(출력버퍼에서) 새로 출력

    에러처리

    에러페이지 지정 - 에러페이지 작성 - 응답 상태별로 에러페이지 지정 - web.xml파일에 에러코드와 페이지경로를 지정 아래 코드를 에러 코드번호(200, 307, 400, 401, 404, 500, 503) 별로 지정을 별도로 하면됨 코드번호 에러페이지 경로 익셉션 별로 에러페이지 지정 - 위 코드에서 error-code를 excption-type으로 변경 ex) java.lang.NullPointerException

    끝

    끝!