Java 관련/JSP,Servlet: 41개의 글
web.xml 주요 태그 web.xml파일은 웹 컨테이너와 웹 프로그램의 파일을 서로 연결하고 관리하는 설정 파일이다.웹 프로그램은 항상 자바를 지원하는 웹 컨테이너에서 실행된다. 때문에 해당 웹 컨테이와의 연게를 반드시 염두에 두어야 한다. 프로젝트별로 환경을 설정하고 파일들 간에 관계를 설정할 때는 web.xml 파일이 기준이 된다. web.xml 파일은 웹 서버가 서블릿 파일을 인식하게 해준다.이 파일은 서블릿의 등록뿐 아니라 필터 클래스의 등록과 맵핑 등 다양한 설정을 지원한다.주목할 점은 web.xml이 웹 서버를 구동할 때 읽혀진다는 것이다. 만일 특정 작업에 필요해서 web.xml 파일을 수정하고 웹 서버를 재구동하지 않으면 당연히 web.xml 파일은 인식되지 않는다. 프로젝트명 ⓐ ⓑ 전..
웹 프로그램 기본파일(tomcat환경) WEB-INF/web.xml: 프로젝트의 속성을 설정하는 파일 META-INF/context.xml: 서버 환경을 설정하는 파일 %JAVA_HOME%/jre/lib/ext: 로컬 응용 프로그램을 실행하기 위한 폴더 tomcat7/common/lib: 톰캣을 이용하는 웹 프로그램을 실행하기 위한 폴더, 모든 프로젝트에 공통으로 적용되는 라이브러리 파일을 인식한다.cf.) %JAVA_HOME%/jre/lib 폴더나 %JAVA_HOME%/jre/lib/ext 폴더 내의 JAR 파일들도 자동으로 인식된다. C:\\Web_Java\eclipse\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\webapps: 이클..
일반적으로 JSP에서 소요되는 시간은 많지 않습니다. JSP가 가장 처음에 호출되는 경우에만 시간이 소요되고, 그 이후의 시간에는 컴파일된 서블릿 클래스가 수행되기 때문입니다. 그럼 JSP의 라이프 사이클을 간단하게 리뷰해 보면 다음과 같습니다. JSP의 라이프 사이클은 다음의 단계를 거칩니다. 여기서 해당 JSP 페이지가 이미 컴파일되어 있고, 클래스가 로드되어 있고, JSP 파일이 변경되지 않았다면, 가장 시간이 많이 소요되는 페이지 번역, JSP 페이지 컴파일, 클래스 로드, 인스턴스가 생성되는 과정을 생략되고 JSP URL이 호출되면 바로 인스턴스가 생성되어 바로 jspInit 메소드가 호출되는 방식으로 흐름이 이어집니다. 서버의 종류에 따라서 서버가 기동될 때 컴파일을 미리 수행하는 Pre-co..
웹에서 세션(session)의 사용 1. 세션(session)의 개요 쿠키가 웹 브라우저에 사용자의 상태를 유지하기 위한 정보를 저장했다면, 세션(session)은 웹 서버 쪽의 웹 컨테이너에 상태를 유지하기 위한 정보를 저장한다. 세션은 사용자의 정보를 유지하기 위해 javax.servlet.http 패키지의 HttpSession 인터페이스를 구현해서 사용한다. 쿠키는 사용자의 상태 유지를 위한 정보를 웹 브라우저에 저장해서 웹 서버가 쿠키 정보를 읽어서 사용한다.이것은 웹 브라우저에 저장된 쿠키는 웹 서버에서 열어볼 수 있다는 점에서 보안상 문제가 발생할 수 있다. 따라서 사용자의 정보를 유지하기 위해서는 쿠키를 사용하는 것보다 세션을 사용한 웹 브라우저와 웹 서버의 상태 유지가 훨씬 안정적이고, 보..
웹에서 쿠키(Cookie)의 사용 1. 쿠키(Cookie)의 개요 - HTTP 프로토콜은 상태가 없다. 즉 이전에 무엇을 했고, 지금 무엇을 했는지에 대한 정보를 갖고 있지 않는 특성을 가지고 있다.즉, 웹 브라우저(클라이언트)의 요청에 대한 응답을 하고 나면 해당 클라이언트와의 연결을 지속하지 않는다 (Connectionless) - HTTP 프로토콜은 상태에 대한 지속적인 연결이 없다. 따라서 이런 부분을 해결하기 위해서 웹 서버 측에 웹 브라우저의 정보를 저장한 후 계속되는 웹브라우저의 요청 속에 포함되어 있는 웹 브라우저의 정보와 비교해서 동일한 웹 브라우저로부터 온 요청을 판단할 수 있다. - 쿠키(Cookie)는 상태가 없는 프로토콜을 위해 상태를 지속시키기 위한 방법이다. 쿠키는 웹 브라우저..
JDBC 에서의 트랜잭션(Transaction) 처리 트랜잭션(Transaction)은 여러 단계의 작업을 하나로 처리하는 것으로, 하나로 인식된 작업이 모두 성공적으로 끝나면 commit이 되고, 하나라도 문제가 발생하면 rollback 되어서 작업을 수행하기 전단계로 모든 과정이 회수된다. 이것이 트랜잭션이다. 즉, 트랜잭션은 프로그램의 신뢰도를 보장하게 된다. JSP에서도 트랜잭션 처리에 대한 메소드들을 제공한다. 대표적인 예가 쇼핑몰에서 물건을 구매하는 과정이다. 물건을 장바구니에 넣은 후, 구매를 누르면 구매의 단계가 이루어지는데 먼저 구매할 물건을 선택하고 개인정보를 입력하고, 결제를 하게 되는데, 이들 단계 중 하나라도 잘못되면 모든 과정이 처음 장바구니로 돌아간다.이것은 트랜잭션에 의해 구..
JDBC 사용 예제 앞에서 JDBC의 연동 방법 및 사용 객체들을 포스팅하였다. [JSP] JDBC를 사용한 데이터베이스 연동 [JSP] JDBC 프로그래밍에 사용되는 객체 이번 포스팅에서는 JDBC를 사용해 실제로 데이터베이스에 연결하는 예제 코드를 다뤄보겠다. - 예제 환경 > DBMS : MySQL> DB Server IP/Port : localhost:3306> Database Name : jdbcTest> Database ID : testid> Database password : testpw * eclipse 에서 프로젝트에 JDBC MySQL Connector Libarary가 추가되어 있어야 한다. * MySQL 다운로드 페이지 * MySQL 드라이버 다운로드 페이지 1. JDBC를 사용한 ..
JDBC 프로그래밍에 사용되는 객체 1. DriverManager 클래스 - DriverManager 클래스는 데이터 원본에 JDBC 드라이버를 통하여 커넥션을 만드는 역할을 한다.DriverManager는 Class.forName() 메소드를 통해서 생성되는데, 이 메소드는 인터페이스 드라이버를 구현하는 작업이다. - Class.forName("com.mysql.jdbc.Driver") 처럼 특정 클래스를 로딩하면 자동으로 객체가 생성되고 DriverManager에 등록된다.드라이버 클래스를 찾지 못할 경우 forName() 메소드는 ClassNotFoundException 예외를 발생시키므로 반드시 예외 처리를 해야 한다. - 일반적으로 드라이버 클래스들은 로드될 때 자신의 인스턴스를 생성하고, 자동..
JDBC를 사용한 데이터베이스 연동 1. JDBC (Java Database Connectivity) - JDBC는 자바 프로그램과 관계형 데이터 원본에 대한 인터페이스이다. JDBC 라이브러리(Library)는 관계형 데이터베이스에 접근하고, SQL 쿼리문을 실행하는 방법을 제공한다. - JDBC 라이브러리는 'java.sql' 패키지에 의해 구현되고, 이 패키지는 여러 종류의 데이터베이스에 접근할 수 있다. 'java.sql' 패키지는 단일 API를 제공하는 클래스와 인터페이스의 집합이다. - JDBC 드라이버들은 일반적으로 JDBC_-ODBC브리지 + ODBC 드라이버 (JDBC-ODBC Bridge Plus ODBC Drive), 네이티브-API 부분적인 자바 드라이브(Native-API Part..
web.xml 에러 페이지 처리 - JSP에서 에러(Exception)이 발생하면 에러 코드와 함께 에러 페이지를 보여준다. - 이때 에러 페이지가 아닌 다른 페이지를 보여주자. - JSP 에는 에러 페이지를 처리하는 방법으로 , 가 있다. page 디렉티브 - 하지만 JSP 2.0 또는 최신 웹 컨테이너들은 이 기능을 처리하지 못할 수 있다. - 그렇기 때문에 에러 페이지 처리를 서블릿에서 처리하기 위해 web.xml 에서 처리하는 방법을 사용한다. 404/error/404code.jsp - 위와 같이 web.xml에 기술되어 있으면 404 에러 발생시 404code.jsp 페이지로 이동한다. 이때 요청 페이지는 사용자가 요청한 페이지를 그대로 유지한다. - 에러페이지인 404code.jsp 를 처리하..