목록JSP (+JAVA Web) (27)
코딩항해기

MVC패턴에 따른 게시글 화면 출력을 정리해보려고 한다.게시글 출력은 고정된 정보를 보여주는 정적 페이지가 아닌 동적 페이지이므로, DB를 거쳐야한다. 먼저 사용자가 게시글을 보겠다는 요청을 보내게 되면, Controller는 요청에 따라 Model에게 데이터를 요청하게 된다.(요청에 따라 Action을 실행한다.)Model은 Controller의 요청에 따라 해당하는 데이터를 DB에서 가져와 Controller에게 전달한다.(이 때 컨디션 등의 분기가 사용되기도 한다.)Controller는 Model로부터 받은 데이터를 정제하거나, 데이터를 이용하여 분기를 나눠 View에게 전달한다.View는 전달받은 데이터를 화면에 출력하여 사용자의 요청에 응답한다. 1. View먼저 요청을 보낼 페이지를 만들어보..

[JSP] JDBCUtil 템플릿 정리JDBC이긴한데 JSP에서 DB 연결할 때 사용하므로 JSP 카테고리에 정리했다.DB연결과 해제는 메서드로 만들어 사용하는 경우가 많고 그 형태가 패턴화되어있기 때문에 템플릿화된 코드라고 부른다. sminibcake.tistory.com DAO 부분도 고정된 형태로 진행되는 템플릿의 일종이라 한 번 정리한다.로그는 Controller에서 최대한 DAO에 들어와 코드를 보는 일 없이 console로 확인할 수 있도록 설계했다.현재 진행 중인 프로젝트의 boardDAO로 템플릿을 정리해보겠다. package model.jiyoon;public class BoardDAO { //쿼리선언 private final String INSERT = "쿼리문"; (생략) //고정 설..

[JSP] header, footer 넣기헤더 header홈페이지 제일 상단 부분이다. 네비게이션과 검색파트가 있어 스크롤 상단에 항상 고정되어 있는 경우가 많다. 푸터 footer모든 페이지의 맨 아래, 본문 내용 아래에 위치한 영역이다. minibcake.tistory.com [JSP] EL식, JSTLEL (Expression Language)속성 값을 편리하게 출력하기 위해 제공된 언어이다.JSP 2.0 버전에서 새로 추가된 언어이며, 지시어로 불러왔던 값을 ${}로 간단하게 사용할 수 있도록 도와준다. Attribute 형식minibcake.tistory.com 기존에 헤터푸터를 넣는 방식으로 incloud 지시자 태그를 사용했었는데 해당 방식이 오래되어 요즘에는 JSTL로 import한다..

[JSP] DB에서 이미지 파일 경로 받아서 화면에 띄우기예를 들어 마이페이지에서 특정 member의 프로필 이미지를 출력하는 기능을 구현하려고 한다.하지만 DB에 바로 이미지 파일을 저장할 수 없다는 점에서 해당 기능을 기존 id, 이름 출력처럼 진행하minibcake.tistory.com 지난 게시물에는 이미 저장되어있는 이미지 파일을 화면에 출력하는 방법에 대해 정리했다.이번에는 반대로 화면에서 입력받은 이미지를 DB와 서버에 저장하는 방법에 대해 정리해보겠다. VView(이하 V)에서는 이미지를 입력받을 태그를 만들어야한다. 이미지도 파일의 일종이므로, input[type="file"]을 사용하여 이미지를 사용자에게 입력 받을 수 있다. 전달받은 이미지 데이터는 파일급 데이터이기 때문에 바로 전..

예를 들어 마이페이지에서 특정 member의 프로필 이미지를 출력하는 기능을 구현하려고 한다.하지만 DB에 바로 이미지 파일을 저장할 수 없다는 점에서 해당 기능을 기존 id, 이름 출력처럼 진행하기 어려울 것으로 보인다. 그럼 어떻게 해야할지 MVC 대로 정리해보자. M먼저 Model 파트다.Model파트(이하 M)에서는 DB에 이미지 파일을 저장할 수 없기 때문에 서버에 저장된 이미지 파일의 경로를 DB에 저장한다. 지금은 이미지 저장이 아니라 출력이므로, 이 저장되어있는 경로를 원하는 조건에 맞춰 Controller(이하 C)에게 반환한다. CController는 마이페이지로 이동하는 요청이 오면, 페이지를 로드할 때 프로필 이미지가 뜰 수 있도록 마이페이지 Action class를 만든다. M로..

[JSP] Controller Servlet기존 실습들에서는 Controller가 분할되었다 다시 하나로 통합되는 과정을 거쳤다.하지만 여전히 응집도가 낮고 하나의 기능을 수정하기 위해서는 전체 기능이 사용 불가하다는 단점이 있었다.또minibcake.tistory.com 전의 게시물에서 작성했던 Controller 버전을 살펴보면, if문으로 분기를 나누는 기능 부분이 있다. ActionForward forward=null; if(command.equals("/main.do")) { MainAction mainAction=new MainAction(); forward = mainAction.execute(request, response); } else if(command.equals("/..

기존 실습들에서는 Controller가 분할되었다 다시 하나로 통합되는 과정을 거쳤다.하지만 여전히 응집도가 낮고 하나의 기능을 수정하기 위해서는 전체 기능이 사용 불가하다는 단점이 있었다.또한 html 태그를 사용하지 않는데도, jsp파일로 생성하는 단점이 있었다. jsp는 컴파일되면 servlet파일이 된다는 점을 생각하여 컨트롤러를 java 단으로 옮겨보자. java단으로 옮긴 컨트롤러는 Servlet 파일로 생성한다.이러한 Servlet 파일을 JSP에서 frontController라고 한다.public class frontController extends HttpServlet { private static final long serialVersionUID = 1L; //직렬화 코드 ..

오늘 내장 객체는 파라미터를 옮길 수 있는 내장 객체 3가지다. request는 요청으로 다른 관련 내용은 별도로 정리했다. [JSP] 내장 객체 (request, response)[JSP] 내장객체 (exception, out(PrintWriter))jsp에는 다양한 내장객체가 있다.그 중 exception과 out에 대해 정리했다. 내장 객체JSP 페이지에서 사용할 수 있도록 JSP 컨테이너에 미리 정의된 객체를 말한다minibcake.tistory.com request, session, application scope requestsessionapplicationscope유효기간, 유효범위하나의 요청 때만 유지하나의 브라우저에서 유지(+특정 시간만큼 유지)하나의 서버에서 유지 값 저장하기해당..

.xml ( eXtensible Markup Language) 웹에서 데이터를 전송하기 위해 미리 약속해둔 방식으로 만들어진 문서이다. 톰캣에서는 WEB-INF 하위에 web.xml 파일이 있다면, 해당 파일을 참고하여 설정한다.web.xml 파일에는 스키마(골격, 설정)가 필요하기 때문에 루트 엘리먼트로 web-app을 작성한다. web-app 이 web.xml 파일에서 error 발생시 연결할 페이지를 설정하기 위해서는 관련 태그를 알아야한다.error 페이지를 설정하기 위해 사용하는 태그로, 하위에 을 사용할 수 있다. 에러코드 작성한다. (404, 500 ...) 에러 자료형 작성한다. (최상위 에러 : java.lang.Throwable) 에 명시된 에러가 발생할 때 이동할 페이지를 작성한다...

커스텀 태그스크립트 요소가 많아질 수록 JSP코드는 복잡해진다.이러한 문제를 해결하기 위해 액션태그, JSTL, EL을 사용하지만 여전히 아쉬울 때 직접 태그를 제작할 수 있다. 이때 직접 제작한 태그를 커스텀 태그, 사용자 지정 태그라고 한다. 한 번 작성한 커스텀 태그는 재사용성이 높고, JSP코드의 가독성을 높이며, java언어를 모르는 다른 개발자와 협업할 때도 해당 태그 사용으로 해당 파트를 구현할 수 있다. 선언 (Core)태그를 사용하기 위해서는 JSTL처럼 상단에 선언을 먼저 해야한다.JSTL과 동일하게 코어 태그를 사용하며 사이트와 연결하는 것이 아니라 tag 폴더와 연결하는 것이므로 tagdir 속성을 사용한다. 예시더보기JSP tag (WEP-INF 하위의 tags 폴더 안에 생성..