Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags more
Archives
Today
Total
관리 메뉴

어? 이게 되네

2022.05.24. 화요일 이공계 전문기술 연수사업 (서블릿,MVC,JSP) 본문

TIL

2022.05.24. 화요일 이공계 전문기술 연수사업 (서블릿,MVC,JSP)

토끼귀에진주귀걸이 2022. 5. 30. 20:37

오늘 배운 것

파일 업로드가 가능한 게시판 생성
board 테이블에 파일 이름을 저장하는 컬럼 추가
alter table board add fname varchar2(50);

pstmt.set(1,vo객체.get)이거 잘 알고 넘어가기

파일도 함께 데이터 전달받는 방법
<form action="InsertBoard" method="post" enctype="multipart/form-data">
<input type="file" name="여기선 파일이름이 가는 것이 아니라 그 파일 내용이 전달됨">
enctype="multipart/form-data 속성 꼭 추가하기

파일과 함께 데이터를 전달받기 위한 별도의 클래스 필요
http://www.servlets.com.cos/ 가서 cos.jar준비

jstl준비는 WEP-INF lib에 jstl1.2.jar 

파일과 함께 클라이언트가 요청한 데이터를 받아오기 위해서는 다음의 객체를 생성해야 함
MultipartRequest multi=
new MultipartRequest(request,"c:/images",1024*1024*5,
"utf-8",new DefaultFileRenamePolicy());
//requst,파일저장경로,파일최대크기,인코딩방식,중복시 정책

파일을 저장할 경로를 c:로 설정하게 되면 서버에 데이터를 기록하는 용도로는 가능하지만
만약에 그 파일이 이미지 파일이어서 클라이언트에게 보여줄 용도라면 c:드라이브에 저장하게 되면 클라이언트에게 보여줄 수 없음
만약에 업로드 한 파일을 다시 클라이언트에게 보여줄 목적이라면 현재 프로젝트를 기준으로 폴더를 만들고 거기에 업로드해야 함
이 때 현재 프로젝트를 기준으로 폴더를 만들고 그 폴더에 실제 경로를 알아오기 위해서는
request.getRealPath()메소드 이용함

입력해서 파일도 선택해서 등록을 하면 doPost로 와서 multi~~객체가 생성되어 파일은 위에서 지정해준 위치에 복사가 됨
MultiPartRequest 객체를 생성하는 순간 파일 복사가 이루어짐 따라서 사용자가 입력한 정보들은 multi가 가지고 있게 됨 따라서 multi를 통해서 getParameter해야 함

request.getRealPath();
request.getOriginalFileName();

null과 ''는 다름 !

String sql="insert into board values(?,?,?,?,?,sysdate,0,?)";
try {
Connection conn=ConnectionProvider.getConnection();
PreparedStatement pstmt=conn.prepareStatement(sql);
pstmt.setInt(1, getNextNo());
pstmt.setString(2, b.getTitle());
pstmt.setString(3, b.getWriter());
pstmt.setString(4, b.getPwd());
pstmt.setString(5, b.getContent());
//8번째 아님 주의 !!!!!!!!!!!!!!!!!!!
pstmt.setString(6, b.getFname());
re=pstmt.executeUpdate();

 

오늘 헷갈린 것

  • pstmt set 메소드에 게터 오는 거랑 숫자 순서 부여.. 사실 이 메소드 잘 구분 못하겠음 ㅠㅠ 왜 set아닌 get이 오는 거지?

오늘 한 생각

주석 중요 ! 수업시간에 달아주지 않아도 내가 달자