Connectionless Protocol 서버의 부하를 줄일 수 있는 장점이 있으나, 클라이언트 요청 시마다 서버와 매번 새로운 연결이 생성되기 때문에 일반적인 로그인 상태 유지, 장바구니 등의 기능을 구현하기 어렵다. 이러한 불편함을 해결하기 위해서 세션과 쿠키를 이용한다. 세션과 쿠키는 클라이언트와 서버의 연결 상태를 유지해주는 방법으로, 세션은 서버에서 연결 정보를 관리하는 반면 쿠키는 클라이언트에서 연결 정보를 관리하는데 차이가 있다. 세션이란? 일정 시간동안 같은 사용자(정확하게는 브라우저)로부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 일정하게 유지시키는 기술이다. 방문자의 요청에 따른 정보를 방문자 메모리에 저장하는 것이 아닌 웹 서버가 세션 아이디 파일을 만들어 서비스가 돌아..

서블릿의 실행 과정 1. init() 호출 -컨테이너에서 서블릿 객체를 생성한 다음에 호출한다. service() 이전에 실행 -서블릿 객체를 초기화 -초기화할 내용(DB 접속 등)이 있는 경우 재정의 2. service() 호출 -클라이언트의 요청 후 컨테이너에서 쓰레드를 이용하여 호출 -요청의 HTTP 메소드(GET, POST)를 참조하여 해당 메소드(doGet(), doPost()) 호출 판단 -거의 재정의 하지않음 3. doGet() / doPost() 호출 -service() 메소드에서 HTTP 메소드(GET, POST)를 참조하여 호출 -비즈니스 로직을 구현 또는 호출 -두 메소드 중 하나는 반드시 재정의하여 구현해야한다. 4. destroy() 호출 -컨테이너에서 서블릿 객체를 제거할 때 호..

서블릿에 대하여 웹 브라우저의 요청을 받아 해당하는 웹 페이지를 찾아서 보내주는 일을 하는 컴퓨터를 웹 서버라고 한다. 웹 서버는 웹 브라우저로부터 URL을 받아서 그에 해당하는 HTML 문서를 찾아서 웹 브라우저로 보내주는 일을 한다. 웹 서버는 HTML문서 파일을 찾아서 보내주는 일 뿐만 아니라 HTML문서를 생성하는 프로그램을 호출해서 그 프로그램의 실행 결과를 보내주는 일도 한다. 이때 호출 되는 프로그램을 "웹 애플리케이션이라" 한다. 최초의 앱 애플리케이션 기술인 CGI에서는 웹 애플리케이션을 웹 서버와 동등한 독립적인 프로그램 형태로 작성함 하지만 CGI에는 커다란 두 가지 문제점이 있었다. 첫째 : 독립적인 프로그램을 실행하기 위해서는 시스템 자원이 많이 필요했다. 둘때 : 운영체제에 의해..
이전에 서블릿에서 들어오는 데이터의 조건에 따라 쿼리문을 바꾸는게 불가능 했다. 그렇기 때문에 비슷하지만 다른 조건의 쿼리문을 만들거나 for문으로 1개씩 데이터를 나눠서 담거나 그랬다. 하지만 mybatis에 와서는 JSTL태그를 사용할 수가 있기 때문에 이러한 번거로움을 조금 줄일 수 있다. 위 사진은 사원명으로만 검색을 하거나 사원명+성별, 사원명+성별+급여 등등 아주 다양한 방법으로 해당하는 사원을 찾을 수 있도록 폼을 구성한 것이다. 이전에는 이런식으로 구성을 한다면 디비에서의 쿼리문이 꽤나 복잡하게 만들어야했는데 mybatis에선 어떻게 되는지 한번 봅시다~! 1234567891011121314 회원관리 검색타입 아이디 이름 Colored by Color Scriptercs12345678910..
개요 비밀번호 찾기 파트를 맡은 사람들은 고민이 많을 것이다. 그냥 대충 하자니 없어 보이고 빡세게 인증을 넣어서 변경하고 싶은데 어려울것 같고.. 그런 사람들을 위해 간단하게 이메일로 인증 번호 보내고 이를 서블릿에서 확인하여 변경하는 코드를 포스팅하려고 한다. 필자도 꼬박 하루 고생했던것 같다. 여러가지 방법이 있긴 하지만 아직 배우지 않은 spring의 용어가 나와 쫄았다. 그래서 이리저리 블로그들 뒤지고 뒤져서 겨우 찾아냈다. 자 그럼 이제 시작해보자!! 1. 라이브러리 추가 이메일 관련 라이브러리가 좀 많이 필요한데 하도 비슷한 내용들을 서치해서 정리가 안된다 사진으로 빨간 네모친 것들을 일단 다 때려박자 파일은 나도 어디서 받았는지 기억이 안나므로 첨부파일로 올려드리겠다. 2. Naver sm..
웹 사이트를 이용하다 보면 아이디 저장과 같은 옵션을 자주 접했을 것이다. 오늘이 이 아이디 저장을 구현해볼 계획이다. 제일 먼저 위와 같은 jsp를 구성중 일부를 가져오면 아래와같이 구성을 했다. 체크박스는 체크가 되어 있을 경우 서블릿에서 on으로 값을 넘기고 체크가 되어있지 않을 경우에는 null값을 넘기게된다. 그렇기 때문에 이점을 가지고 서블릿에 로직을 구현할 것이다.12아이디 저장cs 보통 아이디 저장은 로그인이 성공 했을 경우 그 정보를 계속 저장한다. 그렇기 때문에 로그인 로직에서 로그인 했을 경우 그 로직을 구현한다. 가장먼저 saveId로 체크 여부를 확인 하고 체크 되어 있다면 new Cookie에 key : value 형식으로 넣어준다. id는 위에서 파라미터로 받은 id를 넣어주는..
이번엔 첨부파일을 올리는 법에 대해서 포스팅을 할 예정이다. 우선 간략하게 시스템이 돌아가는 것부터 설명을 하자면 input 태그에서 type을 file설정해서 올릴 수 있는데 form으로 웹서버로 넘기게 되면 실질적인 파일은 서버에 지정된 디렉토리에 저장되고 그 파일이름만 DB에 박히게 된다. 이는 DB의 한정적인 용량과 부하를 줄이기 위해 이렇게 되었으며 잘 인지해야되는 부분이라 생각된다. 또한 많은 사람들이 이용을 하게 되면 파일의 이름이 겹칠 가능성이 매우 높아지는데 이를 막기위해 Rename을 사용해야한다. 기본적으로 Default로 제공해주는 것도 있고 내가 직접 만들어서 사용가능하다. 단 절대로 겹칠일이 없도록 로직을 만들어야한다. 왜냐하면 이름이 같은 파일은 서버에서 덮어쓰기가 되어 이전의..
회원목록을 보는 기능을 구현할 것이다. 근데 이때 저장된 회원수가 많을 것 이기에 페이징 처리를 해서 데이터를 짤라서 보도록 할 예정이다. 포스팅에 하기에 앞서 페이징 처리는 공식에 의한 것이라 그렇게까지 자세히 하진 않을것이다. 필요하다고 생각되는 부분만 포스팅 할 예정이니 이점 참고해서 봐두면 좋을것 같다. 1. 보안처리회원목록을 보고 나아가 관리까지도 가능할 페이지라서 접근자가 회원이 아니거나, 회원이지만 관리자가 아닌경우 접속을 막는것 회원에 대한 정보는 세션에 넣어놨기 때문에 거기에 꺼내서 사용하고, 에러 페이지로 이동시켰다가 메인화면으로 다시 이동시키는 로직 123456789//회원리스트를 보는 기능이기 때문에 회원이 아니거나 id가 admin이 아닐경우 접근을 제한한다. Member logg..