본문 바로가기
  • 실행력이 모든걸 결정한다
Spring 사전 준비/JSP Servlet

[JSP Servlet] 예외 페이지 / javabean / JDBC 기초

by 김코더 김주역 2020. 12. 2.
반응형

1. 예외 페이지

보기 좋지 않은 에러 페이지를 대체 하는 페이지

예외 페이지를 설정하는 방법 2가지를 소개한다.

 

1) 방법1 : page 지시자

예외가 발생할 만한 페이지에 page 지시자를 이용하여 다음과 같이 작성한다.

<%@page errorPage='에러 페이지 경로'%>

 

그리고 대체한 예외 페이지에는 다음과 같이 작성한다.

<%@page isErrorPage='true'%>
<% response.setStatus(200);%>

* 200은 정상적인 페이지를 의미하는 응답코드이다.

* 예외 페이지로 넘어가도 URL은 바뀌지 않는다.

* isErrorPage를 true로 작성하면 exception 객체를 참조할 수 있으며, 다음과 같이 작성하면 에러 메세지를 확인할 수 있다.

<%= exception.getMessage() %>

 

 

2) 방법2 : web.xml

이렇게 에러 코드마다 이동할 예외 페이지를 지정할 수도 있다.

<error-page>
    <error-code>404</error-code>
    <location>/예외페이지경로</location>
</error-page>
<error-page>
    <error-code>500</error-code>
    <location>/예외페이지경로</location>
</error-page>

 

 

2. javabean

파라미터가 없는 default 생성자를 가지는 프로퍼티 중심의 오브젝트

action 태그를 이용하여 bean을 사용할 수 있다.

 

1) useBean 태그 - 특정 Bean을 사용한다고 명시

클래스는 패키지.클래스 형태로 작성한다.

<jsp:useBean id="bean 이름" class="클래스 이름" scope="page"/>

 

* scope 속성 설명

  • page : 생성된 페이지 내에서만 사용
  • request : 요청된 페이지 내에서만 사용
  • session : 웹 브라우저의 생명주기와 동일하게 사용
  • application : 웹 어플리케이션의 생명주기와 동일하게 사용

 

 

2) setProperty 태그 - 데이터 세팅

<jsp:setProperty name="bean 이름" property="속성 이름" value="속성 값"/>

* bean 이름은 useBean 태그에서 명시한 id를 사용하면 된다.

* property="*" 을 적용하게 되면 (* 을 asterisk 라고 함) 모든 속성에 값을 적용 시킬 수 있다.

* form 태그로부터 넘어온 값을 자동으로 세팅하려면 value 속성을 생략하면 된다. property 속성과 form내의 input의 name 속성과 매칭 되어야 하는데, value를 생략하고 property="*" 을 적용하면 이를 모두 매칭시켜준다.

 

 

3) getProperty 태그 - 데이터 반환

<jsp:getProperty name="bean 이름" property="속성 이름"/>

 

 

 

3. JDBC 기초

1) 데이터베이스 설치

RDBMS : Relational DataBase Management System, 관계형 데이터 베이스 관리 시스템

RDBMS의 예로 Oracle이 있는데 Oracle DBMS 설치법은 아래 포스팅을 참고하자.

11g, 18c 버전 총 2가지 방법의 설치법을 다루었는데, 본인은 앞으로 11버전 기준으로 설명할 것이다. 

DB 계정 생성, 접근 권한 부여는 물론 쉽게 발생할 수 있는 오류까지 모두 설명해두었다.

kimcoder.tistory.com/196

 

Oracle DBMS 설치하기

이번 포스팅에서는 Oracle DBMS 설치 과정에 대해 다룰 것이다. DBMS는 DataBase Management System, 데이터베이스 관리 시스템이다. 설치를 위해 먼저 Oracle 사이트에 접속한다. www.oracle.com/index.html 그..

kimcoder.tistory.com

 

 

2) JDBC 준비

JDBC : JAVA 에서 데이터베이스를 관리하기 위한 JAVA API

 

JDBC로 데이터 베이스를 관리하기 위해 필요한 작업이 있다.

해당 경로에서 ojdbc6을 복사하고

 

프로젝트의 lib 디렉토리에 추가하고

 

프로젝트 우클릭 -> Build Path -> Configure Build Path -> Libraries 에 들어가서 Modulepath를 클릭하고

우측에 있는 Add JARs로 방금 붙여넣은 lib 폴더 내의 ojdbc6.jar 을 추가하면 아래 이미지와 같은 모습이 된다.

 

 

이것으로 준비는 완료 되었고, 연결을 위한 코드는 이렇다.

<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@ page language="java" contentType="text/html; charset=EUC-KR"
    pageEncoding="EUC-KR"%>
    <%!
	Connection connection;
	Statement statement;
	ResultSet resultSet;
	
	String driver = "oracle.jdbc.driver.OracleDriver";
	String url = "jdbc:oracle:thin:@localhost:1521:xe";
	String uid = "scott";
	String upw = "오라클 비밀번호";
	String query = "쿼리문";
    %>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
<%
	Class.forName(driver); //메모리에 오라클 드라이버를 로드한다.
	connection = DriverManager.getConnection(url, uid, upw); //연결 수행
	statement = connection.createStatement();
	resultSet = statement.executeQuery(query);
				
	while(resultSet.next()){
		String id = resultSet.getString("id"); //인자는 DB의 필드명이다.
		String pw = resultSet.getString("pw");
		out.println("id : "+id+"<br>");
		out.println("password : "+pw);
	}
%>
</body>
</html>

 

▣ Statement 주요 메소드

executeQuery() : select문 처럼 반환되는 레코드 셋이 있는 경우, 레코드셋을 반환

executeUpdate() : insert, delete, update문 처럼 레코드 셋을 반환하지 않고 데이터 베이스만 조작해야 할 경우, 적용된 레코드 수를 반환

 

▣ ResultSet 주요 메소드

(처음 상태는 BOF) 
next() : 다음 레코드, 다음 레코드가 있을 경우 true, 아닐 시 false 반환
previous() : 이전 레코드
first() : 첫 레코드
last() : 마지막 레코드

getString() : 문자열 형태 데이터를 반환, 인자는 필드명
getInt() : 정수 형태 데이터를 반환, 인자는 필드명

 

 

+추가) Oracle SQL Developer

콘솔창 말고도 툴을 이용하여 데이터 베이스를 관리할 수도 있다.

www.oracle.com/tools/downloads/sqldev-downloads.html

<화면>

 

반응형

댓글