본문 바로가기

배운 책들 정리/Java Server Pages

Java Server Page 19 ~ 24 - 회원 프로그래밍, DAO&DTO, 파일 업로드, EL태그

1 팁

1. 

 

 

 

2 복습

1. 

 

스킵

 

 

3 이론

19장 회원가입 및 정보 수정 프로그래밍

 

* 회원가입 및 회원정보 수정 프로그래밍

 

 

 

* 정리

회원가입 프로그래밍은 크게
회원가입, 회원 정보수정, 로그인, 로그아웃 단계로 이루어지며
여기서 만드는 파일은 크게 다음과 같다.
do로 시작되는 파일은 일반적으로
특정 구문의 script를 실행하여 특정 페이지를 리턴하는 기능을 수행한다.

1) 회원 정보 수정 : modify.jsp & doModify
2) 메인 페이지 : index.jsp
3) 회원가입 : dojoin&join, joinResult
4) 로그인 : login & dologin

 

20장 커넥션풀 (DAO & DTO)

 

* DAO & DTO

 

* 정리

웹 구조는 웹브라우저 - 서버(DBCP) - db 형태로 있으며
서버의 구조는 서블릿,jsp,dao,dto로 나눠진다.
dao는 뇌와 같이 기능을 구현하는데 필요한 클래스가 있다면
dto는 고객 정보를 담는 것처럼 변수의 값을 담아두는 것을 의미한다.

그리고 작업할 때 context에다 위의 사진과 같은 리소스 코드를 추가하여
db 인증을 할 수 있게끔 한다.

 

21장 회원 인증 프로그래밍

 

 

* 정리

회원 인증 프로그래밍은 DAO를 통하여 전부 이루어지는데
이는 MemberDao라는 파일 안에 
1) 회원가입 -> 회원 가입 인증 & 로그인 -> 회원 인증 -> DAO
2) 메인 -> 회원 정보 수정 & 로그아웃 -> 회원 정보 -> DAO
3) 회원 인증 -> DAO
와 같은 방식으로 이루어진다. 
여기서 중요한 점은 클래스와 파일이 서로 유기적으로 이어지기 때문에
초반 설계 시에 프로그래밍 구조를 명확하게 구분하여 설계할 수 있도록 해야 한다.

 

22장 파일 업로드

* 파일 업로드 라이브러리 다운로드

 

 

 

JSP - 파일 업로드(cos 라이브러리)

JSP로 파일 업로드를 편하게 사용하기 위해서는 COS 라이브러리를 사용해야 한다. 하지만 상용으로 ...

blog.naver.com

package com.java.www.service;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.java.www.dao.BoardDao;
import com.oreilly.servlet.MultipartRequest;
import com.oreilly.servlet.multipart.DefaultFileRenamePolicy;

public class BEditService implements BService {

	@Override
	public void execute(HttpServletRequest request, HttpServletResponse response) {
		String uploadPath = "c:/upload";
		int size = 10*1024*1024;
		try {
			MultipartRequest multi = 
					new MultipartRequest(request, uploadPath,size,"utf-8",new DefaultFileRenamePolicy());
		
			int bno = Integer.parseInt(multi.getParameter("bno"));
			String id = multi.getParameter("id");
			String btitle = multi.getParameter("btitle");
			String bcontent = multi.getParameter("bcontent");
			String oldfile = multi.getParameter("oldfile");
			String bfile = multi.getFilesystemName("bfile");
			
			if(bfile==null) { bfile = oldfile;	}
			
			System.out.println("oldfile : "+ oldfile);
			System.out.println("bfile : "+ bfile);
			
			BoardDao bdao = new BoardDao();
			int result = bdao.updateOne(bno, id, btitle, bcontent, bfile);
			
			request.setAttribute("result", result);
		
		} catch (Exception e) {e.printStackTrace();}

	}

}

 

 

* 정리

 

파일 업로드는 서블릿 홈페이지에서 cos.jar을 다운 받아서
프로젝트 lib에다가 넣어준다. 추가로 파일 폴더에 대한 부분은 따로 WebContent에서 만들어준다.
파일 업로드 태그는 주로 사용하게 되면 form 태그에서 많이 사용하는데
html에서 파일 업로드 기능을 넣고자 하는 라인에 <form ~~~ enctype="multipart/form-data">를 넣어준다.
이 기능을 적용하기 위해서는 DAO 근처 패키지에 존재하는 com.java.www.service 에서 있는 Service카테고리에서
주로 MultipartRequest을 사용하는데 아래와 같은 문구를 자주 사용하게 된다.

MultipartRequest multi = new MultipartRequest(request, saveDir, maxSize, encoding, new DefaultFileRenamePolicy());

다만 파일 업로드를 하기 위해서는 server.xml에서 host 태그 안에 아래와 같은 부분을 추가해야 한다.
(파일명과 경로는 자기가 설정한 경로에 맞게)

<Context docBase="D:/upload" path="jsp_0422/upload" reloadable="true"/>

 

23장 EL 태그

 

* EL 태그

 

 

* 정리

 

EL태그는 액션 태그를 대신 표현하는 언어로
<%= 값 %> 이런 것들을 ${값}으로 표현하는 방식이다
특징이 있다면 멤버 네임을 선언하기 위해서는 name = " ", property=" "
으로 선언했다면 EL태그를 사용하면 java의 속성값을 명시적으로 지정하지 않고
바로 ${member.name}으로 불러올 수 있다는 점이다.
쉽게 이야기하면
액션태그 : 명령을 수행하는 도구 (다이얼을 누르면 특정 작업을 수행하는)
EL태그 : 값을 표현하는 도구 (전화기 화면에 표시 되는 번호들)

request 내장 객체와 세션 메소드에서 자주 사용되는 메소드는 다음과 같다.
request : getContextPath("경로"),  // 경로 반환
세션 메소드 : getAttribute(), setAttribute() // 속성을 가져옴 & 속성을 저장함

 

 

4 실습

1.  실습 링크 (jsp0620)

 

 

GitHub - RosePaku/bigdata_jsp: jsp

jsp. Contribute to RosePaku/bigdata_jsp development by creating an account on GitHub.

github.com

 

 

5 문제풀이

1. 

 

 

* 핵심

- 회원가입, 게시판 프로그래밍, DAO&DTO, 파일 업로드, EL태그 개념에 대하여

 

 

728x90
반응형
LIST