이 경우 JSP를 사용하면 안됩니다. HTML/CSS/JS 코드를 넣을 텍스트 기반 템플릿과 taglibs (JSTL 등) 및 EL (Expression Language, ${}
가지)의 도움으로 백엔드 Java 코드와 상호 작용하는 기능을 제공하는 뷰 기술입니다.
TIFF 이미지는 문자 (텍스트) 데이터가 아닙니다. 이진 데이터입니다. 이것을 위해 서블릿을 사용해야합니다. 이진 데이터를 반환하려면 Writer
메서드를 사용하지 않아야합니다. 이를 위해서는 OutputStream
방법을 사용해야합니다. 그렇지 않으면 바이너리 데이터가 손상됩니다 (JSP에서 후드가 Writer
을 사용하기 때문에 발생합니다). 여기
은 서블릿과 같아야 어떻게 킥오프 예제 : 예를
/pdf2tiff
에 대한의
url-pattern
에
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String pdfFilename = request.getParameter("filename");
File pdfFile = new File("/path/to/all/pdf/files", pdfFilename);
response.setHeader("Content-Type", "image/tiff");
doYourThingToConvertPdfFileToTiff(pdfFile, response.getOutputStream());
}
지도이 서블릿을 그래서 당신은 링크 나 브라우저의 주소 표시 줄 또는에서 src
에 http://example.com/contextname/pdf2tiff?filename=file.pdf
하여 호출 할 수 있음 속성은 <img>
입니다.
doYourThingToConvertPdfFileToTiff
은 이미 OutputStream
에 TIFF를 쓰는 것처럼 보이는 "블랙 박스"API입니다. 그냥 사용하고 HTTP 응답 중 하나를 통해 전달하십시오.
업데이트 : 당신이 정말, 정말 이것에 대한 JSP를 사용해야 할 경우 서블릿 클래스에서하는 것처럼, 당신은 단지 JSP에서 동일한 코드를 작성할 수 있습니다. 실제로 copypaste 할 수 있습니다. 이 아니고이 스트림에 대한 모든 템플릿 텍스트를 작성했는지 확인하십시오. 여기에는 스크립틀릿 외부에 줄 바꿈과 공백이 포함됩니다. 그렇지 않으면 바이너리 파일에 기록되어 손상 될 수 있습니다.
여러 개의 스크립틀릿 블록이있는 경우 끝에 스크립팅 릿 %>
과 다음 스크립틀 릿의 <%
사이에 줄 바꿈이 없도록 정렬해야합니다. 따라서, 예를 들어.
당신은 임의로 생성 된 이름의 파일로 출력 스트림을 저장할 수 있습니다, 다음 파일을 참조 : 대신 당신이 는 JSP를 사용해야하는 경우
<%@page import="java.io.File" %>
<%
//...
%>
이것은 내가 다루는 것과 완전히 다른 설정입니다. JSP와 서블릿은 완전히 다른 두 가지입니다. JSP에서 인라인 코드와 함께 응답 객체를 사용할 수 없습니다. 응답 유형을 설정하는 또 다른 방법이 있습니까? 누군가 – YYY
처럼 서블릿을 사용합니다. – Midhat