일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 메모리낭비적은string연산
- this()
- 이클립스무한로딩
- sql error [936] [42000]: ora-00936
- 테이블복사생성
- 프로그래머스
- this
- 오블완
- 티스토리챌린지
- git
- 다형성
- error페이지 설정
- 오버로딩
- ecleemma
- 이클립스형광줄
- sql error [1] [23000]: ora-00001
- 이클립스로딩지연
- select즐겨찾기
- 조건위치 효율성
- 우아한테크
- java크롤링
- 이클립스느림
- 테크톡
- 생성자오버로딩
- 이클립스로딩
- Java
- unresolved compilation problems
- oracle
- Sequence
- sql error [947] [42000]: ora-00947
목록JSP (+JAVA Web) (27)
코딩항해기

이전 페이지로 이동하는 방법은 history를 사용하는 방법으로 간단하게 구현할 수 있지만 정말 순수하게 이전 페이지를 보여주는 것이기 때문에 데이터에 변동이 있을 경우 해당 내용이 반영되지 않는다. 이 때 Referer를 통해 Refererhtttp 헤더 중에 하나로 Referer 헤더는 사람들이 어디로부터 와서 방문 중인지를 인식할 수 있도록 해주며 해당 데이터는 예를 들어, 분석, 로깅, 혹은 캐싱 최적화에 사용될 수 있다. referer를 참조해 현재 표시하는 웹페이지가 어떤 웹페이지에서 요청되었는지 알 수 있다. Referer - HTTP | MDNReferer 요청 헤더는 현재 요청을 보낸 페이지의 절대 혹은 부분 주소를 포함합니다. 만약 링크를 타고 들어왔다면 해당 링크를 포함하고 있는 ..

ajax를 할 때 EL식을 작성해 오류가 발생한 경우가 빈번하게 발생해 관련 내용을 확실하게 정리해 놓기 위해 기록한다. 요약 JSTL과 EL은 서버에서 먼저 처리되어 순수 HTML로 변환된다.이후 HTML, CSS, JS는 브라우저에서 순차적으로 처리된다.(JS는 실행 시점을 async/defer로 제어 가능) 실행은 서버 사이드 -> 클라이언트 사이드 순으로 실행된다. 서버 사이드백단 작업을 의미하며 서버(제공자)측에서 즉시 처리하는 것으로 서버 사이드는 클라이언트로 보낼 웹페이지를 만들며 중요한 작업을 수행한다. JSTL, EL이 여기에 속한다. JSTL (JavaServer Pages Standard Tag Library) JSP 페이지가 서블릿으로 변환될 때 실행되어 , 등의 태그 처리한다. ..

pageContext (PageContext)pageContext 객체는 JSP 기본 내장 객체 중 하나로 따로 선언하지 않아도 사용 가능하다. pageContext는 JSP 페이지에 대해 1:1로 연결된 객체로 JSP 하나 당 하나의 pageContext 객체가 생성된다. pageContext 객체를 이용하면 pageContext.reqeust.contextPath를 통해 http://localhost:[포트번호]/[프로젝트명]에 해당하는 컨텍스트 루트를 얻을 수 있다. 이는 JAVA에서 pageContext.getReqeust().getContextPath()와 동일하다. request 객체를 반환하는 메서드 외에도 다양한 메서드를 가지고 있다.메서드반환타입설명getRequest()ServletReq..

오늘 발표에서 중간프로젝트를 진행하며 아쉬운 점으로 JDBC의 반복되는 코드로 인한 가독성 저하를 개선하고 싶다고 작성했었는데, 과거 공부 자료를 둘러보니 MyBatis가 있었다. 사용법은 알고있는데 해당 부분이 MyBatis라는 인식이 옅였던 것 같다. 더는 놓쳐서 개선 못하는 일이 없도록 잘 기록하고 더 열심히 공부해야겠다. 참고로 MyBatis 외에도 JPA가 있다. MyBatis Framwork 관계형 데이터베이스를 자바에서 쉽게 다루도록 도와주는 프레임워크로 JDBC의 문제점인 반복되는 코드를 줄여주며 JAVA코드와 SQL코드를 분리해 유지보수와 분업에 유리하게 만들어준다. MyBatis는 자바 오브젝트와 SQL사이의 자동 매핑 기능을 지원하는 ORM(Object Relational Mappi..

model 파트를 진행 중인데 Controller로 부터 컨디션, 필터검색용 컨디션 값을 전달받기로 되어있다.그런데, 요청을 해도 일부 파트 부분의 값이 늦게까지 나오질 않아 model파트에서 남은 값을 정해서 역으로 전달하기로 했다.(기존 구조에서 변동이 생겨 기존 설계에서 수정이 필요하게 된 원인) 기존 구조에서 컨디션값을 작성한 후 Controller에게 전달하기만 하면 되지만 중중프 때 전달해준 값을 수정해달라는 요청이 온 적 있었으므로, 기존 구조처럼 하드코딩을 해두면 후에 수정 때 휴먼에러가 발생할 가능성이 우려됐다.(문제사항 발생) 따라서 하드코딩을 방지하기 위해 상단에 컨디션값 변수를 전부 배치해 수정 반영시 휴먼에러가 발생할 가능성이 줄어들도록 구조를 일부 수정했다.(문제 해결) 만약 컨..

Listener와 selenium4 동적 크롤링을 이용해 서버가 시작할 때 상품 DB를 확인하고 비어있다면 크롤링한 샘플 데이터를 추가할 수 있도록 하는 기능을 추가하려고 한다. 크롤링크롤링 기초는 이전 글을 참고 바란다. [API] JAVA - 동적크롤링 (셀레니움4 Selenium +WebDriverManager)정적크롤링하기 (jsoup) [API] JAVA - 정적 크롤링 (jsoup API / Eclipse)크롤링스크래핑웹페이지, 또는 웹사이트에서 데이터를 수집한다.크롤링수집한 데이터를 가공한다. (스크래핑과 세트이므로 스크minibcake.tistory.com 해당 방식은 스크롤을 한 번에 진행하는 방식이었는데, 해당 방식으로 똑같이 진행할 경우 이미지가 제대로 로딩되지 않고 지나가 이미지..

기존 방식에서는 검색 쿼리를 실행시키기 위해 C에서 컨디션값을 받아와 해당 고정된 쿼리를 불러와 값을 넣어 필요한 데이터를 반환했다. 이 방식의 단점은 단일 검색이 아니라 다양한 조건이 중첩되는 검색을 할 때 두드러진다. 예를 들어, 특정 카테고리, 특정 검색어, 기간 7일, 15일, 30일을 설정해 검색할 수 있는 기능이 있다고 가정한다.기존의 방식대로 했을 경우 검색어는 특별히 컨디션을 나누지 않는다고 하더라도, 카테고리 유무에 따라 2가지, 기간에 따라 (7일, 15일, 30일) 4가지를 곱해 모든 경우의 수인 8개의 컨디션 값이 나와야한다. 다른 검색 조건이 추가된다면 더욱 컨디션의 수가 늘어날 수 밖에 없는 구조이다. 특히 같은 쿼리문이 미세한 부분만 다르게 반복되므로, 효율이 떨어진다. 쿼리 ..

[JSP] Servlet - 리스너 Listener리스너 Listener컨테이너에서 발생하는 이벤트를 모니터링하다가 특정 이벤트가 발생하면 실행되는 특수한 서블릿으로, '이벤트 리스너(Event Listener)'라고도 한다. 웹 애플리케이션 실행에 필요한minibcake.tistory.com not POJO인 Servlet에는 리스너와 필터가 있다. 리스너는 지난 게시글에서 정리했고, 이번에는 필터를 정리한다. 먼저 POJO란 오래된 방식의 간단한 자바 오브젝트로 종속되지 않은 순수한 자바 객체를 의미한다.즉, not POJO란, 무언가에 종속된 자바 객체라는 것을 의미한다. [JAVA] POJOPOJO (Plain Old Java Object)오래된 방식의 간단한 자바 오브젝트라는 말로서 Java..

[JSP] response.sendRedirect() 주의사항response.sendRedirect()내장객체인 response의 sendRedirect() 메서드를 사용하는 것으로 요청을 보내 매개변수로 들어온 주소로 페이지를 이동한다. 사용 시 주의할 점 이러한 코드가 있고, 이전 페이지minibcake.tistory.com 과거 글에서도 다뤘듯이 alert창을 띄우고, 또는 다른 스크립트 행동을 시킨 뒤 바로 페이지 이동이 있으면 해당 기능이 제대로 실행되지 못하고 페이지를 이동해버리는 문제가 있다. 과거에는 if else문을 통해 이를 해결했었는데, 이제 V와 C구분이 더욱 확실해진만큼 다시 정리해보고자 한다. [추가되는 기능]로그인을 시도했을 때 로그인에 실패한다면 alert창으로 로그인 실패..

리스너 Listener컨테이너에서 발생하는 이벤트를 모니터링하다가 특정 이벤트가 발생하면 실행되는 특수한 서블릿으로, '이벤트 리스너(Event Listener)'라고도 한다. 웹 애플리케이션 실행에 필요한 정보를 제공하거나 톰캣 시작/종료와 같은 특정 상황에 자동으로 동작하는 프로그램을 구현할 때 사용한다. 이때 리스너는 서블릿과 마찬가지로 어노테이션 기반 코드로 작성할 수 있다. 특정 이벤트에 따라 동작하는 서블릿 인터페이스를 구현하는 구조이며, 리스너는 기본적으로 생명 주기 변화와 Scope Object에서 관리하는 속성의 변화를 모니터링 한다. 서버의 시작과 종료(ServletContext)도 감지할 수 있으며, 샘플데이터를 넣거나 DB와의 연결을 종료하는 등의 기능을 구현할 수 있다.(대표적인 ..