티스토리 뷰


엑셀 업로드 기능을 구현하면서 엑셀 import시 템플릿을 화면에서 다운받게 하는 기능을 추가하였다.
엑셀 템플릿 파일을 FTP서버에 올려놓았는데 클릭해서 다운받을 때 열기가 안되는 오류가 있었다.


그래서 변경한게 어차피 템플릿은 변하지 않으니까 DB에서 주소 가져오는게 아니라
프로젝트 파일에 넣어서 경로를 그쪽으로 바꿔 주었다.

1
<a href="/file/createUserSample.xlsx" download id="excelTemplate">
cs


그런데 오류남
ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ휴
오류의연속이다


그래서 왜 그러한가 했더니 servlet에 xlxs, xls 확장자는 포함되지 않아서
servlet-mapping에 정의해줘야 오류나지 않고 사용 가능하다고 한다.




servlet에 포함된 확장자(*.do , *.jsp등)이 아닌 확장자를 사용 할 경우
servlet-mapping에 해당 확장자를 정의해줘야 한다!

해당 경우는 web서버에서 이미지나 기타 파일을 처리하지 않고 was에서 처리될 경우에 해당된다.
*web서버: apache, webtob와 같은 웹요청에 대한 처리 및 포워딩 작업을 하는 서버.
*was서버: tomcat, jboss, resin, jeus와 같이 servlet에 대한 처리를 하는 서버(웹서버가 없어도 접근 가능하다.) 

*web서버 없이 was서버만 구성하여 서비스 할 경우 모든 요청(이미지, html, js, css 등)을 was가 처리하기 때문에 각 요청마다 메모리를 할당하게 되어 많은 요청이 몰릴 경우 OUTOFMEMORY 즉, 메모리 부족으로 was서버가 다운되거나 FULL GC(가비지컬랙션)를 진행하여 was서버가 초기화 될 수 있다.

예) web.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.js</url-pattern>
    <url-pattern>*.css</url-pattern>
    <url-pattern>*.ico</url-pattern>
    <url-pattern>*.png</url-pattern>
    <url-pattern>*.jpg</url-pattern>
    <url-pattern>*.htc</url-pattern>
    <url-pattern>*.gif</url-pattern>
    <url-pattern>*.woff</url-pattern>
    <url-pattern>*.eot</url-pattern>
    <url-pattern>*.html</url-pattern>
    <url-pattern>*.htm</url-pattern>
    <url-pattern>*.xls</url-pattern>
    <url-pattern>*.xlsx</url-pattern>
  </servlet-mapping>
cs




댓글