File Upload

파일 업로드 구현 순서

  1. web.xml에 <context-param>을 설정하기

context-param : 서버 내에서 사용되는 키-값

  <context-param>
  	<param-name>file-upload</param-name>
  	<!-- 서버가 실행되면 프로젝트의 변화에 즉각적으로 반응. 서버가 돌아가는 경로 -->
  	<param-value>C:\Users\admin\Web_Codes\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\Web07_JSP\images</param-value>
  </context-param>
  <context-param>
  	<param-name>file-relative</param-name>
  	<!-- 실제 경로 -->
  	<param-value>C:\Users\admin\Web_Codes\Web07_JSP\src\main\webapp\images</param-value>
  </context-param>
  1. commons-fileupload-x.x.jar을 다운로드 및 WEB-INF/lib 폴더에 저장한다

  2. commons-io-x.x.jar을 다운로드 및 WEB-INF/lib 폴더에 저장한다

  3. C:\tmp 폴더 생성


Filter

  • init() : 필터가 시작할 때 호출된다.
  • doFilter() : 필터를 사용할때마다 호출된다. 필터링 기능을 만든다
  • destroy() : 필터가 종료될 때 호출된다.

Filter의 목적

  • 서버에서 리소스에 접근하기 전에 클라이언트의 요청/응답을 인터셉트하는 기능
  • 클라이언트와 서버간의 요청/응답을 조작하기 위해 사용한다

Filter의 유형

  • 인증
  • 데이터 압축
  • 암호화
  • 로그/감시
  • 이미지 변환
  • charEncodingSet

Filter 사용법

  • web.xml 파일에 필터 태그 추가하기
<filter>
  <filter-name>TestFilter</filter-name>
  <!-- 필터 클래스 경로 -->
  <filter-class>edu.web.jsp02.TestFilter</filter-class> 
</filter>
<filter-mapping> 
  <!-- filter의 filter-name과 일치해야함 -->
  <filter-name>TestFilter</filter-name>
  <!-- 필터 연결 할 jsp 경로. 여러 곳 추가 가능 -->
  <url-pattern>/10_filter/filterTest.jsp</url-pattern>
</filter-mapping>

url-pattern에서 <url-pattern>/*</url-pattern>*은 모든 하위경로를 의미. 현재 프로젝트에 존재하는 모든 파일에 필터가 적용됨

Servlet의 HttpServletRequest/Response와 Filter의 ServletRequest/Response는 상속관계다.
ServletRequest가 HttpServletRequest의 부모클래스


url로 server에 접근할 경우

url로 서버사이드(내 경우 servlet)에 접근할 경우 doGet()이 호출된다. 서버사이드는 웬만하면 get방식으로 접근해선 안됩니다. post를 권장!!

doGet()이 호출된다면(url로 접근할 경우) 보안을 위해 경로 변경하기
response.sendRedirect("정상접근 경로");

request, response 예외처리

연결을 주고받는 메소드(doGet,doPost)는 연결이 끊겨 오류가 발생할 확률이 많아서 에러처리해야함

throws는 함수 자체를 예외처리.
try-catch는 코드를 예외처리.

함수에 throws ServletException, IOException 예외처리해주기


사이트 이용시 볼 수 있는 이미지들은 서버에 올라와있어야 사이트 이용자들이 볼 수 있음. jsp에 파일형태로 가지고 있는게 아니라 서버에 저장된 이미지 경로를 가지고 링크해서 보여주는 것이다.

로그찍는건 데이터가 제대로 넘겨졌는지 확인할 때 사용하기

폼에서 서버/클라이언트 데이터 흐름
1) 폼에서 입력된 정보를 jsp(클라이언트A)에서 servlet(서버)로 보냄
2) 서버는 받은 정보를 DB에 저장
3) DB에 저장을 성공하면 반환되는 result를 바탕으로 새로운 jsp B에 정보를 띄움.
A->서버, 서버->B로 보낼 때 VO를 사용한다.
서버->DB에 보낼 때 DAOImple를 사용한다.

profile
6개월 국비과정 기록하기

0개의 댓글

Powered by GraphCDN, the GraphQL CDN