응답시 JSP 페이지가 어떤 내용 유형도 설정하지 못하게 할 수 있습니까? 제 설정에서 JSP는 응답을 직접 생성하지 않고 중간 프레젠테이션을 생성 한 다음이를 기반으로 HTML 또는 JSON을 만드는 추가 Java 코드로 처리합니다. 그래서, 어떻게 든 어떻게하면 을 응답에 content-type으로 설정하지 않고 중간 코드로 남겨 둘 수 있습니까? JSP에서 contentType="..."
만 제거하면 여전히 기본값은 text/html
입니다.JSP 페이지가 응답 내용 유형을 설정하지 않음
1
A
답변
1
JSP 페이지가 설정하는 내용 유형을 무시하도록 만들 수 있습니다. 그게 충분히 좋을 까?
배관을 어떻게 지내십니까?
기본 개념은 ServletResponseWrapper를 구현하고 setContentType에 대한 호출을 재정의 한 다음 필터를 사용하여이 응답을 실제 응답이 아닌 JSP에 전달하는 것입니다.
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class ResponseContentTypeFilter implements Filter{
@Override
public void destroy() {
}
@Override
public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) throws IOException, ServletException {
chain.doFilter(request, new ResponseWrapperToIgnoreContentType(response));
}
@Override
public void init(final FilterConfig filterConfig) throws ServletException {
}
}
편집 :
ResponseWrapperToIgnoreContentType.java
import javax.servlet.ServletResponse;
import javax.servlet.ServletResponseWrapper;
public class ResponseWrapperToIgnoreContentType extends ServletResponseWrapper{
public ResponseWrapperToIgnoreContentType(final ServletResponse response) {
super(response);
}
@Override
public void setContentType(final String type) {
System.out.println("Ignoring call to set the content type to : " + type);
}
}
필터에 적용합니다 그냥 내 논리에 결함을 발견했다. 컨텐츠 유형은 response.getWriter()를 호출하기 전에 설정해야하며, 올바른 문자 인코딩을 사용할 수 있습니다. Dunno가 영향을 주는지 여부.
0
아니요.
만들고있는 클래스에 원하는 content-type을 저장하고 거기에 접근자를 생성하고 JSP에서 가져 오도록하지 않는 이유는 무엇입니까?
+0
"JSP에서 가져 와서"- 어떻게? – doublep
관련 문제
- 1. asp.net mvc에서 응답 내용 유형을 감지하는 방법
- 2. WCF 응답 개체 내용
- 3. 크롬이 쿠키를 설정하지 않음
- 4. Null 대 값을 설정하지 않음
- 5. 일반 텍스트 JSP 응답
- 6. 응답 내용 유형
- 7. 음속이 IsLoaded를 설정하지 않음 추가?
- 8. JSP 페이지가 Jetty에 반영되지 않습니다.
- 9. 페이지가 로딩되지 않음
- 10. MVC2 페이지가 업데이트되지 않음
- 11. 페이지가 리디렉션되지 않음
- 12. 문자열의 내용 유형을 결정하는 방법
- 13. 다른 JSP 페이지가 동일한 JSP 페이지에서 열려 있습니다.
- 14. jCarouselLite div의 너비와 왼쪽 값을 설정하지 않음
- 15. 항목 색인에 따라 클래스를 설정하거나 설정하지 않음
- 16. C# 가상 자동 속성 생략/설정하지 않음
- 17. XML 역 직렬화가 클래스 값을 설정하지 않음
- 18. 깊이 속성이 BST에서 올바른 값을 설정하지 않음
- 19. setContentBorderThickness 문제 : forEdge : 실제로 값을 설정하지 않음
- 20. awk 시스템이 변수를 올바르게 설정하지 않음
- 21. 블랙 베리 MainScreen에서 아무 스크롤도 설정하지 않음
- 22. Scriptaculous Builder가 FireFox에서 선택된 값을 설정하지 않음
- 23. JSP 페이지가 값을 위해 제출되지 않았습니다.
- 24. 일부 조건에 따라 jsp 페이지가 포함됩니다.
- 25. JSP 페이지가 자주 사용하는 이유! URL에?
- 26. Safari에서 기본적으로 JSP 페이지가 절반 스크롤로로드됩니다.
- 27. JSP 페이지가 캐시 됨, 변경할 수 없습니다.
- 28. Eclipse : 시작 페이지가 표시되지 않음
- 29. Indy HTTP : 403에서 응답 내용 읽기
- 30. Django 응답 객체의 내용 길이를 얻으려면 어떻게해야합니까?
고마워, 아마 그럴거야. 나중에 가짜 응답 객체에 content-type과 같은 사소한 것들을 정리할 것입니다. – doublep