Developer Note 86

24년 11월 4일

학원에서 다 처리하지 못한 문제들을 집에와서 풀어보고 있는 중이다.. 해결해야 될 점을 몇가지 보자면 1. 도서 조회 페이지에서 전체로 특정 키워드 조회했을 때 문자열 포함한 검색결과 나와야하는데 안나옴2. 조회에서 bookCode 눌렀을 때 add페이지에서 빈 칸안에 책 정보가 적혀있는 read 페이지로 포워딩 처리 되어야 하는데 안됨3. 수정페이지까지는 갔는데 수정하기 버튼 눌렀을 때 예외가 뜸4. Exception 발생..java.lang.NumberFormatException: update 페이지5. 로그인페이지에서 로그인 누르면 index로 가게해야함. 한번 해결해보도록 하자.집에와서 해보는 풀이지금 join페이지에서 회원가입을 진행하면 error가 떠서 해결하는중이다. try { //Met..

24년 11월 1일

오늘은 MVC패턴으로 실제 웹사이트 만드는 작업중.CRUD 기능을 포함하고 있고 , Servlet 과 jsp 를 나누어서 작업한다. 이클립스 dynamic web project 생성해서 사용.webapp 폴더에 resources 라는 공통적으로 사용할 header 나 footer같은 jsp 파일들 작성.css나 js 같은 공통적으로 적용할 css 나 개별 페이지에 적용할 파일들도 이곳에 저장.webapp 폴더안에서 개발자 외에 타인이 접근할 수 없게 jsp 파일은 WEB-INF 폴더 안에 생성한다.lib 폴더안은 각종 라이브러리를 넣는다.안에서 세세하게 user,book 사용자별 나누고 , 같은 폴더 안 페이지별로 나눈다.header나 footer 같은 jsp 파일 불러올때는 include태그를 사용한다..

24년 10월 31일

오전서블릿 리스너란 ?이벤트가 발생하면 실행청취자라는 정의가 있음.특정 이벤트가 발생하길 계속 기다린다.서블릿,필터 처럼 @WebListener 으로 사용한다.리스너가 이벤트가 발생할 때 동시에 특정행동을 하는데 , 이것을 이벤트 핸들링 이라고 한다.그래서 리스너는 이벤트 핸들러라고 불리기도 한다.서블릿 리스너 객체의 종류리스너 객체의 종류에는 크게는 2가지가 있다.ServletContextListener 와 ServletContextAttributeListener이렇게 두가지로 나뉘는데 비슷해보이긴 한데 두가지의 차이점은 Listener 는 시작과 종료시 실행되는 이벤트를 처리 , Attribute 는 말 그대로 ServletContext 에 속성이 추가,제거,변경 CRUD 될 때 호출됨.이외에도 몇가..

24년 10월 30일

오전서블릿의 주요 클래스와 메서드✓ HttpServlet: 서블릿을 만들기 위해 반드시 상속해야 할 필수 클래스✓ HttpServletRequest: 클라이언트가 데이터를 입력하거나 클라이언트의 정보에 대한 요청 값을 가지고 있는 클래스✓ HttpServletResponse: 클라이언트가 요청한 정보를 처리하고 다시 응답하기 위한 정보를 담고 있는 클래스✓ HttpSession: 클라이언트가 세션을 정보로 저장하고 세션 기능을 유지하기 위해서 제공되는 클래스서블릿의 기본적인 메서드void init() 서블릿의 객체가 생성 될 때 호출되는 메서드.void destroy()서블릿의 객체가 메모리에서 사라질 때 호출되는 메서드void service(request, response)서블릿의 요청이 있을 때 호출..

24년 10월 29일

서블릿자바에서 자바코드로 웹을 구현하기 위해 나온 서버측의 프로그램.웹 서버측 에서 동적인 페이지를 자바로 구현한 서버측 프로그램서버 측에서 실행함. 요청을 받으면 서버에서 처리함. 그러고 응답으로 결과값만 보내주는 구조임특징MVC 모델에서 컨트롤러 역할을 한다.서블릿 파일로 사용하기 위해서는 HttpServlet 클래스를 상속받아서 사용한다.모든 메서드는 스레드로 동작된다서블릿 컨테이너서블릿은 .java 파일을 컴파일한 .class 파일 형태이며 , 이를 실행하고 관리해주는 런타임을 서블릿 컨테이너 라고 한다. (간단히 전체적인 동작을 관리해주는 거라고 보면 될듯)서버에 있는 서블릿이 스스로 작동하는게 아님. 서블릿 컨테이너가 서블릿을 작동시키는 거임.아파치 톰캣이 이 역할을 하는거임 !역할 :생명주기..

github pull 에러 해결법, Please move or remove them before you merge

가끔씩 깃허브에서 로컬 저장소로 pull 을 하려고 할때 이런 오류가 뜬다. Please move or remove them before you merge문제가 되는 파일을 이동하거나 지우라는 의미.git pull 할 때 충돌이 난 것이니 해결해주면 된다. 원인 : 기존 내용과 push할 내용의 충돌해결방법 : 병합 - git add -A : 이 명령어를 통해 디렉토리 외 작업하는 디렉토리에 있는 모든 변경 내용을 스테이징 영역으로 넘김.  - git stash : 작업 디렉토리에서 수정한 파일들만 임시로 저장.즉 , stash를 사용하면 unstaged 된 변경사항이 있을 때 commit 하지 않아도 현재 상황을 임시로 stash에 보관해두고 git pull 을 할 수 있다. 후에 git pull or..

24년 10월 25일

오전어제 한 문제 풀이 로그인 ${msg_userid} ${msg_password} ${msg_db}     회원가입페이지로 이동 request.setAttribute("db_msg", "이미 존재하는 회원"); request.getRequestDispatcher("../join.jsp").forward(request, response); }else{ //회원정보 o , 비밀번호 확인 if(!password.equals(dbUser.getPassword())){ request.setAttribute("db_pw", "패스워드 불일치"); request.getRequestDispatcher("../lo..

24년 10월 22일

세션이란 ?간단하게 내가 이해하는 바로는 클라이언트가 서버에 요청을 보냈을 때 클라이언트의 정보가 초기화 되지 않도록 정보를 계속 유지시켜주는 기능이다.web 서버는 웹 컨테이너 상태를 유지하기 위해 정보를 저장하고 , 저장한 정보는 브라우저를 닫을 때 , 일정시간이 지날 때 , 서버에서 세션을 삭제했을 때 삭제가 이루어진다.세션에 값을 저장할때는 session객체를 사용하면 된다.session.setAttribute("이름","값");이 메소드는 이름 : 값 형태로 세션에 정보를 저장한다.정보를 가져올 때는session.getAttribute("이름");이 때 값을 반환받을 때는 타입이 Object 타입으로 반환받기 때문에 형변환을 해주어야 한다.세션의 값이 저장되어 있는지 확인할 때는Enumerati..

24년 10월 18일

오라클에서 디폴트 값을 넣을 때는 디폴트라는 것을 명시해야하고MYSQL 은 NULL 쓰면 디폴트값이 알아서 들어간다.CHECK : 제약조건 값 지정U = UNIQUE : 기본키는 아니지만 중복된 값을 넣을 수 없음SQL 에서의 인덱스 : 데이터의 검색을 효율적으로 하기 위해 인덱스를 지정해준다데이터가 많으면 많을 수록 유리한데 적을 때는 오히려 불리하다.오라클에서는 인덱스를 재구성할 수 있음COMMIT 을 하고 난 뒤에는 롤백이 안된다.오라클에서의 CONCAT 함수 : MOBILE1||'-'||MOBILE2파이프라인( || ) 을 사용해서 가운데 붙여줄 문자열을 삽입한다.PL/SQL 이란 ?SQL 을 확장한 절차적 언어이다.관계형데이터베이스에서 사용되는 ORACLE 의 표준데이터 엑세스 언어로 , 프로시..

24년 10월 17일

DB 로 넘어갔다.근데 mysql 아니고 오라클을 사용한다.외부평가에서는 오라클을 사용한다고 한다. 오라클 시퀀스란? 유일한 값을 생성해주는 오라클 객체기본키와 같이 순차적으로 증가하는 컬럼을 생성할 수 있다.주로 기본키(PRIMARY KEY)를 생성하기 위해 사용. constraint (제약조건)조건에 맞지않는 데이터를 입력시키지 않기 위한 제약조건외부평가에서 사용하는 dbms 오라클 SELECT * FROM USERTBL WHERE HEIGHT > ANY (SELECT HEIGHT FROM USERTBL WHERE ADDR='경남');SELECT * FROM USERTBL WHERE HEIGHT > ALL(SELECT HEIGHT FROM USERTBL WHERE ADDR='경남');SELECT * ..