728x90

web 23

이미지 업로드

html 파일을 통해 이미지를 업로드하기 위해서는 Multipart 객체를 사용하기 위해 cos.jar 파일이 필요하다. 업로드를 예시를 위한 .jsp 파일 text 박스에 입력한 값은 mid, file 박스에 입력한 값은 fileName으로 전달 .jsp 파일에서 넘어온 값을 전달해 줄 servlet 파일 전달받은 파일을 저장할 경로를 프로젝트가 저장되어 있는 경로로 지정해준다. 이후 MultipartRequest 객체(mr이라 명명)를 생성하여 저장 경로, 파일 최대 크기, 인코딩 등을 설정해준다. (MultipartRequest 클래스는 기본 생성자가 없다.) 이후 mr객체에 저장되어 있는 Parameter 값을 꺼낼 수 있고, Enumeration 컬렉션 프레임워크를 통해 mr 객체가 가지고 있는..

web 2022.08.29

Ajax 이용하여 아이디 중복검사하기

아이디 중복검사 예제를 위해 testVO와 testDAO를 만들어 두었다. testVO package test; public class TestVO { private String mid; public String getMid() { return mid; } public void setMid(String mid) { this.mid = mid; } @Override public String toString() { return "TestVO [mid=" + mid + "]"; } } testDAO package test; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql..

web 2022.08.25

JSP - MVC 모델 2

MVC 모델 2는 기존에 사용하던 MVC 패턴에 FC(FrontController) 패턴이 추가된 형태로 결합도는 낮추고 응집도는 높여 유지보수가 유리한 프로젝트를 만들기 위해 FC 서블릿 파일을 생성하여 분할 관리하는 패턴을 말한다. 기존에는 .jsp 파일로 존재하던 컨트롤러에 파라미터 값을 보내줘 작업을 수행하였지만 FC는 설정해 놓은 특정 요청(ex. ???.do)이 들어오면 어노테이션이 반응하여 작업을 수행하도록 구성한다. 기존 MVC 패턴에서 한곳에 존재하던 작업(ex. insert, delete, update...)을 클래스 파일로 분리하여 관리하며 그에 따라 메서드를 강제하는 인터페이스(추상 메서드)를 필요로 한다. 클래스에서 반환 타입을 어떤 경로로 보낼것인지, 어떤 방식으로 보낼 건지를 ..

web 2022.08.23

JSP 태그 활용

태그를 활용하여 HTML View파트의 코드를 더욱 깔끔하고 유지보수에 용이하게 작성가능하다 붉은 박스 부분을 태그언어로 구현 위 사진의 코드가 참조한 태그 댓글: 댓글: 로그인을 하지않아 mid가 null인 상태이면 하단의 조건문이 실행되며 로그인하여 mid에 값이 들어있을 경우 상단의 조건문을 실행한다. attribute를 이용하여 값을 입력받아 조건을 설정할 수 있으며 DAO 실행시 필요한 정보 또한 받아올 수 있다. 비로그인 시 실행화면 로그인 시 실행화면

web 2022.08.22

필터(Filter)

필터는 특정 요청에만 반응하는 특수한 형태의 서블릿으로 기존의 요청 정보를 탈취해서 자신의 작업을 처리하고(doFilter()) 원래대로 요청 정보를 다시 진행시킨다는 특징이 있다. 인증이나 인가, 로깅, 데이터 변환, 인코딩, 국제화(다국어 처리, 번역) 등의 경우에 사용할 수 있다. 웹 서버가 시작되면 필터 클래스의 init()이 동작하고 사용자가 서비스를 자유롭게 이용하던 중 특정 요청을 수행하게 되면 필터가 반응하여 doFilter()를 동작하여 작업을 처리하게 된다. 예시를 위해 만들어진 인코딩 .filter 파일 web.xml(환경설정 파일) 파일에 저장되어있던 초기화 매개변수(encoding) 사용 package test; import java.io.IOException; import jav..

web 2022.08.21

리스너 클래스(2)

리스너는 특수한 형태의 서블릿으로 특정 동작을 모니터링(감지)하여 설정한 기능을 자동 호출한다. 어떠한 동작을 감지할지는 사용자가 선택할 수 있다. 웹 프로그램은 서버가 시작되면 web.xml을 참조하고 @(어노테이션, 애너테이션)을 스캔하며 @WebListener(리스너 클래스)가 발견되면 어떤 동작에 대해 해당 리스너 클래스를 자동 호출해야하는지 별도로 기억한다. 많이 사용되는 설정으로는 Lifecycle과 Changes to attributes 등이 있으며 각각 서버, 세션, 리퀘스트의 단위로 적용되여 Lifecycle은 각각의 단위에 대한 생성과 소멸을 감지하며 Changes to attributes는 속성의 변경에 대해 감지한다. 예시를 위해 작성한 Member 클래스 package test; ..

web 2022.08.20

초기화 매개변수

초기화 매개변수는 웹 페이지가 실행될 때 필요한 정보를 전달해주며 서블릿 프로그램이 처음 실행될 때 클라이언트가 아닌 서버로부터 넘겨받는 값이다. 웹 프로그램은 모든 실행 시작점이 웹 서버의 구동이며, 이때 web.xml 파일이 자동으로 로드되기 때문에 해당 파일에 초기화 매개변수를 등록해서 웹 페이지 구동 시 매개변수 값을 읽어 들인다. web.xml은 WEB-INF폴더 하위에 존재하며 웹서버가 시작될 때 참조하는 환경설정 파일이다. 프로그램을 동작시킬 때 필요한 정보(ex. url, id, pw... 등)를 소스코드에 하드코딩 해왔었지만 이러한 정보들은 프로젝트 중간에 쉽게 변경될 수 있기 때문에 위와 같이 별도의 환경설정 파일인 .xml 파일에 보관한다. .xml 파일의 내부에 작성되는 은 Serv..

web 2022.08.18

리스너 클래스

리스너 클래스란 서블릿과 같이 POJO(Plain Old Java Object)가 아닌 클래스로 서블릿을 상속 받아 만들어진 특수한 형태의 서블릿이다. 어떠한 행동을 모니터링(감지)할지 선택할 수 있으며 해당 동작을 감지하면, 본인을 자동 호출할 수 있다. 즉, 인터페이스 행위가 감지되면, 내가 구현한 코드를 자동으로 호출할 수 있다. ex) 서버프로그램 실행하면 구현해둔 코드를 호출 예를 들기 위해 다음과 같은 클래스 파일 생성 이름과 번호를 변수로 가지고 있으며 기본생성자와 이름과 번호를 인자로 받는 생성자가 존재 package test; public class Member { private String name; private String phone; public String getName() { ..

web 2022.08.16

JSP - JSTL

JSTL이란 자바서버 페이지 표준 태그 라이브러리(JavaServer Pages Standard Tag Library)이며 Java EE 기반의 웹 애플리케이션 개발 플랫폼을 위한 컴포넌트 모음이다. JSTL은 JSP 페이지 내에서 자바 코드를 사용하지 않고 태그 내에 로직을 내장하는 효율적인 방법을 제공하며 표준화된 태그 셋을 사용하여 코드의 유지보수성을 높여주고 보다 완벽한 MVC 구조를 구축 가능하게 해 준다. 태그 라이브러리 지시어로 사용하며 다음과 같이 사용할 수 있다. forEach (반복문) var = " 변수명 " , items = "${가져올 데이터}" out (출력문) value = "출력할 값" escapeXml = " false " -> true로 설정할 경우, 출력 문자열에 포함된..

web 2022.08.16
728x90