이때까지 앞에서 작성했던 코드들은 JAVA 코드와 HTML 코드가 군데 군데 흩어져 있어 찾기 힘들었다. 그래서 JAVA 코드는 JAVA 코드끼리 HTML 코드는 HTML 코드끼리 모으려고 한다. 그러기 위해서는 임시 변수를 이용해서 코드를 분리해줘야 한다. 코드를 나눠주는 Model과 Model을 사용해서 화면을 출력하는 View, 이 Model을 만들어내는 코드인 Controller로 이루어진 MVC 방식을 사용해보도록 하겠다. 앞에서 나눠져 있던 JAVA 코드와 HTML 코드를 한 곳에 모아서 가져와야 한다. 여기서 사용하고 있는 ResultSet은 아래의 HTML쪽 코드에서 사용할 수 없으므로 임시 변수 즉, 모델을 준비해주도록 한다. Model1 Model1은 JAVA 코드를 위쪽으로 옮겨 이를..
JDBC에서 데이터베이스 연결 하는 것을 공부한 적이 있었다. 데이터베이스와 JDBC 연결하기 참고 : 2023.03.14 - [강의 정리/JDBC] - 오라클 DB와 JDBC 연결하기 오라클 DB와 JDBC 연결하기 JDBC JDBC란 자바에서 데이터베이스를 연결하고 그 안에 있는 데이터를 가져오기 위해 사용하는 자바 API를 말한다. DB에는 Oracle뿐만 아니라 MY SQL 등 다양한 종류의 DB들이 있을텐데 이 DB에 접근하 myblog1128.tistory.com 2023.05.28 - [국비 지원/JDBC] - [JDBC] JDBC와 데이터베이스 연결하기 [JDBC] JDBC와 데이터베이스 연결하기 JDBC(Java DataBase Connectivity) 자바에서 데이터베이스와 연결하여 데..
모든 JSP 페이지에 한글 깨짐을 방지하기 위한 페이지 지시자를 등록해야 한다. 즉, 페이지 상단에 블록을 이용해서 UTF-8을 설정해야 한다는 것이다. 이에 대해서 자세히 알아보자. JSP를 누군가가 요청하게 되면 한글이 깨지게 된다. 왜냐하면 우리가 보기엔 HTML 형식으로 보이지만 실제로는 Servlet이기 때문이다. Jasper에 의해서 out.write()로 될 때 인코딩이 설정되어야 한다. 아래의 사진을 통해 확인해보자. 먼저 확장자가 html인 경우는 페이지 지시자가 없어도 한글이 깨지지 않고 잘 출력되는 것을 확인할 수 있다. 하지만 확장자가 jsp라면 페이지 지시자가 없다면 한글이 깨져서 잘 보이지 않는 것을 확인할 수 있다. 이 JSP 파일을 한글이 깨지지 않게하려면 페이지 상단에 페이..
EL(Experession Language)이란? 저장 객체에서 값을 추출해서 출력하는 표현식을 말한다. ${result} 이전 글을 보면 View에서 request.getAttribute("result")는 값을 꺼내는 역할만 하고 출력은 태그를 사용했었던 것을 기억할 것이다. 하지만 ${result}와 같이 EL을 사용한다면 값을 꺼내서 출력까지 할 수 있다. 이는 리스트를 사용할 때 더 편리하다. EL을 사용하지 않고 자바 코드를 사용했다면 아래와 같이 표현할 수 있다. // Controller List list = new ArrayList(){"1", "test"}; request.setAttribute("list", list); // View ((List)request.getAttribute("..
일반적으로 JSP로 코드를 짜면 아래와 같다. 특히나 짝수와 홀수를 출력하는 부분은 코드를 알아보기도 힘들뿐만 아니라 코드가 흩어져있어 불편하다. 홀수 짝수 MVC Model1 이를 간편하게 해줄 수 있는 것이 MVC model1이다. 코드를 만들 때 블럭을 최소화시키는 것으로 위쪽에 코드를 몰아넣고 아래에는 출력하는 부분만 남겨둬서 아래의 코드처럼 좀 더 알아보기 쉽게하는 것을 말한다. MVC를 설명하면 아래와 같다. Model은 출력 데이터를 말하고 View는 출력을 담당하는 HTML 코드를 말한다. 그리고 Controller는 입력과 제어를 담당하는 자바 코드를 말한다. Model1은 컨트롤러와 뷰가 물리적으로 분리되지 않은 방식이라고 할 수 있다. MVC Model2 Model1과 다르게 컨트롤러..
내장객체 JSP 내에서 선언하지 않고 사용할 수 있는 객체로 JSP가 Servlet 형태로 자동 변환된 코드 내에 자동으로 포함되어 있는 각종 참조 변수들을 말한다. 즉, 내장 객체를 별도의 선언없이 사용할 수 있다. 따라서 태그 안에서는 int page = 1;과 같이 선언할 수 없고 page = 1;과 같이 선언 가능하다. 1. request : HttpServletRequest 메서드 설명 getParameterNames 사용자가 전달한 키들을 Enumeration 객체로 반환 getParameter(name) 사용자가 전달한 name과 일치하는 값을 반환 getParameterValues(name) 사용자가 전달한 name과 일치하는 값을 배열 형식으로 반환 getCookies() 클라이언트에서 ..
Jasper Jasper는 JSP를 Servlet으로 컴파일해주는 톰캣의 JSP 엔진이다. Jasper를 사용하지 않는다면 아래와 같이 코드 작성하기가 불편해지는 것을 확인할 수 있다. PrintWriter out = response.getWriter(); out.write(""); out.write(""); out.write(""); out.write(""); // 자세한 코드 생략 out.write(""); out.write(""); Jasper에게 일을 시키기 위해서는 확장자에 .jsp만 붙이면 된다. 이 .jsp 파일을 톰캣(Web Server)은 Jasper에게 넘겨서 Servlet을 만들게 되는 것이다. Jasper를 사용한다면 위의 코드처럼 out.write()를 사용하지 않고 아래의 코드처..
스프링 부트 프로젝트를 실행했을 때 아래의 사진과 같이 포트 번호가 이미 사용중이라는 오류가 발생했다. 일단 제일 먼저 포트 번호를 바꿨으나 전과 똑같이 포트 번호를 사용중이라고 오류가 발생했다. 해결방법 포트 번호를 바꿔도 해결이 되지 않는다면 포트를 강제 종료시켜야 한다. 먼저 cmd 창에서 netstat -ano를 입력해보자. 그러면 위에서 말했던 80번 포트 번호가 동작 중인 것을 확인할 수 있다. 동작 중인 80번 포트 번호를 강제 종료시키면 된다. 위에서 확인했다싶이 80번 포트의 PID는 7708이다. 그렇다면 taskkill/f/pid 종료시킬 포트번호 명령어를 통해 아래와 같이 포트를 강제 종료시키면 프로젝트가 잘 동작하는 것을 확인할 수 있다.