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 계정 생성, 접근 권한 부여는 물론 쉽게 발생할 수 있는 오류까지 모두 설명해두었다.
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
<화면>
'Spring 사전 준비 > JSP Servlet' 카테고리의 다른 글
[JSP Servlet] 서버에 파일 업로드하고 확인하기 (5) | 2020.12.06 |
---|---|
[JSP Servlet] 데이터베이스(2) - DTO/DAO/ConnectionPool (0) | 2020.12.03 |
[JSP Servlet] 요청, 응답 관련 메소드 / 쿠키 / 세션 (0) | 2020.11.30 |
[JSP Servlet] JSP 태그 종류 / JSP 동작 원리 (0) | 2020.11.26 |
[JSP Servlet] 초기화 파라미터 / 데이터 공유 / Listener (0) | 2020.11.26 |
댓글