WEB/백 21
-
REST란?먼저 REST (Representational State Transefer) 란?웹 서비스가 어떻게 동작해야 하는지에 대한 아키텍처 스타일 또는 설계 원칙이다.쉽게 말해 웹에서 데이터를 주고받는 규칙을 의미한다. REST는 클라이언트와 서버 간의 상호작용을 규정하며,기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는아키텍처 스타일이다. 자원을 이름(자원의 표현)으로 구분해 해당 자원 상태(정보)를 주고받는 모든 것을 의미한다. 어떤 자원에 대해 CRUD 연산을 수행하기 위해서 URI (Resource)로 GET, POST 등의 방식 (Method)을 사용하여요청을 보내며, 요청을 위한 자원은 특정한 형태(Representation of R..
-
webapp 하위에 login.jsp파일 생성여기서 submit 버튼을 누르면 2개의 데이터가 Controller로 간다. Controller에서는 넘어온 데이터를String mid = request.getParameter("mid");String password = request.getParameter("password");를 통해서 처리를 하는데, 이 request는 new 하지 않았는데도 사용이 가능하다.이는 request가 JSP 내장객체이기 때문이다. 받은 데이터를 selectOne해서 확인이 필요하다.DTO = new DTO(); 이때 DTO는 매 번 왔다갔다 하므로 쓸 때마다 new 해주는 것이 맞다.DAO.selectOne(DTO);인자를 DTO로 주는 이유는, 결합도를 낮춰 유지보수를 용..
-
이번 중간 프로젝트를 진행하며 새롭게 알게 된 방식이 있다.바로 "종단처리" 와 "횡단처리" 이다. 기존의 우리는 M V C 패턴을 활용하여 기능 구분 없이 Model / View / Controller 세 파트로 나뉘어 코드를 작성하고 기능을 구현했다.이렇게 기존처럼 파트를 나눠 처리하는 것을 횡단처리라 한다. 반대로 종단처리는특정한 하나의 기능을 한 명의 개발자가 M V C 파트를 구분하지 않고 기능을 구현하는 것을 의미한다. 횡단처리의 경우각자 파트의 기능에 대해 집중할 수 있어서 조금 더 각자의 관심사에 맞는 코드가 나올 수 있고종단처리의 경우한 사람이 M V C 코드를 모두 작성하기 때문에 일관성있는 코드가 작성될 수 있다.
-
필터- 서블릿을 상속받은 클래스 중 하나이며, 대표적인 특수 형태 서블릿이다.- 서블릿을 상속받은 클래스 : 리스너, 필터 자바의 일반 클래스 : POJO대표적인 NOT POJO == 서블릿 (import가 처음부터 달려있어서 무겁다)1) 리스너 : 모니터링, 특정 상황을 감시 >> 서버가 동작을 했니? 그럼 수행할게~2) 필터 : 모든 특정 요청에 대해 항상 수행되는 서블릿을 의미한다. >> 보안 / 인가, 허가, 인증, 권한확인 / 인코딩 - 필터 파일 생성마우스 우클릭 → New → Filter ▼ 필터 파일 새로 생성 시 나오는 화면리스너와 비슷한 형태의 파일을 볼 수 있다. 필터는 총 4개의 메서드가 있는데,1) 기본 생성자2) 사라질때 3) 항상 수행되는 메서드4) 시작될때 3) ..
-
모달창, 스위트 알랏, alert() >> 이런 것들을 통하여 웹에서 안내창을 볼 때가 있다. 안내창- 로그인 실패시의 기능으로 살펴보자! 기존 방식LoginAction.java에서 if / else if를 통해 로그인 성공 / 실패 코드를 구분해서 작성한다.실패 시에는 로그인 실패라는 알랏창을 띄워주는데, out 객체를 사용한다.out 객체는 JSP 내장객체이기 때문에 java 파일에서는 불러와서 사용해야 한다.PrintWriter out = response.getWriter().println(""); 하지만 실제로 웹 페이지를 동작시켜보면 정상적으로 동작하지 않는 것을 확인할 수 있다. 동작하지 못하는 이유는?script는 해당 페이지에 머물러 있을 때에만 실행이 된다.그런데 현재 : 로그인 실패시..
-
리스너리스너란?1. 특수한 형태의 서블릿 클래스를 의미한다.- extends 서블릿 == 서블릿의 하위(자식) 클래스를 의미한다.2. 서블릿 == NOT POJO- 기능이 있어서 무거운 JAVA 클래스3. 특수한 기능을 수행하는 not POJO 클래스이다. -> 주로 초기 샘플 데이터 웹 크롤링 활용하여 세팅할 때 사용한다. 리스너 파일 생성1) 만들려는 패키지 우클릭 → New → Listener 2) 사용할 파일 이름 입력하고 Next> 클릭 3) 그럼 리스너를 어떻게 동작시킬지 결정하는 체크박스들이 나온다.① 웹이 작동하나? 를 보는 리스너 : 웹 서버 시작됐니? 변화가 시작됐니? 를 물어봄② HTTP session이 동작하니? 리스너③ request와 관련된 리스너우리는 서버가 구동되면~ 이..
-
업로드란?클라이언트(사용자, 브라우저)가 서버(DB)로 뭔가를 올리는(저장하는) 행위로컬(폰, PC)에 있는 데이터를 --> 서버(톰캣, 프로젝트) [업로드를 위한 준비물]1. 이미지 파일(데이터): 실습 때 사용하는 resource는 로컬 공간2. .jar(라이브러리, 소스파일) : cos : 이미지 업로드를 구현할 때 필요한 클래스/메서드를 제공3. Properties의 Workspace 설정 필요 (이게 되어있어야 이미지 파일 업로드가 됨) [라이브러리 적용 방법들]1. Properties의 Java Build Path(JBP)에 추가 2. 톰캣이 이걸 인지해야 할 때가 있음. 이때는 WEB-INF 하위의 lib에 추가 3. 서버를 등록할 때 썼던 폴더 위치에 직접 추가하는 방법톰캣 폴더 안의 li..
-
핸들러맵핑- 좋은 FrontController 기반의 프레임워크들이 멤버변수로 가지게 하는 것을 말한다.- 핸들러맵핑의 역할 : 싱글톤 패턴 유지 싱글톤 패턴이란?new를 절약하는 패턴 중 하나로, 한 번 new 해서 존재하는 객체가 있다면 해당 객체를 계속해서 재사용하는 패턴을 의미한다. new연산자는 힙 메모리 영역을 사용하는 것이기 때문에 적게 사용할수록 좋다! ▼ FrontController 코드if(command.equals("/main.do")) { MainAction mainAction=new MainAction(); forward = mainAction.execute(request, response);}else if(command.equals("/bodrd.do")) { BoardActio..
-
FrontController는 모든 요청을 받는 방식을 말한다. controller.jsp는 무조건 필요한데 HTML을 사용하지 않기 때문에 java라고 볼 수 있다.그런데 .jsp는 컴파일하면 Servlet이 됨. 이것을 FrontController 프론트단에서 사용자들이 하는 모든 요청이 이곳으로 와줬으면 좋겠다~ 하는 관리를톰캣(Server) 설정을 해주어야 한다. 톰캣(Server)은 서버도 제공해 주지만, 이러한 설정 역할을 해준다. 톰캣(Server)에게 설정을 제공하는 방법1) xxx.xml (설정파일) 등록 : 톰캣의 경우 web.xml 파일. 2) @ (어노테이션, 애너테이션) 등록 1)번의 경우 .xml이 다루기 어렵고, 스키마가 무겁다는 단점이 있기 때문에,간략하고 가독성이 좋은 2)..
-
.xml 파일은 설정 파일이다.톰캣에서는 WEB-INF 하위에 .xml 파일이 있다면 그것을 설정할 때 참고하도록 코딩이 되어있다. 이클립스 xml 파일 생성 WEB-INF 하위에 XML File 생성해 사용해 준다. xml 파일은 스키마 (골격, 설정)가 필요한데,web.xml의 경우 루트 엘리먼트 (== 가장 최상위에 존재하는 태그)가 이다. web.xml 스키마 헤더(Servlet 버전마다 다르다고 함) 이 .xml 페이지로는 주로 에러 페이지 설정 같은 기능을 만들어준다. 404 /error/error.jsp 500 /error/error.jsp java.lang.Throwable /error/error.jsp 위와 같이 에러 코드나 에러 타입을 설정하여,해당 에러가 ..
-
🍀 View에서 Java의 작성을 막는 방식1) 선언을 없애주는 EL2) 제어문을 줄여주는 JSTL3) 제어문을 제거하는 커스텀 태그 View에서 java의 작성을 막는 이유는?뷰 페이지에 로직/기능/제어문이 들어가 있으면 디자이너들은 어려워할 수밖에 없음.따라서 뷰 페이지의 가독성을 높이기 위해 java의 작성을 막는다. 커스텀이라는 의미대로 커스텀 태그는 내 마음대로 정의하여 사용하는 태그를 의미한다.이러한 태그 페이지를 저장할 tag 폴더를 WEB-INF 하위에 만들어주고,jsptag 파일을 생성한다. .tag 파일을 생성하면 위와 같이 가 자동으로 나온다. ▼ tag 사용 예제 hello.tag 파일 (제목)커스텀태그에서 출력하는 메세지입니다! :D만약 tag 파일을 여러곳에서 쓴다면?태그 ..
-
JSTL 라이브러리🍀현재까지의 흐름JAVA- 라이브러리.jar >> jsoup 사용하여 웹 크롤링 / ojdbc6 (JDBC)- SQL >> Oracle- HTML CSS 사용- Servlet (.java, not POJO) : 서블릿 사용이 매우 어렵기 때문에 JSP를 사용한다. (jsp는 결국 java파일이 되기 때문에 내장객체, 액션 태그를 사용할 수 있다.- EL (${ }, #{ }) : View에서 자바를 제거하고 선언을 줄여주기 위한 목적으로 EL 사용한다.- EL과 같은 맥락으로 사용할 == JSTL : View에서 자바를 제거하기 위한 목적으로 사용하고, 제어문 대신 사용한다. JSTL의 경우 라이브러리이다.따라서 jar가 필요함 Webapp > lib폴더 안쪽에 -..