member_servlet_mvc.zip

----------수정처리--------------------------

시작 : modify_form.jsp - 주민번호 입력 부분 수정
Controller : ModifyMemberServlet
Service : MemberManageService.modifyMember(MemberDTO)
DAO : DAO.updateMember(MemberDTO)
응답 : 성공 : member_list.jsp
         실패 : login안되서 - login_form.jsp
                  exception - error.jsp

 

 

 

 

 

 

 

 

 

--------탈퇴처리----------------------------

시작 : member_detail.jsp 에서 탈퇴 링크 클릭시
Controller : RemoveMemberServlet(DB삭제처리, session 종료)
Service : removeMemberById(id) : void
DAO : deleteMemberById(id) : void

응답 : 성공 : login_form.jsp
         실패 : 로그인이 안된 경우 : login_form.jsp(에러메세지 가지고 이동)
                  exception 이 나서 실패한경우 : error.jsp

 

 

 

 

 

 

 

* 결과보기

 

 

 

 

 

Posted by 조은성
,

 

member_servlet_mvc.zip

 

WebContent
    res

 

 

 

 

 

 

 

WEB-INF

 

 

 

 

 

 

 

 

java Resources
     src
member.dto

 

member.exception

 

 

member.filter

 

member.listener

 

member.model.dao

 

member.servlet

 

 

 

 

 

 

 

 

member.util

 

memver.model.service

 

Posted by 조은성
,

* 쿼리에서 문자열 더하고 넣는 방법.

preparestatement에서 like 구문 사용하는 법 :

select * from member where name like '%'||?||'%';
pstmt.setString(1,name);

일반 문자열 더하는 법 : "a"+"b"
쿼리에서 문자열 더하는 법 : 'a'||'b'

-> 주말에 위에것 사용해서 이름으로 모든 정보 조회하기 해보기!

* 결과보기

 

 

* 소스보기

 

 

 

 

 

 

 

 

 

 

 

Posted by 조은성
,

 


member_servlet_mvc.zip

[힌트]
forward.jsp -> 요청파라미터를 읽어서 requestScope에 binding 한뒤 Servlet으로 이동

RegisterMemberServlet : 완성
register_success.jsp : 수정(주민번호 수정)
한글처리 : - Filter
class :
package : member.filter
class name : EncodingFilter

 

 

 

 

 

 

 

 

 

 

 

 

 * 결과보기

 

* 전체 회원 정보 조회하기

메뉴 -> (/getAllMemberInfo)
->GetAllMemberSerlvet
->MemberManagerService.getMemberList() ; ArrayList<MemberDTO>
->MemberDAO.selectAllMember() ; ArrayList<MemberDTO>

->응답 : error.jsp, member_list.jsp

 

 

 

 

 

 

 

 

 

 

 

 

 * 결과 보기

 

* 검색 : 마일리지 범위로 회원정보 조회하기

search_form.jsp(검색 조건 입력페이지) - 요청 파라미터 : 시작~끝 마일리지
->SearchByMileageRangeServlet() - url : /searchByMileageRange
->MemberManagerService.searchMemberByMileageRange(int start, int end) : ArrayList<MemberDTO>
->MemberDAO.selectMemberByMileageRange(int start, int end) : ArrayList<MemberDTO>

응답 -> search_result.jsp, error.jsp

 

 

 

 

 

 

 

 

 

 

 

 

 

* 결과보기

 

 

 

* 쿼리에서 문자열 더하고 넣는 방법.

select * from member where name like '%'||?||'%';

pstmt.setString(1,name);

"a"+"b"
'a'||'b'

-> 주말에 위에것 사용해서 이름으로 모든 정보 조회하기 해보기!

 

* 로그인 처리
login_form.jsp
-> LoginServlet - Business Logic처리, session처리
->Service.getMemberById(String id) : MemberDTO
->DAO.selectMemberbyId(String id) : MemberDTO

응답 : login_success.jsp(로그인 성공) login_form.jsp(실패)
         error.jsp(exception)

 

 

 

 

 

 

 

 

 * 결과

 

 

 

Posted by 조은성
,

BasicDataSource ?
- org.apache.tomcat.dbcp.dbcp.BasicDataSource
- tomcat에서 제공하는 Connection Pool


BasicDataSource의 메서드
DB Connection 관련 설정
- setDriverClassName(String className) // DB Driver를 className으로 설정
- setUrl(String url) // DB 연결정보 URL을 url으로 설정
- setUsername(String user) // DB 연결에 필요한 Username을 user로 설정
- setPassword(String password) // DB 연결에 필요한 Password를 password로 설정

Connection Pool 관련 설정
- setInitialSize(int initialSize); // 초기에 생성될 커넥션 객체의 수. default : 0
- setMaxActive(int maxActive); // 최대 몇개의 커넥션 객체를 만들 것인지 설정. default : 8
- setMaxIdle(int maxIdle); // 사용되지 않고 대기하는 커넥션 객체의 최대 개수.
maxIdle보다 많이 대기시 maxIdle수에 맞게 Connection을 close. default : 0
- setMinIdle(int minIdle); // 사용되지 않고 대기하는 커넥션 객체의 최소 개수. default : 0

 

Posted by 조은성
,

Connection Pool ?
Connection Pool의 필요성
- DBMS로의 연결이 오래걸림
- DB 작업을 할 때마다 Connection ~ Close 까지의 반복 작업이 비효율적
- Connection Pool에 Connection 객체를 생성해 놓고 DB 작업시 Pool에서 빌려 사용후 다시 반납

Connection Pool의 개념
- Connection을 관리하는 객체 Pool
- Connection들을 미리 생성하여 Pool에 저장한 뒤 필요시 빌려쓰는 개념
- 사용 후에는 다시 Connection Pool에 반납

Connection Pool의 사용
- 직접 제작하여 사용 / 제공되는 API를 이용
- 대표적인 API : org.apache.tomcat.dbcp.dbcp.BasicDataSource


DataSource ?
- Connection Pool을 구현하기 위한 스펙을 정해놓은 Interface
- Connection Factory (Connection 객체를 생성해 주는 역할)
- javax.sql.DataSource를 import 해서 사용

DataSource의 장점?
- Connection Pool 지원
- 객체가 DB 연결에 필요한 정보를 알고 있어 DB연결시 URL, ID, Password를 입력해야 하는 번거로움 해소

Posted by 조은성
,

 

 

 

 

 

 

 

 

 

 

Posted by 조은성
,

* 결과 

* DB내용 

 

 

 

 

 

 

 

Posted by 조은성
,

1. Connection (DB연결)
2. Statement/PreparedStatement
3. SQL
4. ResultSet
5. close

* Connection은 메소드를 실행하기 전에 미리 연결을 해놓으면 시간을 절약할 수 있다.

* javax.sql.DataSource (interface다.)
1. ConnectionPool 지원
2. 객체가 DB연결 정보를 알고있다.

Posted by 조은성
,

 

 

 

 

 

 * 결과보기

 

Posted by 조은성
,