HttpServlet를 상속받아 ExcludeServlet을 만들것이다.
ExcludeServlet은 web.xml에서 resourceServlet서블릿으로 등록할 것이다.
함수는 init(), doGet(), destroy()가 있는데 doGet()만 구현할것이다.
파일처리에 대한 내용이나, 자세히는 잘 모르겠으니 추후에 이에 대한 내용을 추가하고자 한다.
○ doGet()
...더보기
public void doGet(HttpServletRequest req,
HttpServletResponse resp)
throws ServletException, IOException
{
ServletContext sc = getServletContext();
String path=req.getRequestURI().substring(req.getContextPath().length()+1, req.getRequestURI().length());
String filename = sc.getRealPath(path);
// Get the MIME type of the image
String mimeType = sc.getMimeType(filename);
// Set content type
resp.setContentType(mimeType);
// Set content size
File file = new File(filename);
resp.setContentLength((int)file.length());
// Open the file and output streams
FileInputStream in = new FileInputStream(file);
OutputStream out = resp.getOutputStream();
// Copy the contents of the file to the output stream
byte[] buf = new byte[1024];
int count = 0;
while ((count = in.read(buf)) >= 0) {
out.write(buf, 0, count);
}
in.close();
out.close();
}
- 파라미터는 request, response (HttpServletRequest, HttpServletResponse 형식)이다.
- mimeType을 추출하여 resp.setContentType에 set해준다. (왜 하는걸까??잘 모르겠음)
- 첨부파일의 realPath를 추출하여 String형 filename변수에 저장한다.
- File형 객체 file을 생성자로 filename으로 만든다.
- resp.setContentLengsth에 file길이를 set
- FileInputStream으로 객체 만들어서 생성자로 file을 넣는다.
- OutputStream은 기존 만들어져있던 resp를 이용하여 getOutputStream으로 만듦.
- file을 스트림 처리
- in.close(), out.close()로 스트림 닫아준다.
**참고 : https://coding-factory.tistory.com/281
ExcludeServlet.java 끝
web.xml에 다음처럼 서블릿 등록해준다.
<servlet>
<servlet-name>resourceServlet</servlet-name>
<servlet-class>com.youngeunweb.www.common.interceptor.ExcludeServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
서블릿 설정 끝.
반응형
'쓸만한 JSP 홈페이지 만들기' 카테고리의 다른 글
Spring 설정xml - common-context.xml (0) | 2019.05.05 |
---|---|
톰캣오류 - At least one JAR was scanned for TLDs yet contained no TLDs. (0) | 2019.05.01 |
공통클래스 - MethodLogAop (0) | 2019.04.30 |
Spring 설정xml - aop-context.xml (0) | 2019.04.25 |
공통클래스 - AbstractVO (0) | 2019.04.18 |