JSP 11

TIL (Command 패턴, jQuery 폼 플러그인 )

웹에 존재하는 패턴은 아님 Receiver = commandHandler Command가 receiver한테 명령 내려야하는 상황이되면 중간에 invoker를 통해서 command-> ConcreteCommand 에서execute() 현재 내가 짠 게시판: Front Controller Pattern + Command Pattern bo_no(board no) 컬럼이 여러 테이블에 있으므로 bo_no대신 새로운 이름의 alias를 사용하는게 좋음 www.notion.so/techsignal/Encoding-Encrypting-d90c20475c6746a49ce9657b4bd184a9 Encoding & Encrypting Encoding: 부호화 www.notion.so - SHA-512를 쓰자 - 64..

WEB Application 2020.10.03

웹 프로그래밍 (xml 주의할 점, front controller 패턴 )

public int createProd(ProdVO prod); Service에서 리턴타입을 int로 하면 식별성 없음. (dao에선 가공을 못하므로 int로 할 수 밖에 없음) insert, update할 때 null허용일 때는 JDBCType 꼭~! DATE -> jdbcType=DATE CLOB -> jdbcType=VARCHAR NUMBER -> jdbcType=NUMERIC 컨트롤러에서 항상 반복되는 코드들 처음에 req.setCharacterEncoding("UTF-8"); 마지막에 req.getRequestDispatcher(goPage).forward(req, resp); Front Controller 들이 할 일 - 각 커맨드(URI에 연결되어있음)를 처리할 수 있는 백엔드 컨트롤러 목록..

WEB Application 2020.09.22

20/09/15 웹 프로그래밍 기초 (Reflection, 이클립스 정규표현식 대체, annotation)

우리가 지금까지 작성한 소스에 든 전역변수 commons beanutils 1.9.4 **Options에 Regular Expressions가 꼭 체크 되어있어야함** 영문자 \w 한개이상 + 그룹핑 () $1 * 0번 이상 반복 . 모든 타입의 글자 상관없이 한문자 [.\s] s는 스페이스 등등~~~ Replace with 부분에서 $1 : 위에서 첫번째 그룹( ) 반복할 것 없이 선택 가능 ajax에서 url, data, method는 요청과 관련되어 있고, dataType, success, error는 응답과 관련되어있다. 마샬링, 직렬화했을 때는 forward로 따로 보내줄 필요가 없다. writeValue()로 이미 응답 데이터가 나갔기 때문에 (=버퍼가 방출됨) forward 등을 해줄 수 없..

WEB Application 2020.09.15

20/09/14 웹 프로그래밍 (db properties 연결, DBCP)

수정사항에 유연한 대처가능 의존객체 생성 과정을 캡슐화(숨김) 가능 롬복: 플러그인 형태로 jar 설치해주는 것 중요! (관리자 버전으로 cmd쓰고,,, ..) www.kisa.or.kr/public/laws/laws3_View.jsp?cPage=6&mode=view&p_No=259&b_No=259&d_No=55&ST=T&SV= 기술안내서 가이드 < 관련법령·기술안내서 < 자료실 : 한국인터넷진흥원 기술안내서 가이드 기술안내서 가이드 상세보기 제목 JAVA 시큐어코딩 가이드 담당자 전자정부보호팀 박양환 전화 061-820-1652 이메일 등록일 2016-03-18 조회수 60706 첨부파일 코딩가이드(Java)_V1.2 www.kisa.or.kr SQL Injection: '3333' or '1'='1 ..

WEB Application 2020.09.14

20/09/10 웹 프로그래밍 기초 (layered architecture, trigger(), 메이븐 설치)

layered architecture Architecture Diagram 손님 들어옴 -> 웨이터 만남(컨트롤러) -> 주문 (요청 받아 요청 분석) -> 셰프에게 전달(로직을 갖고있는 객체, business logic Object=service) => Persistence layer가 db에서 raw data 가져옴(=dao) => service가 가공 => controller(웨이터)가 받음 -> VO로 통에 담음 (=DTO, java bean )-> controller한테 돌려줌 -> 컨트롤러가 받아서 view로 보냄 -> view에서 예쁘게 꾸밈 (UI 구성) -> 손님한테 감 => 전달 구조 (각 layer로 나눠져있음) raw data 가져올떄 그걸 담을 통:VO dao는 순수하게 데이터만 ..

WEB Application 2020.09.11

20/09/09 웹 프로그래밍 기초

하면 jsp 2개가 합쳐져(include) 나타남. = 모듈화 모듈화 : 책임이 쪼개져있는 구조 장점: 유지보수 비용 감소 버퍼의 동작 순서가 다르다? 이동을 하는 과정에서 버퍼를 방출하냐/안 하냐 flush 하는순간 응답 데이터 나감. 한번이라도 방출하면 그 이후엔 에러가 발생해도 에러메시지 내보낼 수 없음 * include로 페이지 모듈화할때 한번쯤 버퍼가 방출됨. 근데 그러면 그 에러를 클라이언트한테 전달할 수 없음 (이미 상태코드가 200으로 나가서) 모듈화 해야할 땐 페이지 방출되는 상황 / 버퍼 제어할 방법 고려해야함. VO(Value Object), DTO(Data Transfer Object), Model(MVO패턴) - VO, DTO- 값을 가질 수 있고, 직렬화가 가능해야함 - Mode..

WEB Application 2020.09.09

20/09/08 웹 프로그래밍 기초 (Model 2, 트리 노드)

조건: JSP 쪽의 자바 코드 부담 줄이기 위해 디자인 패턴 중 하나인 Adapter(Wrapper) 패턴을 사용하기 jackson databind jar를 사용해 마샬링한다. 해당 Mapper에서 write 계열은 마샬링, read 계열의 메서드는 언마샬링을 위해 사용된다. FancyTree 를 사용할 것이기 때문에 FancyTree node 형식에 맞게 filewrapper 클래스를 바꾼다.여기서 'lazy'란?boolean dragDrop function에 파라미터: node와 data여기서 data를 console에 찍어보면 originalEvent 라는 객체를 포함하고 있다. 그리고 그 originalEvent는 ctrlKey가 눌려있는지 아닌지의 boolean값을 알려준다. key event의..

WEB Application 2020.09.08

20/09/07 웹 프로그래밍 기초 (Scope )

버퍼 효율 0. 플러쉬 되기전까진 언제든 그 안에있는 데이터를 비울 수 있다. 만약 a를 처리하다가 에러가 발생하면 응답데이터 보내기 전에 에러메시지 내보내거나 처리 가능 (=request는 버퍼 덕에 가능) (버퍼 없으면 응답데이터 만들자마자 응답 보내버리게됨) 1. 전송 속도 up Scope : 웹 어플리케이션 내에서 데이터를 공유하기 위해 사용하는 저장 공간 해당 영역에 저장된 속성(Attribute) 데이터의 사용 범위에 따라 분류됨 :각 기본 객체가 소유한 Map / 이 맵안의 entry를 attribute(속성)라고 함 1. Page Scope (기본객체: pageContext) : 한 JSP 페이지 내에서만 유효 2. Request Scope (기본객체: request) : 한 request..

WEB Application 2020.09.07

20/09/01 웹 프로그래밍 기초 (call by reference, JSP 구성요소)

톰캣으로 서블릿 관리중: 톰캣은 서블릿 컨테이너. 톰캣은 서블릿의 lifecycle을 관리하는 관리자역할을 함 service나 do를 이용해 콜백메서드를 호출함. 즉 우리가 하는게 아니고 톰캣 서버가 호출하는 메서드들임 (p.33) JSP(Java Server Page) : 자바, 템플릿기반의 스크립트 코드 형태를 가진 스펙(.tmpl 역할/ 진짜 소스가 아니라 템플릿 기반) MVC Model: row data 가져와서 가공 View: UI Controller: business로 연결된 모델과 뷰를 연결 1. 정적 텍스트: HTML, CSS, JavaScript, 일반 텍스트 2. scriptlet 1) Directive(지시자) : JSP 페이지에 대한 환경설정 혹은 전 처리 -page: 설정 정보(m..

WEB Application 2020.09.02

20/08/31 웹 프로그래밍 기초 (절대경로 상대경로, 서블릿 콜백, java with resource)

자원의 종류 1. 파일시스템 리소스 2. 클래스패스 리소스 웹 리소스 URI: Uniform Resource Identifier 에 속하는 것들 URL (Uniform Resource Locator) - 이 방법만 쓴다 URN (Uniform Resource Naming) URC (Uniform Resource Contents) -------> naming, contents의 경우 유일성 확보가 어렵다. 절대 경로 vs. 상대 경로 1. 절대경로: root부터 depth 구조 상의 모든 경로를 표기 Client side: 반드시 context root부터 시작. localhost에서 시작할 경우, 배포 후 localhost가 도메인으로 바뀔 수도 있기 때문 Server side: 파일이 이미 서버 안에 ..

WEB Application 2020.08.31