반응형
 회사의 구조가 조금 특이하다. 관리자용 페이지는 내부망에 연결이 되어있고, 실제 고객이 보는 페이지는 당연히 인터넷망에 연결이 되어있다. 이렇다보니 이미지를 다룰 때 관리자 페이지에서 이미지를 보여주는데 문제가 있었다.
 요즘은 WAS, WEB 서버가 분리되어 있는 경우가 대부분이라 WAS에서 이미지를 처리하는 경우가 거의없다. 그런데 그 일을 해야하는 경우가 생겨서 포스팅을 한다.
 
 지금처럼 이런 경우가 생긴다면 WAS Server에서 Java로 이미지를 읽고 이를 스트림형태로 페이지에 보내주면 된다. 아래의 소스가 이러한 예제를 보여준다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public void getIMG(HttpServletRequest req, HttpServletResponse res){
    ServletOutputStream imgout = res.getOutputStream();
    String imgPath = "was/img/location";
    String imgName = req.getParameter("img_nm"); // JSP에서 넘겨주는 파라미터 이름
    //이미지의 확장자명까지 넘어왔을시 확장자 체크 없이 진행
    File f = new File(imgPath + File.separator + imgName);
    if(! f.exists()){
        //파일이 없는 경우 체크하여 이후 로직실행
        //생략
    }
    FileInputStream input = new FileInputStream(imgPath);
    int length;
    byte[] buffer = new byte[10];
    while( (length = input.read(buffer)) != -1)
        imgout.write(buffer, 0length);
}
cs


 딱히 코드에 대한 설명이 필요 없을 정도로 간단한 소스이다. 다 필요없이 경로랑 파일명을 알고 있다면 11~15줄까지만 코드가 있으면 돌아간다.(2번째줄 포함) 


 이걸 페이지에서 부를 때 조금 다른 방법이 img태그를 처리할 때 나타난다.


1
2
3
4
5
<!--일반적인 경우 WEB서버에서 콜할때-->
<img src="/img/location/milkye.png"/
 
<!--WAS서버에서 콜할때-->
<img src="/getImg"/
cs

 img태그의 src 부분에 서블릿 경로를 지정해주면 알아서 불러오게 된다.


반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기