커스텀 태그 - 스크립트 요소(스크립틀릿, 표현식 등)가 많아질수록 JSP 코드는 복잡해진다. - 커스텀 태그를 이용하여 위 문제점을 해결 - JSTL이 표준 커스텀 태그인데 이처럼 코드의 가독성을 높여주는 방법 - JSP tag 파일을 생성해서 사용할 수 있음. 태그파일에서 사용할 수 있는 디렉티브들 디렉티브 설명 tag JSP 페이지의 page 디렉티브와 동일. 태그바일의 정보를 명시. taglib 태그파일에서 사용할 태그라이브러리를 명시. 사용법은 JSP 페이지와 동일 include JSP 페이지와 마찬가지로 태그 파일에 특정한 파일을 포함시킬 때 사용. attribute 태그 파일을 커스텀 태그로 사용할 때 입력받을 속성을 명시. variable EL 변수로 사용할 변수에 대한 정보 저장. tag..
- include 디렉티브도 액션태그와 마찬가지로 지정한 페이지를 현재 위치에 포함시키는 기능을 제공함. - 하지만 포함하는 방식에 액션태그와의 차이점이 분명히 존재. - 액션태그는 실행흐름이 해당 페이지로 넘어가는 방식 - include 디렉티브는 다른 jsp 내용을 현재위치에 삽입하여 자바파일로 변환한 후 컴파일하고나서 진행되는 방식. - 실행흐름이 다른 jsp 파일로 넘어가는 방식과 컴파일 이후 수행되는 방식의 미묘한 차이점 존재 - include 디렉티브를 통해 다른 JSP에 포함되는 JSP 파일의 경우 일반 JSP 파일과 구분하기 위해서 확장자로 jspf를 사용하는 편. 확장자를 jsp로 사용해도 되긴함. jspf는 JSP Fragment의 약어. jsp 소스조각이란 뜻. 액션태그가 레이아웃의 ..
액션태그의 주요 사용 방법 page : 포함할 JSP 페이지의 경로를 지정 flush : 지정한 JSP 페이지를 실행하기 전에 출력 버퍼를 플러시할지 여부를 지정한다. true이면 출력 버퍼를 플러시하고, false 이면 플러시하지 않는다. flush 속성이란?? → https://sas-study.tistory.com/203 [JSP] flush 속성 - jsp 액션태그(예 ) 속성 중 flush라는 속성이 있다. 이는 true, false 를 값으로 가지는 boolean 속성이다. - 이는 jsp:include 액션태그.. sas-study.tistory.com 액션태그 동작방식 메인.jsp가 웹 브라우저의 요청을 받게됨 액션태그를 만나기 전까지의 메인.jsp의 출력내용을 출력버퍼에 저장 액션태그를 ..
- jsp 액션태그(예 ) 속성 중 flush라는 속성이 있다. 이는 true, false 를 값으로 가지는 boolean 속성이다. - 이는 jsp:include 액션태그가 실행될 때 출력버퍼에 저장된 기존 코드들을 플러시하고 서브 페이지로 실행흐름이 이동한다는 말이다. 동시에 응답상태코드와 HTTP응답 헤더가 웹브라우저에 함께 전송된다. - 응답상태코드와 HTTP 응답헤더가 웹브라우저에 전송된다면 새로 헤더정보를 추가하더라도 웹 브라우저는 받을 수 없게 된다. - 따라서 일반적으로 flush 속성을 false 로 지정하는 것이 좋다. 왜냐하면 하나의 jsp:include 액션태그의 flush 속성이 true로 설정되어 있다면 출력버퍼는 비워지고 모든 헤더정보를 웹브라우저에 전송하게 되는데 나중에 헤더..
- JSP는 실행 도중 익셉션이 발생하면 위의 에러화면 대신에 지정한 JSP 페이지를 보여줄 수 있는 기능을 제공하고 있습니다. - 익셉션 발생 시 보여줄 JSP 페이지는 page 디렉티브의 errorPage 속성을 사용해서 지정합니다. name 파라미터 값: 2번째 줄을 보면 page 디렉티브에 errorPage 속성에 jsp 주소를 값으로 넣으면 해당 페이지를 에러페이지로 사용할 수 있게 됩니다. 에러페이지 작성하기 - 에러페이지를 지정한다고해서 무작정 해당 페이지가 에러페이지로 사용할 수 있는것이 아닙니다. jsp 자신이 에러페이지라는 것을 인식할 수 있도록 해야합니다. - 에러페이지 jsp 파일의 page 디렉티브에 isErrorPage 속성을 true로 선언해주면 해당 jsp는 자신이 에러페이지..
- 웹 브라우저는 GET 방식과 POST 방식 두가지 방식중 하나를 이용해 파라미터를 전송. get 방식 지정방법 GET 방식은 요청 URL에 파라미터를 붙여서 전송하게 된다. https://sas-study.tistory.com/manage/newpost/?type=post&returnURL=%2Fmanage%2Fposts%2F 현재 글을 쓰고 있는 티스토리 블로그의 주소를 가져와봤다. ?type=post& 부터 파라미터값이다. 이름=값으로 매핑하고 &(앤퍼센트)로 파라미터들을 구분하고 있다.(%기호는 인코딩된 문자열이므로 저 자체가 문자열이라고 보면된다. 실제로 type과 returnURL이라는 파라미터가 넘어온 것이다.) - get 방식은 Query String이라는 문자열로 파라미터를 전송하는 것..
request 기본객체 - JSP 에서 가장 많이 사용되는 기본객체, 웹 브라우저의 요청과 관련 - 웹 브라우저는 해당 웹 서버에 연결한 후 요청정보를 전송하는데, 이 요청정보를 제공하는 객체 기능 클라이언트 정보 및 서버정보 보기 - 클라이언트가 전송한 정보와 서버정보를 볼 수 있는 메소드 제공. 클라이언트IP = 요청정보길이 = 요청정보 인코딩 = 요청정보 컨텐츠타입 = 요청정보 프로토콜 = 요청정보 전송방식 = 요청 URI = 컨텍스트 경로 = 서버이름 = 서버포트 = 본인 노트북으로 해당 JSP 페이지를 로드한 결과는 다음과 같다. request 객체의 요청 파라미터 관련 메소드들 메소드명 리턴타입 설명 request.getParameter("color"); String (중요*)이름이 "colo..
The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path 문장 그대로 해석해보면 자바에서 javax.servlet.http.HttpServlet클래스를 찾을 수 없다는 것. 그걸 넣어주면 되는데 라이브러리 형태로 현재 사용하고있는 was를 넣어주면 된다. 프로젝트 우클릭 -> Build path -> configuration build -> Libraries 탭 -> add library -> server runtime -> was 선택 해주면 해결될 것입니다.