본문 바로가기

728x90

Backend/JSP & Servlet

(7)
[JSP & Servlet] JSP 내장객체를 활용하여 간단한 트위터 기능 구현 # "프로젝트로 배우는 자바 웹 프로그래밍 , 황희정 저" p236 의 트위터 구현 예제를 참고하여 만들었습니다. 예제에 추가적인 기능을 추가하여 구현했습니다. 1) 관리자로 로그인 시 다른 아이디의 글을 삭제 할 수 있는 기능 - "Admin"이라는 아이디로 로그인시 다른 아이디의 글들을 삭제할 수 있다. 2) 삭제기능 - 같은 아이디가 쓴 글을 삭제 할 수 있도록 하였다. - 다른 아이디의 글은 삭제 할 수 없다. * 파일구성은 이렇게 4개로 구성되어있다. 데이터 베이스를 사용하지 않고 application 내장객체를 이용하므로 서버를 종료하고 다시킨다면 글에 대한 정보는 모두 삭제 됨을 참고한다. 1. login.jsp - 세션을 이용해 로그인을 한다. 2. tweet.jsp - 글을 작성하는 로직..
[JSP & Servlet] WAS에서 제공하는 Connection Pool 이용하는 방법 커넥션풀을 직접 구현하면 개발자의 역량에 따라 성능이 다르고 보안이슈가 있을 수 있기 때문에 WAS에서 제공해주는 Connection Pool을 이용하는 것이 좋다. 이것을 DBCP API라고 한다. jdk 1.8 | oracle 11g | tomcat 9.0 ## WAS 에서 제공하는 Connection Pool 이용하기 DBCP API 를 이용한 커넥션 풀을 사용하기 위하여 관련 jar 파일을 다운로드 한다. 1) DBCP commons.apache.org/proper/commons-dbcp/download_dbcp.cgi DBCP – Download Apache Commons DBCP Download Apache Commons DBCP Using a Mirror We recommend you use..
[JSP & Servlet] include 지시어와 include 액션태그의 차이점 * 코드와 파일 구조를 통해 확인 - 자잘한 파일은 코드는 확인하지 않고 어떻게 컴파일 되는지에 대해서 확인하겠다. 1) @include 지시어 #includeex.jsp include 활용 포함하는 페이지 지시어 include 예제의 내용. 파일이 컴파일된 곳. E:\myHTML\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\myWeb\org\apache\jsp\directive 에서 컴파일된 jsp 파일을 확인해보면 includeex.class로 만 컴파일 된 것을 볼 수 있다. 즉 include지시자를 통해 삽입된 페이지들은 모두 하나로 합쳐져서 컴파일 된 것이다. /* * Generated by the Jas..
[JSP & Servlet] Servlet을 통하여 JSP 기본 태그 알아보기 * 기본태그 1) 선언문 (declarations) 2) 스클립틀릿(scriptlets) - 자바 코드를 삽입한다. 3) 표현식(expression) 4) 지시어 * 코드로 살펴보기 선언문 출력하기 (변수) : 선언문 출력하기 (메서드) : 선언문 출력하기 (변수) : 위의 스클립트릿 에서 out.println("내장 객체를 이용한 출력 :" + declaration + " "); 을 통해 declaration이 호출되었다. 밑에 선언문에 declaration의 변수가 선언되어 있기 때문에 일반적인 상식으로 위에서 아래로 코드가 진행하기 때문에 오류가 날것이라고 예상이 된다. 하지만 런타임에서 에러가 나지 않는다. 이렇게 되는 이유는 이 jsp 페이지가 서블릿으로 변환시킨 java파일을 보면 알 수 있다..
[JSP & Servlet] 페이지 이동 방식 forward와 redirect 방식의 차이 메소드 호출을 통해 페이지를 이동할 수 있는 방법에는 두가지 방법이 존재한다. 은행에 가서 업무를 보는 상황에서 만약에 3번창구로 가서 펀드를 구매하려는 업무를 본다고 가정을 하자. 내가 3번 창구에가서 업무를 보는데 은행직원이 이렇게 말한다. "여기는 입출금 업무만 보는 곳이예요, 저기 펀드 업무 보는 곳에 가서 처리하세요" 그리고 나는 7번창구인 펀드 업무 보러 간다. 이 상황에서 7번창구 직원에게 다시 무슨 일을 해야 할지 말해야 한다. 이 방식이 바로 페이지 이동방식 중 redirect 방식이라고 볼 수 있다. 그런데, 3번창구에가서 펀드를 구매하려는데, 직원이 다른직원을 불러서 그 창구에서 바로 업무를 처리 할 수 있게 된다면 이 방식을 페이지 이동방식 중 forward 방식이라고 보면된다. 이..
[JSP & Servlet] Servlet 의 실행과정 * Container 컨테이너는 웹서버와 서블릿 사이의 통신을 지원한다. 컨테이너는 서브릿의 생명주기를 관리한다. 컨테이너는 새로운 요청이 들어올 때마다 스레드를 생성하여 사용자의 요청을 처리한다. * Servlet 이 실행되는 방식 1) 사용자가 url을 호출하여 컨테이너에 새로운 요청을 한다. 2) 컨테이너가 요청을 접수하여 HttpServletRequest request 객체 / HttpServletResponse response 객체를 생성 3) 접수된 url을 분석하여 해당 서블릿 객체를 생성 - 서블릿 객체가 생성되면서 서블릿에서 init() 메서드를 실행하여 Servlet 객체를 초기화 한다. - 사용자 요청을 처리하기 위해 스레드를 생성 4) service(request, response)..
[JSP & Servlet] Tomcat 각 폴더의 의미에 대해서... * Tomcat 안의 폴더들 bin폴더 : binary의 약자 톰캣의 실행과 종료와 관련된 파일 (실행 파일들) 배치파일을 통해 tomcat을 실행하거나 종료할 수 있다. (서버 시작, 정지, 재시작) conf폴더 : config의 약자로 환경설정과 관련 web.xml 파일이 존재 lib폴더 : library의 약자 외부 jar파일 log폴더 : 톰캣이 남기는 로그, 볼일이 거의 없다 temp폴더 : 톰캣이 사용하는 임시 폴더 webapps폴더 : web application s 이 안에 웹사이트들 존재 work폴더 : 개발자가 작성한 JSP에 매핑된 서블릿 클래스가 위치하는 곳 (참조 폴더) * webapps폴더의 구조 webapps 는 사이트들이 존재한다고 보면된다. 1) docs : 톰캣에 대한 도..

728x90