1. 액션 태그? 액션 태그는 JSP페이지에서 자바 코드 등의 스크립트 언어를 사용하지 않고도 다른 페이지의 서블릿이나 자바빈의 객체에 접근할 수 있도록 태그를 이용해 구현된 기능을 의미한다. 2. 액션 태그가 제공하는 기능들 - 페이지와 페이지 사이의 제어 이동이 가능 - 다른 페이지의 실행결과를 현재 페이지에 포함 가능 - 웹 브라우저에서 자바 애플릿을 실행하는 기능도 제공 ( 자바 애플릿: 자바 내에서 미디어를 다루는 기본 라이브러리, 요즘은 사용하지 않는다.) - JSP 페이지에서 페이지 모듈화와 흐름 제어를 위해 , 를 제공한다. 즉, 이전에 포스팅한 forward와 include는 JSP에서 기본으로 제공하는 액션 태그라고 할 수 있다. - 자바빈 사용을 위해 useBean, setProper..
지금까지 request만을 사용하여 예제를 작성했으나, 데이터를 주고 받는데는 다양한 방법들이 있다. 즉, 하나의 Web Application에는 각각의 데이터를 저장하는 객체들이 존재하는데, 그 범위가 작은 순서로 나열해보면 PageContext -> request -> session -> application 이다. 이를 한눈에 알아보기 쉽게 그림을 나타내면, 위 그림과 같이 표현할 수 있다. 즉, 각 객체는 Attribute라는 이름으로 데이터를 map 형태로 저장할 수 있고, 이러한 데이터는 각 객체의 범위에 따라 JSP에서 JSP로 값을 옮겨야 하거나, 혹은 동일한 값을 공유하여 사용하거나 하는 동작으로 수행할 수 있다. 각각의 객체의 데이터 이동을 확인해 볼 수 있는 예제를 하나 작성해보면서 ..
Response의 Redirect는 해당 페이지에서 요청한 Request값을 받아서 다시 다른 페이지로 넘겨야 하는 경우, 새로운 Request를 하나 더 생성하여 다음 페이지/파일로 보내는 구조로 동작한다. 하지만, 이때 forward를 사용하면 최초로 요청한 request가 그대로 유지되어 다음 페이지로 전송되게 된다. 간단한 예시를 보며 이해해보자. 기본적인 페이지의 구조는 다음과 같다 forwardForm.jsp -> forwardTest.jsp -(if 성공)-> forwardResultSuccess.jsp -(if 실패)-> -> forwardResultFail.jsp ◎ forwardForm.jsp 입장하려면 나이를 입력하세요 ◎ forwardTest.jsp
기본적으로 respnse.sendRedirect()를 이용하여 쿼리스트링을 보낼 때는 POST 방식을 사용하기 때문에, 지시자를 이용하여 페이지 자체의 인코딩을 변경하였다고 해도, 정보를 내보낼 때 한글이 깨지게 된다. 아래 예시로 한번에 확인할 수 있다. 를 타고 들어가기 때문에 post 방식으로 들어간다. = 한글이 깨진다 }else { response.sendRedirect("loginResult.jsp?code=fail"); } %> 이와 같이 내보내게 되면 100% 해당 정보를 받는 main.jsp 에선 한글이 깨져서 들어간다. 따라서 main.jsp가 아무리 쿼리스트링을 인코딩해서 받는다고 해도, 정보를 제대로 받을 수 없기 때문에, 반드시 정보를 내보내는 쪽에서 먼저 한글을 인코딩하는 과정이..
JSP는 편리하게도 Include 지시자를 활용하여 이미 만들어 놓은 페이지를 참조하여 코드의 재사용성을 높일 수 있다. ◎main.jsp 프론트 페이지 서브 페이지 이동 ◎sub.jsp 서브 페이지 메인 페이지 이동 ◎footer.jsp All contents Copyright 2021 freeflux Inc. all rights reserved Contact mail: Choonham4@gmail.com 이와 같이 간단하게 코드를 구성하여 다른 페이지에서 단 한줄로 이미 만들어놓은 footer를 참조받아 사용할 수 있다. 결과를 확인해보면, 메인과 서브 페이지 모두 footer를 동일하게 가지고 있는 것을 확인할 수 있다!
JSP는 지시자를 통해 에러가 발생했을 때, 사용자에게 보여지는 에러 페이지를 지정해줄 수 있다. JSP 문서내에 문제가 발생한 경우 예외처리(에러 페이지 출력) 위와 같이 코드를 짠다면, 0으로 나누는 연산이 들어갔기 때문에 반드시 난다. 이 때, 2번 라인처럼 지시자를 활용해 error페이지를 명시해줄 수 있다. 반가운 친구가 놀러왔어요~ 에러 페이지는 위와 같이 작성했다. 그러나 에러 페이지에서도 2번 라인과 같이 현재 페이지가 에러 페이지로 활용될 것이라는 것을 명시해줘야 사용할 수 있다. 이제 코드를 실행해보면,
직전에 포스팅한 내용을 좀 더 연습해보기 위한 예제이며, 마찬가지로 CSS가 전혀 포함이 되지 않은 단순 게시판이다. 대략적인 페이지의 구성은 다음과 같다 1. index.html 로드가 되자마자 list.jsp로 넘어간다. 2. list.jsp 상품의 번호, 이름, 원가와 판매가, 등록 날짜 등이 적힌 페이지로, 검색 값을 쿼리스트링으로 받아 null값일 때는 전체보기, 검색값이 있다면 이름에 검색 값을 포함하고 있는 제품만 표시하도록 구성되어 있다. (깜빡하고 전체보기 버튼을 만들어 두기만 하고 구현해놓지 않았다..ㅎㅎ) "상품 등록" 버튼을 눌러 uploadForm.html로 이동할 수 있다. 3. uploadForm.html 단순히 입력 값을 받아 upload.jsp로 넘겨주는 역할을 하는 페이지..
이번엔 JSP와 몇개의 태그만을 이용해서 로그인 기능이 없는 아주 간단한 게시판 페이지를 하나 제작해 볼 것이다. 아직 CSS는 전혀 활용하지 않기 때문에 굉장히 밋밋해 보일 수 있지만, 데이터의 기본적인 흐름을 알기엔 아주 좋은 예제이다. 우선 기본적인 게시판의 구성은 다음과 같다. 1. Index가 로드됨과 동시에 list.jsp로 넘어간다. 2. "글쓰기"를 클릭하면, 글 번호가 담긴 쿼리스트링과 함께 detail.jsp로 넘어간다. 이때, detail.jsp는 DB와 연동되어 게시글의 세부 내용을 확인할 수 있다. 3. 각 버튼은 다음과 같은 동작을 한다. 1) 수정: to updateForm.jsp 2) 삭제: to delete.jsp 3) 목록: to list.jsp 4. 수정 버튼 클릭 시 ..
- await
- react
- react-native
- Promise
- 인천 구월동 이탈리안 맛집
- redux
- 정보보안기사 #실기 #정리
- 이탈리안 레스토랑
- AsyncStorage
- redux-thunk
- 인천 구월동 맛집
- Async
- 파니노구스토
- javascript
- 맛집
- Total
- Today
- Yesterday