반응형

Back-End/JSP 8

JSP Servlet 에서 Image 응답 보내기

HttpServletResponse 객체를 이용한다. 123response.setContentType("image/jpeg");byte[] image = IOUtils.toByteArray(new FileInputStream(new File("이미지파일경로")));response.getOutputStream().write(image);Colored by Color Scriptercs 위와같이 response객체를 이용해 이미지를 byte[] 형태의 데이터로 보내면 브라우저에 이미지 자체가 보인다. IOUtils를 사용하기 위해서는 maven사용자는 아래 dependency를 추가하면 된다. 12345 commons-io commons-io 2.4cs

Back-End/JSP 2018.09.17

JSP Servlet 이클립스에서 작업할 때 이미지 경로 문제

처음엔 이클립스 상에서 폴더 만들고 그 안에 이미지가 업로드 되게 한 후 테스트 진행했다. 아무리 해봐도 이클립스 프로젝트를 새로고침 해주지 않는 이상 절대 한방에 이미지가 안보였다. 알고보니 이클립스 프로젝트 폴더는 워크스페이스 폴더고, 실제로 배포되는 진짜 경로가 따로 있다는 것을 알게됐다. 그래서 이클립스 프로젝트 폴더 경로로 이미지를 업로드하니 당연히 실제 배포 경로엔 이미지가 없었고, 새로고침 할 때 그 때 프로젝트 폴더로 배포가 돼어 이미지를 볼 수 있는 것이었다. 그 경로는 HttpServletRequest객체.getServletContext().getRealPath("/") 메소드로 얻어올 수 있다. 업로드를 저 경로에 해주면, 이미지도 제대로 보인다.

Back-End/JSP 2018.09.17

JSP 란?

JSP는 Java Server Page의 약자로 동적인 웹페이지를 만드는 프로그래밍 기술이다. Servlet도 같은 목적이지만 방법에 있어 다르다. Servlet은 .java확장자를 갖는 자바파일이다. 웹브라우저에 요청이 있을때 doGet이나 doPost등의 메소드를 통해 보여줄 웹페이지의 html코드를 동적으로 만들어 보내준다. 하지만 이 방법은 이전 포스트에서 얘기했던것처럼 웹페이지 규모가 커질수록 코드가 복잡해진다. 그에 비해 JSP는 .jsp 확장자를 갖는 파일로, html코드 내에 자바코드를 삽입하는 것이다. 즉 Servlet과는 구현방법이 반대이다. 하지만 페이지를 만들어내는데에 있어 Servlet으로 하는 방법보단 훨씬 간단하게 작업할 수 있다. JSP의 동작 방식은 아래와 같다. 1) 웹브..

Back-End/JSP 2018.09.17

서블릿 초기화 파라미터(ServletConfig)

서블릿이 초기화 될 때 인자들을 줄 수 있으며 그 방법은 크게 2가지가 있다. 1. web.xml을 통한 설정 web.xml내에 서블릿은 태그로 표현되며 등 속성을 갖고있다.여기에 이라는 태그를 이용해 서블릿의 초기화 인자를 줄 수 있다.은 내부에 , 태그가 있어 각각 초기화 인자의 이름, 값을 표현한다. 서블릿이름클래스이름 인자이름 값 위와 같이 설정된 초기화 인자는 서블릿의 getInitParameter("인자이름")을 통해 그 값을 가져와 사용가능하다. 1) 테스트할 서블릿 만들기 2) web.xml에 등록 서블릿 등록 후 태그를 통해 초기화 인자 지정해주고, /initTest로 매핑 3) 서블릿에서 초기화 인자 가져와서 처리내용 구현 getInitParameter는 HttpServlet에서 상속받..

Back-End/JSP 2018.09.17

JSP Servlet Context 단위 공유 파라미터

서블릿 파라미터 설정은 태그 내에 으로 할 수 있다. 하지만 이렇게 각각 서블릿에서 사용되는 파라미터 대신Context단위로 파라미터 설정하여 여러 서블릿에서 공유하여 사용될 수 가 있다.방법은 web.xml에서 태그를 이용하는 것이다. conParamconSharedValue param-name, param-value는 과 동일하다. 저렇게 web.xml에 선언한 context단위 파라미터는 ServletContext객체를 통해 접근할 수 있는데, 서블릿에 getServletContext() 메소드로 얻어올 수 있다. getServletContext().getInitParameter(""); 위와 같이 context객체를 통해 getInitParameter메소드 호출하는것은 servlet 파라미터 가져..

Back-End/JSP 2018.09.17

Servlet 기본 및 예제

# Servlet 개념 WAS(톰캣)이 요청을 받았을 때 해당 요청을 처리해줄 컨트롤러. 최초 한번 생성되고, 다른 요청이 있을땐 기존 생성된 서블릿을 사용하기 때문에, 매번 새로운 처리 객체를 만드는 다른 CGI언어에 비해 서버가 받는 부하가 적다.# Servlet 생명주기1) @PostConstructServlet이 생성될 때 1번만 실행됨, init메소드보다 먼저실행됨어노테이션을 이용해 PostConstruct메소드로 지정함으로써 구현 123456@PostConstructpublic void myInitMethod(){ // 초기화 내용 구현} cs 2) init()PostConstruct와 같이 Servlet이 생성될 때 1번만 실행됨 1234@Overridepublic void init() th..

Back-End/JSP 2018.09.17

JSP에서의 MVC 모델1, 모델2

1. MVC 패턴Model : 컨트롤러의 요청을 받아 데이터의 추출, 입력, 갱신 등 작업 수행View : 웹브라우저 등 사용자에게 보여지는 영역을 담당, 컨트롤러가 응답하는 내용을 받아 브라우저에 보여줄 페이지를 만듬Controller : 웹브라우저에서 요청을 받아 알맞은 Model들이 요청에 맞는 데이터를 처리하게 하고 처리결과를 받아 다시 알맞은 View에게 넘겨주는 역할 2. 모델1 구조사실상 별도의 컨트롤러가 없지만 굳이 분리하자면JSP가 Controller, View 역할을 다하는 구조웹브라우저의 요청을 받아 알맞은 Model을 선택해 처리요청하는 컨트롤러의 역할, Model의 처리결과를 받아 웹브라우저에 응답될 웹페이지를 생성하는 뷰의 역할을 같이 한다. # 장점변경사항, 요구사항이 적거나 ..

Back-End/JSP 2018.09.17