WEB 38
-
리스너리스너란?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..
-
비동기 처리비동기처리란?DB에서 View를 사용하는데 화면변경이 없음.프론트엔드 프레임워크의 핵심이다. 사이트에서 무조건 실행되는 것이 아니라, 사용자가 어떠한 요청을 했을 때 기능을 수행해 준다. 이때, 네이버 메인화면에서 볼 수 있는 것처럼 무언갈 손대지 않아도 사진이 움직이는 등의 기능은미리 등록한 기능으로 script일 가능성이 높다. (미리 등록한 기능 == JS) 반면 회원가입은?DB에 이미 존재하는 아이디를 입력했을 때 기능을 수행하는 경우이다. 이는 DB를 확인해 봐야 기능을 수행할 수 있다는 의미.--> 따라서 DB (==model)에게 정보를 요청 == Controller에게 DB 확인을 요청== GET이나 POST 같은 요청을 한다. View에서 Controller에게 요청을 하면 ..
-
핸들러맵핑- 좋은 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)..
-
기존의 코드에 부족한 코드들을 추가해 주는 것을 "라이브러리"라고 한다.이 라이브러리는 .jar 파일을 말하며, Java Build Path에 import 해줘야 사용이 가능하다. 우리는 이 라이브러리 중 jQuery를 사용할 건데, 이걸 사용하고 싶으면 import가 필요하다.하지만 JQuery는 웹이기 때문에 파일 자체를 impory 하지 않고, CDN 코드를 사용한다. jQuery CDN을 검색해 홈페이지로 들어간다.- uncompressed : 코드를 해석할 수 있게 압축하지 않은 버전. 따라서 무거움따라서 minified를 사용한다.minified를 선택하면 링크가 나오는데, 해당 링크를 복사하여 그대로 붙여넣기 해주면 된다. 이렇게 사용하는 것은 외부 스크립트 연결 방식이 된다. jQuery..
-
.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 위와 같이 에러 코드나 에러 타입을 설정하여,해당 에러가 ..
-
JS (JavaScript)예시로 아이디 중복검사, 광고 그만 보기 등 수행했을 때 새로운 화면으로 페이지가 이동하지 않는다.페이지가 이동하지 않는 다는 것은 == 서버 개입이 없다 == 컨트롤러 요청이 아니다 따라서 페이지 이동 없이 "기능"을 수행할 수 있다는 것? JavaScript를 의미한다. JavaScriptScript 스크립트어== 채팅형 언어 == 1줄씩 수행 가능한 언어 (인터프리티 언어라고도 한다) Java는 하나의 페이지에 에러가 있으면 전체 페이지가 수행이 되지 않는다.(하나의 페이지 전체가 컴파일되어야 한다) Script류는 수행하다가 문제가 발생되면 그 라인부터 수행을 하지 않는다. JavaScript는 동적 타이핑 언어이며, 형변환이 자유롭기 때문에 항상 로그를 사용해야 한다..
-
🍀 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폴더 안쪽에 -..
-
View 작업자들은 JAVA 사용을 최소화할수록 잘한 것이다. 1) EL식 (EL 표현식)2) JSTL3) 커스텀 태그 이것들을 사용한 이유는?java 사용을 최소화하기 위해서 이것을 사용하면 좋은 이유는?언어 결합도를 낮출 수 있음View 작업자들은 JS 사용 EL식- 하나의 프론트 언어이다.- ${ } 안쪽에 작성한다.${10+20} ${10 gt 20} 20 ? -->${10 lt 20} ${10 eq 10} 위와 같은 계산도 가능하다. : 연산자가 존재하는 하나의 언어 체계이다. ▼ 위 코드의 결과 EL식을 사용하여 객체의 속성에도 접근 가능!${객체명.멤버변수명} 으로 선언 없이 바로 사용이 가능하다.단, 객체가 request, session(,application), setAtt..
-
메인 페이지에 상품 목록이 나오는 웹 페이지가 있다.이때, 해당 상품을 누르면 상품 상세페이지가 보이고품절이 된 상품은 아예 상세 페이지를 볼 수 없다. 제품을 선택해 상세페이지를 보게 되면 위의 화면이 나온다.상세페이지의 url 주소를 확인하면? 상품의 번호가 보인다. 만약 num=2로 수정한다면이렇게 2번 상품인 콜라의 정보를 확인할 수 있다. 위와 같은 방식으로 품절 상품이나 아예 없는 번호를 입력하더라도 페이지 이동이 가능한 상태이다.이런 경우 별도의 error 페이지를 만들어 해당 페이지로 보낼 수 있다. // controller.jspelse if(action.equals("PRODUCT")){ productDTO=productDAO.selectOne(productDTO); if(prod..