** DBCP (DataBase Connection Pool)
: 대부분의 사용자가 요구하는 웹 서비스는 데이터베이스와 연동하는 것이 일반적이다.
사용자 요청이 있을때 마다 db 서버에 Connection을 맺어야 한다면
만약, 한번에 다수의 사용자의 요청이 있다면 서버는 부담이 될 수 밖에 없다.
사용자 입장에서는 대기시간이 길어 질 수 있다.
이를 위해서 미리 일정한 양의 Connection을 미리 만들어 두면 훨씬 서버의 부담을 줄일 수 있고
사용자의 대기 시간을 줄일 수 있다.
톰캣에서 제공하는 툴이 있다.
** DBCPl 설정
맨 밑에 T로 시작하는 Tomcat
Documentation - Tomcat 7.0
User Guide - 9)JDBC DataSources
Table of Contents - Database Connection Pool(DBCP) Configurations - 4. Oracle 8i, 9i & 10g
1. Context configuration 에 보면 창이 있음 (이것 사용)
(name 설정, ip 설정, driverClassName에 driver 추가, 서비스명 설정)
--------------------------------------------------------------------
<Resource name="jdbc/myoracle" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:mysid"
username="scott" password="tiger" maxActive="20" maxIdle="10"
maxWait="-1"/>
--------------------------------------------------------------------
위에 것을 복사해서
server.xml 혹은 context.xml 에 복사하여 자신에게 맞도록 수정한다.
server.xml 적용시 : 그 어플리케이션에만 적용된다.
context.xml 적용시 : 모든 어플리케이션에 적용된다.
예)
server.xml 적용 방법
server.xml 열고
맨 밑에 내리면
<Context docBase="dbcpTest" path="/dbcpTest" reloadable="true" source="org.eclipse.jst.jee.server:dbcpTest"/></Host>
이 있다.
위에 것을 분리하여 하위노드에 아까 창을 줄것임
위에 / 를 지우고 밑에처럼 작성함
형식)
<Context docBase="dbcpTest" path="/dbcpTest" reloadable="true" source="org.eclipse.jst.jee.server:dbcpTest">
여기 안에 적용시킴
</Context>
실제)
<Context docBase="dbcpTest" path="/dbcpTest" reloadable="true" source="org.eclipse.jst.jee.server:dbcpTest">
<Resource name="oracle" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@203.236.209.143:1521:XE"
username="scott" password="tiger" maxActive="20" maxIdle="10"
maxWait="-1"/>
</Context>
// maxActive 은 최대 커넥션수를 얼마만큼 만들겠다는 것임
<테스트를 위한 test.jsp 생성>
// import 주의
<%@page import="java.sql.Connection"%>
<%@page import="javax.sql.DataSource"%>
<%@page import="javax.naming.InitialContext"%>
<%@page import="javax.naming.Context"%>
<body>
<%
// Context에 설정한 리소스를 찾는다.
Context context = new InitialContext();
DataSource ds = (DataSource)context.lookup("java:comp/env/oracle");
// "java:comp/env/내가 지정한이름" : 형식임(외우기)
// 에러날때 (DataSource)를 캐스팅 해줌(자바는 항상 제일 조상인 Object를 생각하고 있기 때문이다.)
// DataSource를 통해 Connection을 얻어 온다.
Connection conn = ds.getConnection();
if(conn != null){
out.println("DBCP 성공");
conn.close();
}
%>
</body>
** Connection Pool을 이용해 DB에 넣기
test를 위한 테이블 만들기
create table test (
no number,
title varchar2(20)
);
위에 데이터를 넣는 간단한 jsp 만듬
<test2.jsp 만듬>
<%
String sql = "insert into test values (1, 'hello')";
Context context = new InitialContext();
DataSource ds = (DataSource)context.lookup("java:comp/env/oracle");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
int re = stmt.executeUpdate(sql);
if(re==1){
out.println("추가 성공");
}else{
out.println("추가 실패");
}
if(stmt != null){
stmt.close();
}
if(conn != null){
conn.close();
}
%>
** workSpace 바꾸기
file - swtich workspace - other
browse - c드라이브 밑에 파일 하나 만들기 c:jspTest
1. 서버 설정
project Explorer 창에서 마우스 오른쪽 - new - other - server - Apache - Tomcat 7.0
- Tomcat installation directory 설정
C:\Tomcat 7.0
- JRE 설정
jre1.8.0_73 잡아줌
2. 웹프로젝트 생성
3. DBCP 설정
맨 밑에 T로 시작하는 Tomcat
Documentation - Tomcat 7.0
User Guide - 9)JDBC DataSources
Table of Contents - Database Connection Pool(DBCP) Configurations - 4. Oracle 8i, 9i & 10g
1. Context configuration 에 보면 창이 있음 (이것 사용)
(name 설정, ip 설정, driverClassName에 driver 추가, 서비스명 설정)
(이외에 권한설정 등등)
4. 상품등록을 위한 웹어플리케이션 작성
** 프로젝트 만들고 미리 해야할것
Window
Preferences
Web
JSP Files
Encoding 에 맨 위로 올리면
ISO 10646/Unicode(UTF-8) 선택해줌
이렇게 하면 지금부터 만드는 모든 문서는 UTF-8로 만들어짐
1.GoodsVo 생성
1-1. ConnectionProvider 생성
(Context 를 이용하여)
2.GoodsDao 생성
3.WebContent - WEB-INF - lib 에
jar 3가지 파일 복사
4.WebContent - img 폴더 만듬(이미지 업로드용)
5.start.jsp 생성
6.start.jsp에서 받아오는 insertGoods.jsp 생성
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
위에 문장을
<!DOCTYPE html >
이렇게 바꾸면 html5 로 인식하여 input type에 number 설정과 min 1000 설정이 가능함
7. servlet 생성 (InsertGoods 이란 이름으로)
8. ***** UTF-8 설정
Servers - server.xml
65번째 줄 Connector 찾음
<Connector connectionTimeout="20000"
port="8088"
protocol="HTTP/1.1"
redirectPort="8443"/>
여기에 추가로 ( URIEncoding="UTF-8" ) 해줌
<Connector connectionTimeout="20000"
port="8088"
protocol="HTTP/1.1"
redirectPort="8443"
URIEncoding="UTF-8"
/>
9. 상품 목록보기 jsp
'JAVA > JSP' 카테고리의 다른 글
JSP - MVC 패턴 실습 (0) | 2016.07.03 |
---|---|
JSP - MVC 패턴 설명 (1) | 2016.07.03 |
JSP - 답변형 게시판을 위한 칼럼 추가 (0) | 2016.07.03 |
JSP - 프로젝트 복사할 때 서버 오류 나는 경우 (0) | 2016.07.03 |
JSP - 파일업로드 설명(cos.jar 이용) 및 예제 (2) | 2016.06.18 |