Servlet 2 (서블릿, 파일업로드)

2020. 11. 26. 20:24BACK END/JSP

<로그인 구현(서블릿)>

* pdf p.191

 

- servletFrom2.jsp : 폼 양식 / id와 이름을 입력&전송

- FromServlet2.java : 초기화 파라미터 phone, name 사용,

해당 파라미터를 넘겨받아 request, session영역에 저장해주는 서블릿 파일

* 맵핑 방법 : /gagaga

- servletTo2.jsp : table 작성, 최종 결과물을 출력

 

 

1. servletFrom2.jsp

서블릿 파일의 이름(url패턴) /gagaga 로 정하고 서블릿파일에서 맵핑합니다.

password타입은 로그인 창에서 입력하는 내용을 직접 표기하지 않습니다.

hidden타입은 파라미터를 입력창에선 숨기고, 결과창에선 출력시킵니다.

 

 

2. FromServlet2.java

→ 서블릿 파일 생성 시 서블릿 맵핑과 초기화 파라미터 생성됨

 

초기화 파라미터를 셋팅하는 메소드 init()

init() 메소드의 ServletConfig는 FromServlet2()의 config입니다.

 

→ 

- String name = request.getParameter("name") : 

request에 있는 파라미터 id, password, nickname을 불러와서 각각 변수에 저장함.

session.setAttribute("",  ) : 바인딩함으로써 session영역에 데이터값을 직접 입력&저장해줌

- setCharacterEncoding() : 파라미터 값에 대한 한글 깨짐 방지를 위한 메소드(request객체)

- getParameter(String name) : 이름이 name인 파라미터의 값을 읽어와서 변수name에 저장함

- RequestDispatcher : 인터페이스

- dispatcher.forward(request, response) : Servlet이 HttpRequest 보다 우위에 있어서 request에서 승급이 일어남

 

* pdf p.85~88 공부하기 : 내장객체의 분류와 request객체

doPost()메소드 안에서 파라미터들을 session에 저장하기 위해

session을 불러오려고 하는데 불러올 수가 없음.

request에는 session을 불러올 수 있는 getSession() 메소드가 있음.

(request 내장객체에 getSession()이 있음)

그래서 request.getSession()을 작성하였고,

getSession()은 HttpSession에 속해있어서

HttpSession session = request.getSession();이라고 작성함.

 

 

3. servletTo2.jsp

→ ${sessionScope.XXX} : session영역에 저장된 값을 보여줌 

아래와 같이 파라미터, 초기화 파라미터가 포함된 테이블 출력

 

 


<파일 업로드를 위한 코딩 절차>

 

1. form태그의 속성들 설정하기

- method는 반드시 post 전송방식

- enctype은 multipart/form-data 타입

(원래 enctype의 기본타입은 따로 있음)

- Input태그의 타입은 type="file" 로 작성

<form method="post" enctype="multipart/form-data">
<input type="file" name="image" id="image"> </form>

 

2. 파일업로드를 이용하려면 cos 라이브러리 사용

- cos.jar 파일 (네이버카페/500 lib 파일 중 있음)

(http://www.servlets.com/cos/)

- WEB-INF > lib > cos.jar 경로로 저장해 사용

 

3. 파일업로드 MultipartRequest 클래스

- 파일 업로드를 직접 담당하는 클래스

- 파일 업로드를 담당하는 생성자와 메소드들을 갖고 있음

1) request : MultipartRequest

2) realPath : 서버 측에 저장될 경로

3) maxPostSize : 최대파일의 크기

4) encoding : 인코딩방식

5) policy : 파일 중복처리 위한 매개변수

 

4. 업로드 경로 설정

- 폴더 생성(upload)

WebContent\upload

 

 

 


<단일 파일 업로드>

 

1. uploadSingle.jsp

- 목적 : 단일 파일 업로드를 위한 jsp페이지

- 코드 : 

복붙해서 사용함

 

서블릿맵핑 : /uploadSingle.do

 

 

 

2. UploadSingleServlet.java

- 목적 : 단일 파일 업로드를 위한 서블릿파일

- 코드 : 

init()
doPost()

 

 

 

3. singleUploaded.jsp

- 목적 : 결과내용을 보여주기 위한 jsp페이지

 

 

 

4. 과정 

이미지 파일 선택 > 테이블 & 선택한 이미지 출력 > 콘솔창 realpath(서버 측에 저장될 경로)

 

uploadSingle.jsp & Servlet

 

singleUploaded.jsp

마지막 레몬 이미지 파일 보기 

<img alt="abc" width="120" height="120" 
src="${requestScope.realpath}/${requestScope.uploadFile}"> 

 

 

 콘솔

 

 

 



<파일 업로드 클래스>
p.231
getFileNames() : 파일이름 리턴
getParameterNames() : 파라미터 리턴
getParameterValues

 

hasMoreElements

getRealPath

getServletContext

getFileNames

MultipartRequest

 

getRequestDispatcher